Some random attempts at programming the retro console
Fork of RETRO_Pong_Mod by
Game.h@9:5c4a3e89a713, 2015-02-28 (annotated)
- Committer:
- loop
- Date:
- Sat Feb 28 14:46:09 2015 +0000
- Revision:
- 9:5c4a3e89a713
- Parent:
- 8:c63981a45c95
- Child:
- 10:ba2dea5fffd1
Fixed bounds
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
john_ghielec | 1:cd8a3926f263 | 1 | #include "mbed.h" |
loop | 7:c0f12f624832 | 2 | #include "Color565.h" |
loop | 7:c0f12f624832 | 3 | #include "font_IBM.h" |
loop | 7:c0f12f624832 | 4 | #include "LCD_ST7735.h" |
john_ghielec | 1:cd8a3926f263 | 5 | #pragma once |
john_ghielec | 1:cd8a3926f263 | 6 | |
john_ghielec | 1:cd8a3926f263 | 7 | class Game { |
john_ghielec | 1:cd8a3926f263 | 8 | static const char* LOSE_1; |
john_ghielec | 1:cd8a3926f263 | 9 | static const char* LOSE_2; |
john_ghielec | 2:6ab46f2e851a | 10 | static const char* SPLASH_1; |
john_ghielec | 2:6ab46f2e851a | 11 | static const char* SPLASH_2; |
devhammer | 3:2f09c90a732d | 12 | static const char* LIVES; |
devhammer | 3:2f09c90a732d | 13 | static const char* SCORE; |
john_ghielec | 1:cd8a3926f263 | 14 | |
john_ghielec | 1:cd8a3926f263 | 15 | static const int BALL_RADIUS = 3; |
devhammer | 3:2f09c90a732d | 16 | static const int BALL_STARTING_SPEED = 3; |
john_ghielec | 1:cd8a3926f263 | 17 | static const int PADDLE_WIDTH = 38; |
john_ghielec | 1:cd8a3926f263 | 18 | static const int PADDLE_HEIGHT = 4; |
devhammer | 3:2f09c90a732d | 19 | static const int PADDLE_SPEED = 5; |
john_ghielec | 1:cd8a3926f263 | 20 | static const int BOUNCE_SOUND_TICKS = 2; |
john_ghielec | 2:6ab46f2e851a | 21 | static const int GRAPH_HEIGHT = 40; |
john_ghielec | 2:6ab46f2e851a | 22 | static const int GRAPH_SPACING = 2; |
john_ghielec | 2:6ab46f2e851a | 23 | static const char I2C_ADDR = 0x1C << 1; |
loop | 7:c0f12f624832 | 24 | |
loop | 7:c0f12f624832 | 25 | static const int CHAR_WIDTH = 8; |
loop | 7:c0f12f624832 | 26 | static const int CHAR_HEIGHT = 8; |
loop | 7:c0f12f624832 | 27 | static const int CHAR_SPACING = 0; |
john_ghielec | 1:cd8a3926f263 | 28 | |
loop | 9:5c4a3e89a713 | 29 | static const float MAX_SPEED = 6.0f; |
loop | 4:84be90860d7c | 30 | // Start with a ball.. let's see what becomes |
john_ghielec | 1:cd8a3926f263 | 31 | int ballX; |
john_ghielec | 1:cd8a3926f263 | 32 | int ballY; |
loop | 9:5c4a3e89a713 | 33 | float ballSpeedX; |
loop | 9:5c4a3e89a713 | 34 | float ballSpeedY; |
loop | 9:5c4a3e89a713 | 35 | float ballAccelX; |
loop | 9:5c4a3e89a713 | 36 | float ballAccelY; |
john_ghielec | 1:cd8a3926f263 | 37 | int pwmTicksLeft; |
john_ghielec | 1:cd8a3926f263 | 38 | int lives; |
devhammer | 3:2f09c90a732d | 39 | int score; |
john_ghielec | 2:6ab46f2e851a | 40 | int graphX; |
john_ghielec | 2:6ab46f2e851a | 41 | bool mode; |
john_ghielec | 2:6ab46f2e851a | 42 | bool lastUp; |
john_ghielec | 2:6ab46f2e851a | 43 | bool lastDown; |
devhammer | 3:2f09c90a732d | 44 | bool muted; |
john_ghielec | 2:6ab46f2e851a | 45 | unsigned short colors[3]; |
loop | 9:5c4a3e89a713 | 46 | unsigned short cCol; |
john_ghielec | 1:cd8a3926f263 | 47 | DigitalIn left; |
john_ghielec | 1:cd8a3926f263 | 48 | DigitalIn right; |
john_ghielec | 1:cd8a3926f263 | 49 | DigitalIn down; |
john_ghielec | 1:cd8a3926f263 | 50 | DigitalIn up; |
john_ghielec | 1:cd8a3926f263 | 51 | DigitalIn square; |
john_ghielec | 1:cd8a3926f263 | 52 | DigitalIn circle; |
john_ghielec | 1:cd8a3926f263 | 53 | DigitalOut led1; |
john_ghielec | 1:cd8a3926f263 | 54 | DigitalOut led2; |
john_ghielec | 1:cd8a3926f263 | 55 | PwmOut pwm; |
john_ghielec | 1:cd8a3926f263 | 56 | AnalogIn ain; |
john_ghielec | 1:cd8a3926f263 | 57 | I2C i2c; |
loop | 7:c0f12f624832 | 58 | LCD_ST7735 disp; |
john_ghielec | 1:cd8a3926f263 | 59 | |
john_ghielec | 2:6ab46f2e851a | 60 | void readRegisters(char address, char* buffer, int len); |
john_ghielec | 2:6ab46f2e851a | 61 | int writeRegister(char address, char value); |
loop | 9:5c4a3e89a713 | 62 | void getXY(float& x, float& y); |
john_ghielec | 2:6ab46f2e851a | 63 | void getXYZ(double& x, double& y, double& z); |
loop | 7:c0f12f624832 | 64 | |
john_ghielec | 2:6ab46f2e851a | 65 | double convert(char* buffer); |
john_ghielec | 2:6ab46f2e851a | 66 | void printDouble(double value, int x, int y); |
john_ghielec | 2:6ab46f2e851a | 67 | |
john_ghielec | 2:6ab46f2e851a | 68 | void drawAxes(); |
john_ghielec | 2:6ab46f2e851a | 69 | void drawPoint(int axis, double value); |
john_ghielec | 2:6ab46f2e851a | 70 | void checkGraphReset(); |
john_ghielec | 2:6ab46f2e851a | 71 | |
john_ghielec | 1:cd8a3926f263 | 72 | void initialize(); |
john_ghielec | 1:cd8a3926f263 | 73 | void initializeBall(); |
john_ghielec | 1:cd8a3926f263 | 74 | |
john_ghielec | 1:cd8a3926f263 | 75 | void drawString(const char* str, int y); |
john_ghielec | 1:cd8a3926f263 | 76 | void clearBall(); |
john_ghielec | 1:cd8a3926f263 | 77 | void drawBall(); |
john_ghielec | 1:cd8a3926f263 | 78 | void updateBall(); |
loop | 5:8a26ad9d9ea1 | 79 | void readAccel(); |
loop | 9:5c4a3e89a713 | 80 | void bounce(); |
john_ghielec | 2:6ab46f2e851a | 81 | void checkButtons(); |
john_ghielec | 1:cd8a3926f263 | 82 | void checkCollision(); |
john_ghielec | 1:cd8a3926f263 | 83 | void checkPwm(); |
john_ghielec | 1:cd8a3926f263 | 84 | void checkLives(); |
john_ghielec | 1:cd8a3926f263 | 85 | |
john_ghielec | 1:cd8a3926f263 | 86 | public: |
john_ghielec | 1:cd8a3926f263 | 87 | Game(); |
john_ghielec | 1:cd8a3926f263 | 88 | |
john_ghielec | 1:cd8a3926f263 | 89 | void showSplashScreen(); |
john_ghielec | 1:cd8a3926f263 | 90 | void tick(); |
john_ghielec | 1:cd8a3926f263 | 91 | }; |