@@ -47,8 +47,10 @@ var exploded = false;
47
47
var nExplosions = 0 ;
48
48
//var landed = false;
49
49
var lightning = 0 ;
50
+ var timeOfDay = 0 ;
50
51
51
- var settings = require ( "Storage" ) . readJSON ( 'f9settings.json' , 1 ) || { } ;
52
+ var settings = require ( "Storage" ) . readJSON ( 'f9settings.json' , 1 ) || {
53
+ } ;
52
54
53
55
const gravity = 4 ;
54
56
const dt = 0.1 ;
@@ -83,6 +85,12 @@ function drawFalcon(x, y, throttle, angle) {
83
85
}
84
86
}
85
87
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
+
86
94
function drawLightning ( ) {
87
95
var c = { x :cloudOffs + 50 , y :30 } ;
88
96
var dx = c . x - booster . x ;
@@ -98,15 +106,45 @@ function drawBG() {
98
106
Bangle . buzz ( 200 ) ;
99
107
return ;
100
108
}
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
+
105
138
g . setColor ( 1 , 1 , 1 ) . drawImage ( droneShip , droneX , g . getHeight ( ) - oceanHeight - 1 ) ;
106
139
}
107
140
108
141
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 ) ;
110
148
}
111
149
112
150
function renderScreen ( input ) {
@@ -128,7 +166,12 @@ function getInputs() {
128
166
}
129
167
130
168
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 ( ) ;
132
175
g . setFont ( "Vector" , 16 ) . drawString ( "<= again exit =>" , g . getWidth ( ) / 2 , g . getHeight ( ) / 2 + 20 ) ;
133
176
clearInterval ( stepInterval ) ;
134
177
Bangle . on ( "swipe" , ( d ) => { if ( d > 0 ) load ( ) ; else load ( 'f9lander.app.js' ) ; } ) ;
@@ -168,10 +211,19 @@ function gameStep() {
168
211
}
169
212
}
170
213
214
+ if ( settings . timeChange ) {
215
+ timeOfDay = getRandomInt ( 0 , 3 )
216
+ }
217
+
171
218
var stepInterval ;
172
219
Bangle . setLCDTimeout ( 0 ) ;
173
220
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 ) ;
175
227
Bangle . on ( "swipe" , ( ) => {
176
228
stepInterval = setInterval ( gameStep , Math . floor ( 1000 * dt ) ) ;
177
229
Bangle . removeListener ( "swipe" ) ;
0 commit comments