line numbers
This commit is contained in:
parent
5f14baf6d9
commit
93c109728d
|
@ -207,13 +207,20 @@ void tetris_view_drawBorders(uint8_t nColor)
|
||||||
setpixel((pixel){4, y}, nColor);
|
setpixel((pixel){4, y}, nColor);
|
||||||
setpixel((pixel){15, y}, nColor);
|
setpixel((pixel){15, y}, nColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t nPen;
|
||||||
|
|
||||||
for (y = 0; y < 5; ++y)
|
for (y = 0; y < 5; ++y)
|
||||||
{
|
{
|
||||||
for (x = 0; x <= 3; ++x){
|
for (x = 0; x <= 3; ++x){
|
||||||
setpixel((pixel){x, y}, nColor);
|
|
||||||
setpixel((pixel){x, y + 11}, nColor);
|
if ((y<1 || y>3) || (x<1 || y>3)){
|
||||||
|
setpixel((pixel){x, y}, nColor);
|
||||||
|
setpixel((pixel){x, y + 11}, nColor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -238,6 +245,8 @@ void tetris_view_blinkBorders()
|
||||||
* Argmument pPl: pointer to the playfield whose complete lines should blink
|
* Argmument pPl: pointer to the playfield whose complete lines should blink
|
||||||
* Return value: void
|
* Return value: void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
void tetris_view_blinkLines(tetris_playfield_t *pPl)
|
void tetris_view_blinkLines(tetris_playfield_t *pPl)
|
||||||
{
|
{
|
||||||
// reduce necessity of pointer arithmetic
|
// reduce necessity of pointer arithmetic
|
||||||
|
@ -278,6 +287,72 @@ void tetris_view_blinkLines(tetris_playfield_t *pPl)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Function: tetris_view_showLineNumbers
|
||||||
|
* Description: displays completed Lines (0-99)
|
||||||
|
* Argmument pV: pointer to the view
|
||||||
|
* Argument nColor: color
|
||||||
|
* Return value: void
|
||||||
|
*/
|
||||||
|
void tetris_view_showLineNumbers (tetris_view_t *pV, uint8_t nColor)
|
||||||
|
{
|
||||||
|
//Get number of completed lines
|
||||||
|
uint8_t Lines = tetris_logic_getLines(pV->pLogic);
|
||||||
|
uint8_t nPen;
|
||||||
|
|
||||||
|
int x=0, y=0, i;
|
||||||
|
int ones, tens;
|
||||||
|
|
||||||
|
ones= Lines%10;
|
||||||
|
tens=(Lines/10)%10;
|
||||||
|
|
||||||
|
//pick drawing color, dark if ones=0, bright (piece color) otherwise
|
||||||
|
if ((ones%10)!=0)
|
||||||
|
nPen=TETRIS_VIEW_COLORPIECE;
|
||||||
|
else nPen=TETRIS_VIEW_COLORSPACE;
|
||||||
|
|
||||||
|
//Draws ones in the upper part of the border as a 3x3 square with 0-9 pixels
|
||||||
|
//Start at column 1
|
||||||
|
y=1;
|
||||||
|
for (i=1;i<=9;i++)
|
||||||
|
{
|
||||||
|
//Start at line 1, increase every loop cycle
|
||||||
|
x++;
|
||||||
|
|
||||||
|
//the square is just three pixels wide, start over in next column once the row is full
|
||||||
|
if (x%4==0)
|
||||||
|
{
|
||||||
|
y++;
|
||||||
|
x=1;
|
||||||
|
}
|
||||||
|
setpixel((pixel){x,y}, nPen);
|
||||||
|
//only draw as many ones as there are, make the rest of the square dark.
|
||||||
|
if (i==ones) nPen=TETRIS_VIEW_COLORSPACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//back to normal color, but only if tens is not divisible by 10
|
||||||
|
if ((tens%10)!=0)
|
||||||
|
nPen=TETRIS_VIEW_COLORPIECE;
|
||||||
|
else nPen=TETRIS_VIEW_COLORSPACE;
|
||||||
|
|
||||||
|
//Draws ones in the lower part of the border as a 3x3 square with 0-9 pixels
|
||||||
|
x=0;
|
||||||
|
y=12; //offset for lower part of the border
|
||||||
|
for (i=1;i<=9;i++)
|
||||||
|
{
|
||||||
|
x++; //Start at line 1, increase every loop cycle
|
||||||
|
|
||||||
|
//the square is just three pixels wide, start over in next column once the row is full
|
||||||
|
if (x%4==0)
|
||||||
|
{
|
||||||
|
y++;
|
||||||
|
x=1;
|
||||||
|
}
|
||||||
|
setpixel((pixel){x,y}, nPen);
|
||||||
|
//only draw as many ones as there are, make the rest of the square dark.
|
||||||
|
if (i==tens) nPen=TETRIS_VIEW_COLORSPACE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/****************************
|
/****************************
|
||||||
* construction/destruction *
|
* construction/destruction *
|
||||||
****************************/
|
****************************/
|
||||||
|
@ -369,6 +444,7 @@ void tetris_view_update(tetris_view_t *pV)
|
||||||
if (tetris_playfield_getRowMask(pV->pPl) != 0)
|
if (tetris_playfield_getRowMask(pV->pPl) != 0)
|
||||||
{
|
{
|
||||||
tetris_view_blinkLines(pV->pPl);
|
tetris_view_blinkLines(pV->pPl);
|
||||||
|
tetris_view_showLineNumbers(pV, TETRIS_VIEW_COLORPIECE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw preview piece
|
// draw preview piece
|
||||||
|
@ -384,6 +460,7 @@ void tetris_view_update(tetris_view_t *pV)
|
||||||
tetris_view_blinkBorders();
|
tetris_view_blinkBorders();
|
||||||
pV->nOldLevel = nLevel;
|
pV->nOldLevel = nLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue