Tetris for the RA8875, derived from another users implementation.

Dependencies:   RA8875

Fork of Tetris by Sergejs Popovs

Tetris, adapted to the RA8875 graphics library and display.

As currently implemented, this version is defined for the 800x480 display. A number of macros can adapt it for other screen resolutions.

Further, while presently configured for landscape mode, it should be fairly easy to reconfigure it for portrait mode.

Committer:
WiredHome
Date:
Sun Mar 29 18:21:14 2020 +0000
Revision:
11:2bdc83648d7f
Parent:
9:b97b336ab36a
Pick up a bug-fix on jpeg rendering

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WiredHome 5:5ce8976cd303 1 //
WiredHome 5:5ce8976cd303 2 // GAME AND DESIGN PARAMETERS
WiredHome 5:5ce8976cd303 3
WiredHome 7:0e426e81c566 4 // Define this for 800x480 panel, undefine for 480x272
WiredHome 9:b97b336ab36a 5 #define BIG_SCREEN
WiredHome 7:0e426e81c566 6
WiredHome 7:0e426e81c566 7 // Define this for Cap touch panel, undefine for resistive
WiredHome 9:b97b336ab36a 8 #define CAP_TOUCH
WiredHome 7:0e426e81c566 9
WiredHome 7:0e426e81c566 10 #ifdef BIG_SCREEN
WiredHome 7:0e426e81c566 11 #define LCD_W 800
WiredHome 7:0e426e81c566 12 #define LCD_H 480
WiredHome 7:0e426e81c566 13 #define LCD_C 8 // color - bits per pixel
WiredHome 7:0e426e81c566 14 #define BL_NORM 25 // Backlight Normal setting (0 to 255)
WiredHome 7:0e426e81c566 15 #else
WiredHome 7:0e426e81c566 16 #define LCD_W 480
WiredHome 7:0e426e81c566 17 #define LCD_H 272
WiredHome 7:0e426e81c566 18 #define LCD_C 8 // color - bits per pixel
WiredHome 7:0e426e81c566 19 #define BL_NORM 25 // Backlight Normal setting (0 to 255)
WiredHome 7:0e426e81c566 20 #endif
WiredHome 7:0e426e81c566 21
WiredHome 7:0e426e81c566 22
WiredHome 5:5ce8976cd303 23 // Title
WiredHome 5:5ce8976cd303 24 //
WiredHome 5:5ce8976cd303 25 // Score (orig)
WiredHome 5:5ce8976cd303 26 // + | | |
WiredHome 5:5ce8976cd303 27 // Rotate | | | | Rotate
WiredHome 5:5ce8976cd303 28 // Left | | | | Right
WiredHome 5:5ce8976cd303 29 // -------|-|-|-| . . . |-|-|-|------
WiredHome 5:5ce8976cd303 30 // | |
WiredHome 5:5ce8976cd303 31 // | |
WiredHome 5:5ce8976cd303 32 // -------|-|-|-| . . . |-|-|-|------
WiredHome 5:5ce8976cd303 33 // Move | | | | Move
WiredHome 5:5ce8976cd303 34 // Left | | | | Right
WiredHome 5:5ce8976cd303 35 // | | | |
WiredHome 5:5ce8976cd303 36 // | | | |
WiredHome 5:5ce8976cd303 37 // | | | |
WiredHome 5:5ce8976cd303 38 // | | | |
WiredHome 5:5ce8976cd303 39 // =====================
WiredHome 5:5ce8976cd303 40 // DROP It
WiredHome 5:5ce8976cd303 41 //
WiredHome 5:5ce8976cd303 42 // [SmallBlock]
WiredHome 5:5ce8976cd303 43 //
WiredHome 5:5ce8976cd303 44 #define TITLE_X 0
WiredHome 5:5ce8976cd303 45 #define TITLE_Y 0
WiredHome 5:5ce8976cd303 46
WiredHome 7:0e426e81c566 47 #define SCORE_X LCD_W/8
WiredHome 7:0e426e81c566 48 #define SCORE_Y LCD_H/6
WiredHome 5:5ce8976cd303 49
WiredHome 7:0e426e81c566 50 #define PACE_X LCD_W/8
WiredHome 7:0e426e81c566 51 #define PACE_Y 7*LCD_H/8
WiredHome 7:0e426e81c566 52
WiredHome 7:0e426e81c566 53 // Block Counts
WiredHome 5:5ce8976cd303 54 #define MAXX 10
WiredHome 5:5ce8976cd303 55 #define MAXY 12
WiredHome 7:0e426e81c566 56 #define BLOCK_SIZE ((int)(LCD_H/20))
WiredHome 5:5ce8976cd303 57 #define SPEED 100
WiredHome 5:5ce8976cd303 58
WiredHome 7:0e426e81c566 59 #define ORIGIN_X ((int)(LCD_W/2))
WiredHome 7:0e426e81c566 60 #define ORIGIN_Y ((int)(LCD_H/6))
WiredHome 5:5ce8976cd303 61
WiredHome 5:5ce8976cd303 62 // Small Block
WiredHome 7:0e426e81c566 63 #define SB_X ORIGIN_X+(MAXX+3)*BLOCK_SIZE
WiredHome 7:0e426e81c566 64 #define SB_Y ORIGIN_Y+(2)*BLOCK_SIZE
WiredHome 7:0e426e81c566 65 #define SB_SIZE 8
WiredHome 5:5ce8976cd303 66
WiredHome 7:0e426e81c566 67 #define ROT_RIGHT ORIGIN_X+0,ORIGIN_Y+0, ORIGIN_X+4*BLOCK_SIZE,ORIGIN_Y+3*BLOCK_SIZE
WiredHome 7:0e426e81c566 68 #define ROT_LEFT ORIGIN_X+(MAXX-2)*BLOCK_SIZE,ORIGIN_Y+0, ORIGIN_X+(MAXX+2)*BLOCK_SIZE,ORIGIN_Y+3*BLOCK_SIZE
WiredHome 5:5ce8976cd303 69 #define MOV_LEFT ORIGIN_X+0,ORIGIN_Y+4*BLOCK_SIZE, ORIGIN_X+4*BLOCK_SIZE,ORIGIN_Y+(MAXY-1)*BLOCK_SIZE
WiredHome 5:5ce8976cd303 70 #define MOV_RIGHT ORIGIN_X+(MAXX-2)*BLOCK_SIZE,ORIGIN_Y+4*BLOCK_SIZE, ORIGIN_X+(MAXX+2)*BLOCK_SIZE,ORIGIN_Y+(MAXY-1)*BLOCK_SIZE
WiredHome 5:5ce8976cd303 71 #define DROP ORIGIN_X+0,ORIGIN_Y+MAXY*BLOCK_SIZE, ORIGIN_X+(MAXX+2)*BLOCK_SIZE,ORIGIN_Y+(MAXY+4)*BLOCK_SIZE
WiredHome 5:5ce8976cd303 72
WiredHome 5:5ce8976cd303 73 #define REPLAY SCORE_X,SCORE_Y+40, SCORE_X+100,SCORE_Y+40+100
WiredHome 5:5ce8976cd303 74
WiredHome 5:5ce8976cd303 75 #include "RA8875.h" // colors
WiredHome 5:5ce8976cd303 76 #define GreenYellow RGB(173,255,47)
WiredHome 6:d2aa47c92687 77 #define Purple RGB(128,0,128)