@ -63,7 +63,7 @@ E C
D
*/
const uint8_t sevenSegNumbers [ 10 ] = { 0x3F , 0x06 , 0x5B , 0x4F , 0x66 , 0x6D , 0x7D , 0x07 , 0x7F , 0x6F } ; // 0,1,2,3,4,5,6,7,8,9
const color_t tetrisShapeColors [ 9 ] = { Black , HTML2COLOR ( 0x009000 ) , Red , Blue , Magenta , SkyBlue , Orange , HTML2COLOR ( 0xBBBB00 ) , White } ; // shape colors
const color_t tetrisShapeColors [ 9 ] = { GFX_BLACK , HTML2COLOR ( 0x009000 ) , GFX_RED , GFX_BLUE , GFX_MAGENTA , GFX_SKYBLUE , GFX_ORANGE , HTML2COLOR ( 0xBBBB00 ) , GFX_WHITE } ; // shape colors
// default tetris shapes
const int tetrisShapes [ TETRIS_SHAPE_COUNT ] [ 4 ] [ 2 ] = {
{ { 4 , 17 } , { 4 , 16 } , { 5 , 16 } , { 4 , 15 } } ,
@ -209,16 +209,16 @@ static void tellScore(uint8_t color) {
uitoa ( tetrisScore , pps_str , sizeof ( pps_str ) ) ;
gdispFillArea ( 0 , 0 , gdispGetWidth ( ) , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - 6 , tetrisShapeColors [ 0 ] ) ;
for ( i = 0 ; i < strlen ( pps_str ) ; i + + ) {
if ( pps_str [ i ] = = ' 0 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 0 ] , Lime ) ;
if ( pps_str [ i ] = = ' 1 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 1 ] , Lime ) ;
if ( pps_str [ i ] = = ' 2 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 2 ] , Lime ) ;
if ( pps_str [ i ] = = ' 3 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 3 ] , Lime ) ;
if ( pps_str [ i ] = = ' 4 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 4 ] , Lime ) ;
if ( pps_str [ i ] = = ' 5 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 5 ] , Lime ) ;
if ( pps_str [ i ] = = ' 6 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 6 ] , Lime ) ;
if ( pps_str [ i ] = = ' 7 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 7 ] , Lime ) ;
if ( pps_str [ i ] = = ' 8 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 8 ] , Lime ) ;
if ( pps_str [ i ] = = ' 9 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 9 ] , Lime ) ;
if ( pps_str [ i ] = = ' 0 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 0 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 1 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 1 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 2 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 2 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 3 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 3 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 4 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 4 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 5 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 5 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 6 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 6 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 7 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 7 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 8 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 8 ] , GFX_LIME ) ;
if ( pps_str [ i ] = = ' 9 ' ) sevenSegDraw ( TETRIS_SEVEN_SEG_SCORE_X , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - SEVEN_SEG_CHAR_HEIGHT - 7 , sevenSegNumbers [ 9 ] , GFX_LIME ) ;
}
}
@ -262,16 +262,16 @@ static void printGameOver(void) {
}
static void printTouchAreas ( void ) {
gdispDrawStringBox ( 0 , 0 , gdispGetWidth ( ) , gdispGetFontMetric ( font16 , fontHeight ) , " Touch Area's " , font16 , White , justifyCenter ) ;
gdispDrawStringBox ( 0 , 0 , gdispGetWidth ( ) , gdispGetHeight ( ) / 4 , " Pause " , font16 , Grey , justifyCenter ) ;
gdispDrawStringBox ( 0 , gdispGetHeight ( ) / 4 , gdispGetWidth ( ) , gdispGetHeight ( ) / 2 , " Rotate " , font16 , Grey , justifyCenter ) ;
gdispDrawStringBox ( 0 , gdispGetHeight ( ) - ( gdispGetHeight ( ) / 4 ) , gdispGetWidth ( ) / 4 , gdispGetHeight ( ) / 4 , " Left " , font16 , Grey , justifyCenter ) ;
gdispDrawStringBox ( gdispGetWidth ( ) / 4 , gdispGetHeight ( ) - ( gdispGetHeight ( ) / 4 ) , gdispGetWidth ( ) / 2 , gdispGetHeight ( ) / 4 , " Down " , font16 , Grey , justifyCenter ) ;
gdispDrawStringBox ( gdispGetWidth ( ) - ( gdispGetWidth ( ) / 4 ) , gdispGetHeight ( ) - ( gdispGetHeight ( ) / 4 ) , gdispGetWidth ( ) / 4 , gdispGetHeight ( ) / 4 , " Right " , font16 , Grey , justifyCenter ) ;
gdispDrawLine ( 0 , gdispGetHeight ( ) / 4 , gdispGetWidth ( ) - 1 , gdispGetHeight ( ) / 4 , Grey ) ;
gdispDrawLine ( 0 , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , gdispGetWidth ( ) - 1 , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , Grey ) ;
gdispDrawLine ( gdispGetWidth ( ) / 4 , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , gdispGetWidth ( ) / 4 , gdispGetHeight ( ) - 1 , Grey ) ;
gdispDrawLine ( gdispGetWidth ( ) - ( gdispGetWidth ( ) / 4 ) , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , gdispGetWidth ( ) - ( gdispGetWidth ( ) / 4 ) , gdispGetHeight ( ) - 1 , Grey ) ;
gdispDrawStringBox ( 0 , 0 , gdispGetWidth ( ) , gdispGetFontMetric ( font16 , fontHeight ) , " Touch Area's " , font16 , GFX_WHITE , justifyCenter ) ;
gdispDrawStringBox ( 0 , 0 , gdispGetWidth ( ) , gdispGetHeight ( ) / 4 , " Pause " , font16 , GFX_GRAY , justifyCenter ) ;
gdispDrawStringBox ( 0 , gdispGetHeight ( ) / 4 , gdispGetWidth ( ) , gdispGetHeight ( ) / 2 , " Rotate " , font16 , GFX_GRAY , justifyCenter ) ;
gdispDrawStringBox ( 0 , gdispGetHeight ( ) - ( gdispGetHeight ( ) / 4 ) , gdispGetWidth ( ) / 4 , gdispGetHeight ( ) / 4 , " Left " , font16 , GFX_GRAY , justifyCenter ) ;
gdispDrawStringBox ( gdispGetWidth ( ) / 4 , gdispGetHeight ( ) - ( gdispGetHeight ( ) / 4 ) , gdispGetWidth ( ) / 2 , gdispGetHeight ( ) / 4 , " Down " , font16 , GFX_GRAY , justifyCenter ) ;
gdispDrawStringBox ( gdispGetWidth ( ) - ( gdispGetWidth ( ) / 4 ) , gdispGetHeight ( ) - ( gdispGetHeight ( ) / 4 ) , gdispGetWidth ( ) / 4 , gdispGetHeight ( ) / 4 , " Right " , font16 , GFX_GRAY , justifyCenter ) ;
gdispDrawLine ( 0 , gdispGetHeight ( ) / 4 , gdispGetWidth ( ) - 1 , gdispGetHeight ( ) / 4 , GFX_GRAY ) ;
gdispDrawLine ( 0 , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , gdispGetWidth ( ) - 1 , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , GFX_GRAY ) ;
gdispDrawLine ( gdispGetWidth ( ) / 4 , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , gdispGetWidth ( ) / 4 , gdispGetHeight ( ) - 1 , GFX_GRAY ) ;
gdispDrawLine ( gdispGetWidth ( ) - ( gdispGetWidth ( ) / 4 ) , gdispGetHeight ( ) - gdispGetHeight ( ) / 4 , gdispGetWidth ( ) - ( gdispGetWidth ( ) / 4 ) , gdispGetHeight ( ) - 1 , GFX_GRAY ) ;
}
static bool_t stay ( bool_t down ) {
@ -484,13 +484,13 @@ static void tetrisDeinit(void) {
void tetrisStart ( void ) {
// Show the help first
gdispClear ( Black ) ;
gdispClear ( GFX_BLACK ) ;
printTouchAreas ( ) ;
gfxSleepMilliseconds ( 3000 ) ;
// Draw the board
gdispClear ( Black ) ;
gdispDrawBox ( 0 , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - 5 , ( TETRIS_FIELD_WIDTH * TETRIS_CELL_WIDTH ) + 3 , ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) + 3 , White ) ;
gdispClear ( GFX_BLACK ) ;
gdispDrawBox ( 0 , gdispGetHeight ( ) - ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) - 5 , ( TETRIS_FIELD_WIDTH * TETRIS_CELL_WIDTH ) + 3 , ( TETRIS_FIELD_HEIGHT * TETRIS_CELL_HEIGHT ) + 3 , GFX_WHITE ) ;
printText ( 8 ) ;
// Away we go