void placeKey() { for (int x = 0; x < 4; x++) { for (int y = 0; y < 4; y++) { if (key.t[x*4+y] == 1) { if (key.r+x <=4) gameOver(); matrix[key.r+x][key.c+y] = 1; colorMatrix[key.r+x][key.c+y] = key.color; } } } checkForScore(); key.t = next.t; key.color = next.color; key.r = 0; key.c = 3; int nextType = qran_range(0,7); int *n; n = tetriminos[nextType]; next.t = n; next.color = colors[nextType]; drawMatrix(); setNextPiece(next); droppedYet = 0; }
void Guy::Update() { if (isActive) { if (sprite->x > 240 || sprite->x < 0 || sprite->y > 180) { if (sprite->x != start_pos_x) { if (sprite->x > 240) saved++; else lost++; } speed = float(qran_range(2, 4) / difficulty); force = 0.2f; sprite->x = start_pos_x; sprite->y = start_pos_y; sprite->show(); sprite->rotate(2); } force += 0.1f; sprite->x += int (speed); sprite->y += int (force); } else { sprite->hide(); //rotationEnable(); } };
/* =============================== * BOARD SETUP * =============================== */ void setupBoard() { REG_DISPCTL = MODE3 | BG2_ENABLE; int tetType = qran_range(0,7); int nextType = qran_range(0,7); int *t; int *n; t = tetriminos[tetType]; n = tetriminos[nextType]; // Generate random tetrimino to start falling and // generate random tetrimino to show as next tetrmino key.t = t; next.t = n; next.color = colors[nextType]; key.color = colors[tetType]; key.r = 0; key.c = 3; keyLastR = 0; keyLastC = 3; for (int i = 0; i < 16; i++) { keyLastT[i] = key.t[i]; } /* Draw back screen */ dma_mem[3].cnt = 0; u16 *black = BLACK; dma_mem[3].src = black; dma_mem[3].dst = videoBuffer; dma_mem[3].cnt = 38400 | DMA_ON | DMA_SOURCE_FIXED; /* Draw board and pieces */ drawMatrixBorders(); setNextPiece(next); }