tetris ghost piece

This commit is contained in:
Baipyrus 2023-04-14 13:43:33 +02:00
parent 1b8c0a32a5
commit 7baabd7cc3

View File

@ -115,6 +115,20 @@ namespace Tetris {
canvas.SetPixel((player.x + current[0]) * sw + k, (player.y + current[1]) * sh + l, player.color);
}
// Calculate ghost piece y-coordinate
int ty = player.y;
while (!collisionCheck(player.x, ++ty, player.positions)) { }
ty--;
// Display ghost piece onto Matrix
foreach (var current in player.positions) {
for (int k = 0; k < sw; k+=sw-1)
for (int l = 0; l < sh; l++)
canvas.SetPixel((player.x + current[0]) * sw + k, (ty + current[1]) * sh + l, player.color);
for (int k = 0; k < sw; k++)
for (int l = 0; l < sh; l+=sh-1)
canvas.SetPixel((player.x + current[0]) * sw + k, (ty + current[1]) * sh + l, player.color);
}
// Draw line "in the middle"
for (int i = 0; i < 192; i++)
canvas.SetPixel(sw*10, i, grey);
@ -141,7 +155,8 @@ namespace Tetris {
canvas.SetPixel(j, 192-i, grey);
// Display score
canvas.DrawText(font, 92, 180, col, $"Score: {score}");
canvas.DrawText(font, 92, 162, col, $"Score:");
canvas.DrawText(font, 92, 180, col, score.ToString());
// Move Player down every few frames
if (frameCount % 30 == 0 && collisionCheck(player.x, ++player.y, player.positions)) {