adding in ecen427 space invaders final lab
This commit is contained in:
@@ -0,0 +1,226 @@
|
||||
#include "bullet.h"
|
||||
|
||||
void renderBullet(unsigned int* framePointer) {
|
||||
if(getGuiseBullet() == 0) {
|
||||
setGuiseBullet(1);
|
||||
renderBullet1(framePointer);
|
||||
}else {
|
||||
setGuiseBullet(0);
|
||||
renderBullet2(framePointer);
|
||||
}
|
||||
}
|
||||
|
||||
void renderBullet1(unsigned int* framePointer) {
|
||||
if(getTankBulletState() == 1) {
|
||||
short initial_x = getTankBulletPositionX();
|
||||
short initial_y = getTankBulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((tankBullet[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien1BulletState() == 1) {
|
||||
short initial_x = getAlien1BulletPositionX();
|
||||
short initial_y = getAlien1BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet1_1[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien2BulletState() == 1) {
|
||||
short initial_x = getAlien2BulletPositionX();
|
||||
short initial_y = getAlien2BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet2_1[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien3BulletState() == 1) {
|
||||
short initial_x = getAlien3BulletPositionX();
|
||||
short initial_y = getAlien3BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet3_1[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien4BulletState() == 1) {
|
||||
short initial_x = getAlien4BulletPositionX();
|
||||
short initial_y = getAlien4BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet1_1[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void renderBullet2(unsigned int* framePointer) {
|
||||
if(getTankBulletState() == 1) {
|
||||
short initial_x = getTankBulletPositionX();
|
||||
short initial_y = getTankBulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((tankBullet[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien1BulletState() == 1) {
|
||||
short initial_x = getAlien1BulletPositionX();
|
||||
short initial_y = getAlien1BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet1_2[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien2BulletState() == 1) {
|
||||
short initial_x = getAlien2BulletPositionX();
|
||||
short initial_y = getAlien2BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet2_2[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien3BulletState() == 1) {
|
||||
short initial_x = getAlien3BulletPositionX();
|
||||
short initial_y = getAlien3BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet3_2[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getAlien4BulletState() == 1) {
|
||||
short initial_x = getAlien4BulletPositionX();
|
||||
short initial_y = getAlien4BulletPositionY();
|
||||
int x, y;
|
||||
for(x = 0; x < BLOCK_HEIGHT; x++) {
|
||||
for(y = 0; y < BLOCK_WIDTH; y++){
|
||||
if ((alienBullet1_2[x%10] & (1<<(BLOCK_WIDTH-1-y)))) {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00FFFFFE;
|
||||
} else {
|
||||
framePointer[(initial_y+x)*640 + initial_x+y] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void blankTankBullet(unsigned int* framePointer){
|
||||
short tankx, tanky;
|
||||
tankx = getTankBulletPositionX();
|
||||
tanky = getTankBulletPositionY();
|
||||
short row=0, col=0;
|
||||
for(row = 0; row < BLOCK_HEIGHT; row++){
|
||||
for(col = 0; col < BLOCK_WIDTH; col++){
|
||||
framePointer[(tanky+row)*640 + tankx+col] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void blankAlienBullet(unsigned int* framePointer, short alienx, short alieny) {
|
||||
short row=0, col=0;
|
||||
for(row = 0; row < BLOCK_HEIGHT; row++){
|
||||
for(col = 0; col < BLOCK_WIDTH; col++){
|
||||
framePointer[(alieny+row)*640 + alienx+col] = 0x00000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void moveBullets(unsigned int* framePointer) {
|
||||
if(getTankBulletState() == 1) {
|
||||
if(getTankBulletPositionY() == 30) {
|
||||
blankTankBullet(framePointer);
|
||||
setTankBulletState(0);
|
||||
}
|
||||
else {
|
||||
setTankBulletPositionY(getTankBulletPositionY()-1);
|
||||
}
|
||||
}
|
||||
if(getAlien1BulletState() == 1) {
|
||||
if(getAlien1BulletPositionY() == 450) {
|
||||
blankAlienBullet(framePointer, getAlien1BulletPositionX(), getAlien1BulletPositionY());
|
||||
setAlien1BulletState(0);
|
||||
}
|
||||
else {
|
||||
setAlien1BulletPositionY(getAlien1BulletPositionY()+1);
|
||||
}
|
||||
}
|
||||
if(getAlien2BulletState() == 1) {
|
||||
if(getAlien2BulletPositionY() == 450) {
|
||||
blankAlienBullet(framePointer, getAlien2BulletPositionX(), getAlien2BulletPositionY());
|
||||
setAlien2BulletState(0);
|
||||
}
|
||||
else {
|
||||
setAlien2BulletPositionY(getAlien2BulletPositionY()+1);
|
||||
}
|
||||
}
|
||||
if(getAlien3BulletState() == 1) {
|
||||
if(getAlien3BulletPositionY() == 450) {
|
||||
blankAlienBullet(framePointer, getAlien3BulletPositionX(), getAlien3BulletPositionY());
|
||||
setAlien3BulletState(0);
|
||||
}
|
||||
else {
|
||||
setAlien3BulletPositionY(getAlien3BulletPositionY()+1);
|
||||
}
|
||||
}
|
||||
if(getAlien4BulletState() == 1) {
|
||||
if(getAlien4BulletPositionY() == 450) {
|
||||
blankAlienBullet(framePointer, getAlien4BulletPositionX(), getAlien4BulletPositionY());
|
||||
setAlien4BulletState(0);
|
||||
}
|
||||
else {
|
||||
setAlien4BulletPositionY(getAlien4BulletPositionY()+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user