Skip to content

Commit 6fd2057

Browse files
authored
Merge pull request #4018 from RKBoss6/f9-times
[F9 Lander] Add random time of day
2 parents 626dd57 + 671bd12 commit 6fd2057

File tree

7 files changed

+72
-12
lines changed

7 files changed

+72
-12
lines changed

apps/f9lander/ChangeLog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
0.02: Add lightning
33
0.03: Convert Yes/No On/Off in settings to checkboxes
44
0.04: Minor code improvements
5+
0.05: Add a random time (Day, Night, Sunset), and a setting to toggle on or off

apps/f9lander/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,5 @@ Marko Kl. B.
3131
![](f9lander_screenshot2.png)
3232

3333
![](f9lander_screenshot3.png)
34+
35+
![](f9Lander_screenshot4.png)

apps/f9lander/app.js

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ var exploded = false;
4747
var nExplosions = 0;
4848
//var landed = false;
4949
var lightning = 0;
50+
var timeOfDay=0;
5051

51-
var settings = require("Storage").readJSON('f9settings.json', 1) || {};
52+
var settings = require("Storage").readJSON('f9settings.json', 1) || {
53+
};
5254

5355
const gravity = 4;
5456
const dt = 0.1;
@@ -83,6 +85,12 @@ function drawFalcon(x, y, throttle, angle) {
8385
}
8486
}
8587

88+
function getRandomInt(min, max) {
89+
min = Math.ceil(min);
90+
max = Math.floor(max);
91+
return Math.floor(Math.random() * (max - min)) + min;
92+
}
93+
8694
function drawLightning() {
8795
var c = {x:cloudOffs+50, y:30};
8896
var dx = c.x-booster.x;
@@ -98,15 +106,45 @@ function drawBG() {
98106
Bangle.buzz(200);
99107
return;
100108
}
101-
g.setBgColor(0.2, 0.2, 1).clear();
102-
g.setColor(0, 0, 1).fillRect(0, g.getHeight()-oceanHeight, g.getWidth()-1, g.getHeight()-1);
103-
g.setColor(0.5, 0.5, 1).fillCircle(cloudOffs+34, 30, 15).fillCircle(cloudOffs+60, 35, 20).fillCircle(cloudOffs+75, 20, 10);
104-
g.setColor(1, 1, 0).fillCircle(g.getWidth(), 0, 20);
109+
110+
111+
112+
if(timeOfDay==0){
113+
//day
114+
g.setBgColor(0.2, 0.2, 1).clear();
115+
116+
g.setColor(0.5, 0.5, 1).fillCircle(cloudOffs+34, 30, 15).fillCircle(cloudOffs+60, 35, 20).fillCircle(cloudOffs+75, 20, 10);
117+
g.setColor(1, 1, 0).fillCircle(g.getWidth(), 0, 20);
118+
g.setColor(0, 0, 1).fillRect(0, g.getHeight()-oceanHeight, g.getWidth()-1, g.getHeight()-1);
119+
120+
}else if(timeOfDay==1){
121+
//sunset
122+
g.setBgColor(1, 0.5, 0.2).clear();
123+
g.setColor(0.5, 0.5, 1).fillCircle(cloudOffs+34, 30, 15).fillCircle(cloudOffs+60, 35, 20).fillCircle(cloudOffs+75, 20, 10);
124+
g.setColor(1, 0.3, 0).fillCircle(g.getWidth(), 0, 20);
125+
g.setColor(0, 0, 1).fillRect(0, g.getHeight()-oceanHeight, g.getWidth()-1, g.getHeight()-1);
126+
127+
}else{
128+
//night
129+
g.setBgColor(0, 0, 0).clear();
130+
g.setColor(0.5, 0.5, 1).fillCircle(cloudOffs+34, 30, 15).fillCircle(cloudOffs+60, 35, 20).fillCircle(cloudOffs+75, 20, 10);
131+
g.setColor(1, 1, 1).fillCircle(g.getWidth(), 0, 20);
132+
g.setColor(0, 0, 0.3).fillRect(0, g.getHeight()-oceanHeight, g.getWidth()-1, g.getHeight()-1);
133+
134+
}
135+
136+
137+
105138
g.setColor(1, 1, 1).drawImage(droneShip, droneX, g.getHeight()-oceanHeight-1);
106139
}
107140

108141
function showFuel() {
109-
g.setColor(0, 0, 0).setFont("4x6:2").setFontAlign(-1, -1, 0).drawString("Fuel: "+Math.abs(booster.fuel).toFixed(0), 4, 4);
142+
if(timeOfDay==2){
143+
g.setColor(1, 1, 1)
144+
}else{
145+
g.setColor(0, 0, 0)
146+
}
147+
g.setFont("4x6:2").setFontAlign(-1, -1, 0).drawString("Fuel: "+Math.abs(booster.fuel).toFixed(0), 4, 4);
110148
}
111149

112150
function renderScreen(input) {
@@ -128,7 +166,12 @@ function getInputs() {
128166
}
129167

130168
function epilogue(str) {
131-
g.setFont("Vector", 24).setFontAlign(0, 0, 0).setColor(0, 0, 0).drawString(str, g.getWidth()/2, g.getHeight()/2).flip();
169+
if(timeOfDay==2){
170+
g.setColor(1, 1, 1)
171+
}else{
172+
g.setColor(0, 0, 0)
173+
}
174+
g.setFont("Vector", 24).setFontAlign(0, 0, 0).drawString(str, g.getWidth()/2, g.getHeight()/2).flip();
132175
g.setFont("Vector", 16).drawString("<= again exit =>", g.getWidth()/2, g.getHeight()/2+20);
133176
clearInterval(stepInterval);
134177
Bangle.on("swipe", (d) => { if (d>0) load(); else load('f9lander.app.js'); });
@@ -168,10 +211,19 @@ function gameStep() {
168211
}
169212
}
170213

214+
if(settings.timeChange){
215+
timeOfDay=getRandomInt(0,3)
216+
}
217+
171218
var stepInterval;
172219
Bangle.setLCDTimeout(0);
173220
renderScreen({angle:0, throttle:0});
174-
g.setFont("Vector", 24).setFontAlign(0, 0, 0).setColor(0, 0, 0).drawString("Swipe to start", g.getWidth()/2, g.getHeight()/2);
221+
if(timeOfDay==2){
222+
g.setColor(1, 1, 1)
223+
}else{
224+
g.setColor(0, 0, 0)
225+
}
226+
g.setFont("Vector", 24).setFontAlign(0, 0, 0).drawString("Swipe to start", g.getWidth()/2, g.getHeight()/2);
175227
Bangle.on("swipe", () => {
176228
stepInterval = setInterval(gameStep, Math.floor(1000*dt));
177229
Bangle.removeListener("swipe");
49.8 KB
Loading
17.8 KB
Loading

apps/f9lander/metadata.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{ "id": "f9lander",
22
"name": "Falcon9 Lander",
33
"shortName":"F9lander",
4-
"version": "0.04",
5-
"description": "Land a rocket booster",
4+
"version": "0.05",
5+
"description": "Land a rocket booster by tilting the watch",
66
"icon": "f9lander.png",
7-
"screenshots" : [ { "url":"f9lander_screenshot1.png" }, { "url":"f9lander_screenshot2.png" }, { "url":"f9lander_screenshot3.png" }],
7+
"screenshots" : [ { "url":"f9lander_screenshot1.png" }, { "url":"f9lander_screenshot2.png" }, { "url":"f9lander_screenshot3.png" },{ "url":"f9Lander_screenshot4.png" }],
88
"readme": "README.md",
99
"tags": "game",
1010
"supports" : ["BANGLEJS", "BANGLEJS2"],

apps/f9lander/settings.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
// initialize with default settings...
88
let settings = {
99
'lightning': false,
10+
'timeChange':false
1011
}
1112
// ...and overwrite them with any saved values
1213
// This way saved values are preserved if a new version adds more settings
@@ -23,11 +24,15 @@
2324
}
2425
}
2526
const menu = {
26-
'': { 'title': 'OpenWind' },
27+
'': { 'title': 'F9 Lander' },
2728
'< Back': back,
2829
'Lightning': {
2930
value: !!settings.lightning,
3031
onchange: save('lightning'),
32+
},
33+
'Time Change': {
34+
value: !!settings.timeChange,
35+
onchange: save('timeChange'),
3136
}
3237
}
3338
E.showMenu(menu);

0 commit comments

Comments
 (0)