@@ -265,6 +265,50 @@ func (g *Game) Update(screen *ebiten.Image) error{
265
265
return nil
266
266
}
267
267
268
+ func (g * Game ) updateMenu (screen * ebiten.Image ) error {
269
+ if inpututil .IsKeyJustPressed (ebiten .KeyDown ) {
270
+ g .currentMenuOption ++
271
+ if g .currentMenuOption == 3 {
272
+ g .currentMenuOption ++
273
+ }
274
+ if g .currentMenuOption >= len (menuOptions ) {
275
+ g .currentMenuOption = len (menuOptions ) - 1
276
+ }
277
+ }
278
+ if inpututil .IsKeyJustPressed (ebiten .KeyUp ) {
279
+ g .currentMenuOption --
280
+ if g .currentMenuOption == 3 {
281
+ g .currentMenuOption --
282
+ }
283
+ if g .currentMenuOption < 0 {
284
+ g .currentMenuOption = 0
285
+ }
286
+ }
287
+ if inpututil .IsKeyJustPressed (ebiten .KeyEnter ) {
288
+ if g .state == GameStateMenu {
289
+ enemySpeed = 5.0
290
+ speed = 2.5
291
+ switch g .currentMenuOption {
292
+ case 0 :
293
+ enemySpeed += 2.5
294
+ case 1 :
295
+ enemySpeed += 5.0
296
+ case 2 :
297
+ enemySpeed += 11.0
298
+ speed += 1.0
299
+ case 4 :
300
+ // os.Exit(0) // doesn't close resources.. doesn't work with defer.. use error instead
301
+ return errors .New ("exit" )
302
+ }
303
+ g .scrollOffset = 0
304
+ g .state = GameStatePlaying
305
+ } else if g .state == GameStateWin || g .state == GameStateLose {
306
+ g .state = GameStateMenu
307
+ }
308
+ }
309
+ return nil
310
+ }
311
+
268
312
func (g * Game ) drawMenu (screen * ebiten.Image ) {
269
313
ebitenutil .DrawRect (screen , 0 , 0 , screenWidth , screenHeight , color.RGBA {R : 0 , G : 0 , B : 80 , A : 150 })
270
314
@@ -314,50 +358,6 @@ func (g *Game) drawMenu(screen *ebiten.Image) {
314
358
}
315
359
}
316
360
317
- func (g * Game ) updateMenu (screen * ebiten.Image ) error {
318
- if inpututil .IsKeyJustPressed (ebiten .KeyDown ) {
319
- g .currentMenuOption ++
320
- if g .currentMenuOption == 3 {
321
- g .currentMenuOption ++
322
- }
323
- if g .currentMenuOption >= len (menuOptions ) {
324
- g .currentMenuOption = len (menuOptions ) - 1
325
- }
326
- }
327
- if inpututil .IsKeyJustPressed (ebiten .KeyUp ) {
328
- g .currentMenuOption --
329
- if g .currentMenuOption == 3 {
330
- g .currentMenuOption --
331
- }
332
- if g .currentMenuOption < 0 {
333
- g .currentMenuOption = 0
334
- }
335
- }
336
- if inpututil .IsKeyJustPressed (ebiten .KeyEnter ) {
337
- if g .state == GameStateMenu {
338
- enemySpeed = 5.0
339
- speed = 2.5
340
- switch g .currentMenuOption {
341
- case 0 :
342
- enemySpeed += 2.5
343
- case 1 :
344
- enemySpeed += 5.0
345
- case 2 :
346
- enemySpeed += 11.0
347
- speed += 1.0
348
- case 4 :
349
- // os.Exit(0) // doesn't close resources.. doesn't work with defer.. use error instead
350
- return errors .New ("exit" )
351
- }
352
- g .scrollOffset = 0
353
- g .state = GameStatePlaying
354
- } else if g .state == GameStateWin || g .state == GameStateLose {
355
- g .state = GameStateMenu
356
- }
357
- }
358
- return nil
359
- }
360
-
361
361
func (g * Game ) drawPlaying (screen * ebiten.Image ) {
362
362
op := & ebiten.DrawImageOptions {}
363
363
op .GeoM .Translate (float64 (- g .scrollOffset ), 0 )
0 commit comments