diff options
Diffstat (limited to 'arduino_sketch')
-rw-r--r-- | arduino_sketch/arcerino/arcerino.ino | 82 |
1 files changed, 56 insertions, 26 deletions
diff --git a/arduino_sketch/arcerino/arcerino.ino b/arduino_sketch/arcerino/arcerino.ino index 141af70..ba1a6fa 100644 --- a/arduino_sketch/arcerino/arcerino.ino +++ b/arduino_sketch/arcerino/arcerino.ino @@ -18,46 +18,43 @@ char drift_x,drift_y=0; char score=0; -void setup() { - nunchuk_init(); - u8g.setColorIndex(1); - u8g.setContrast(192); - // TODO: draw startup screen - delay(1000); +void draw_game() { + u8g.setFont(u8g_font_5x7); + u8g.setPrintPos(0,8); + u8g.print(score,DEC); + u8g.drawCircle(42,24,24); + u8g.drawCircle(42,24,16); + u8g.drawCircle(42,24,8); + u8g.drawVLine(x+LCD_0X,y-4+LCD_0Y,9); + u8g.drawHLine(x-4+LCD_0X,y+LCD_0Y,9); } -void draw() { +void draw_score() { u8g.setFont(u8g_font_5x7); u8g.setPrintPos(0,8); u8g.print(score,DEC); u8g.drawCircle(42,24,24); u8g.drawCircle(42,24,16); u8g.drawCircle(42,24,8); + u8g.drawDisc(x+LCD_0X,y+LCD_0Y,3); +} + +void draw_title() { + u8g.setFont(u8g_font_9x15); + u8g.setPrintPos(0,24); + u8g.print("Arcerino"); + u8g.setFont(u8g_font_5x7); + u8g.setPrintPos(30,46); + u8g.print("Loading..."); +} + +void update_position() { drift_x = drift_x + random(-1,2); drift_x = constrain(drift_x,-LCD_MAX,LCD_MAX); drift_y = drift_y + random(-1,2); drift_y = constrain(drift_y,-LCD_MAX,LCD_MAX); x = map(nunchuk_cjoy_x(),-JOY_MAX,JOY_MAX,-LCD_MAX,LCD_MAX) + drift_x; y = map(nunchuk_cjoy_y(),-JOY_MAX,JOY_MAX,LCD_MAX,-LCD_MAX) + drift_y; - u8g.drawVLine(x+LCD_0X,y-4+LCD_0Y,9); - u8g.drawHLine(x-4+LCD_0X,y+LCD_0Y,9); -} - -void loop() { - nunchuk_get_data(); - - u8g.firstPage(); - do { - draw(); - } while(u8g.nextPage()); - - if (nunchuk_zbutton()) { - score = score + get_score(); - // TODO: draw score screen - delay(3000); - } else { - delay(100); - } } char get_score() { @@ -77,3 +74,36 @@ char get_score() { return 0; } } + +void setup() { + nunchuk_init(); + u8g.setColorIndex(1); + u8g.setContrast(192); + nunchuk_get_data(); + u8g.firstPage(); + do { + draw_title(); + } while(u8g.nextPage()); + delay(4000); +} + +void loop() { + nunchuk_get_data(); + + if (nunchuk_zbutton()) { + score = score + get_score(); + u8g.firstPage(); + do { + draw_score(); + } while(u8g.nextPage()); + delay(3000); + } else { + update_position(); + u8g.firstPage(); + do { + draw_game(); + } while(u8g.nextPage()); + delay(100); + } +} + |