@@ -47,8 +47,10 @@ var exploded = false;
4747var nExplosions = 0 ;
4848//var landed = false;
4949var 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
5355const gravity = 4 ;
5456const 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+
8694function 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
108141function 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
112150function renderScreen ( input ) {
@@ -128,7 +166,12 @@ function getInputs() {
128166}
129167
130168function 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+
171218var stepInterval ;
172219Bangle . setLCDTimeout ( 0 ) ;
173220renderScreen ( { 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 ) ;
175227Bangle . on ( "swipe" , ( ) => {
176228 stepInterval = setInterval ( gameStep , Math . floor ( 1000 * dt ) ) ;
177229 Bangle . removeListener ( "swipe" ) ;
0 commit comments