forked from len0rd/rockbox
Code-policed: cleaned off tabs, indented fine, narrowed to 80 columns (mostly)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8892 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
8aa5bd11b2
commit
a26d315d05
1 changed files with 647 additions and 468 deletions
|
@ -7,7 +7,7 @@
|
||||||
* \/ \/ \/ \/ \/
|
* \/ \/ \/ \/ \/
|
||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
* Copyright (C) 2005 Ben Basha (Paprica)
|
* Copyright (C) 2005, 2006 Ben Basha (Paprica)
|
||||||
*
|
*
|
||||||
* All files in this archive are subject to the GNU General Public License.
|
* All files in this archive are subject to the GNU General Public License.
|
||||||
* See the file COPYING in the source tree root for full license agreement.
|
* See the file COPYING in the source tree root for full license agreement.
|
||||||
|
@ -721,29 +721,32 @@ void int_game(int new_game)
|
||||||
for(i=0;i<=7;i++) {
|
for(i=0;i<=7;i++) {
|
||||||
for(j=0;j<=9;j++) {
|
for(j=0;j<=9;j++) {
|
||||||
brick[i*10+j].poweruse=(levels[cur_level][i][j]==0?0:1);
|
brick[i*10+j].poweruse=(levels[cur_level][i][j]==0?0:1);
|
||||||
if (i*10+j<=30) fire[i*10+j].top=-8;
|
if (i*10+j<=30)
|
||||||
|
fire[i*10+j].top=-8;
|
||||||
if (new_game==1) {
|
if (new_game==1) {
|
||||||
|
brick[i*10+j].power=rb->rand()%25;
|
||||||
|
/* +8 make the game with less powerups */
|
||||||
|
|
||||||
brick[i*10+j].power=rb->rand()%25; /* +8 make the game with less powerups */
|
|
||||||
brick[i*10+j].hits=levels[cur_level][i][j]>=10?
|
brick[i*10+j].hits=levels[cur_level][i][j]>=10?
|
||||||
levels[cur_level][i][j]/16-1:0;
|
levels[cur_level][i][j]/16-1:0;
|
||||||
brick[i*10+j].hiteffect=0;
|
brick[i*10+j].hiteffect=0;
|
||||||
brick[i*10+j].powertop=TOPMARGIN+i*BRICK_HEIGHT+BRICK_HEIGHT;
|
brick[i*10+j].powertop=TOPMARGIN+i*BRICK_HEIGHT+BRICK_HEIGHT;
|
||||||
brick[i*10+j].used=(levels[cur_level][i][j]==0?0:1);
|
brick[i*10+j].used=(levels[cur_level][i][j]==0?0:1);
|
||||||
brick[i*10+j].color=(levels[cur_level][i][j]>=10?
|
brick[i*10+j].color=(levels[cur_level][i][j]>=10?
|
||||||
levels[cur_level][i][j]%16:levels[cur_level][i][j])-1;
|
levels[cur_level][i][j]%16:
|
||||||
if (levels[cur_level][i][j]!=0) brick_on_board++;
|
levels[cur_level][i][j])-1;
|
||||||
|
if (levels[cur_level][i][j]!=0)
|
||||||
|
brick_on_board++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int sw,i,w;
|
int sw,i,w;
|
||||||
|
|
||||||
/* sleep timer counting the score */
|
/* sleep timer counting the score */
|
||||||
void sleep (int secs) {
|
void sleep (int secs)
|
||||||
|
{
|
||||||
bool done=false;
|
bool done=false;
|
||||||
char s[20];
|
char s[20];
|
||||||
int count=0;
|
int count=0;
|
||||||
|
@ -761,7 +764,8 @@ void sleep (int secs) {
|
||||||
#endif
|
#endif
|
||||||
rb->lcd_update_rect(0,0,LCD_WIDTH,w+2);
|
rb->lcd_update_rect(0,0,LCD_WIDTH,w+2);
|
||||||
} else {
|
} else {
|
||||||
if (count==0) count=*rb->current_tick+HZ*secs;
|
if (count==0)
|
||||||
|
count=*rb->current_tick+HZ*secs;
|
||||||
if (*rb->current_tick>=count)
|
if (*rb->current_tick>=count)
|
||||||
done=true;
|
done=true;
|
||||||
}
|
}
|
||||||
|
@ -846,7 +850,7 @@ int game_menu(int when)
|
||||||
cur--;
|
cur--;
|
||||||
if (when==0 && cur==1) {
|
if (when==0 && cur==1) {
|
||||||
cur = 0;
|
cur = 0;
|
||||||
};
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DOWN:
|
case DOWN:
|
||||||
|
@ -856,7 +860,7 @@ int game_menu(int when)
|
||||||
cur++;
|
cur++;
|
||||||
if (when==0 && cur==1) {
|
if (when==0 && cur==1) {
|
||||||
cur=2;
|
cur=2;
|
||||||
};
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIGHT:
|
case RIGHT:
|
||||||
|
@ -916,8 +920,10 @@ int help(int when)
|
||||||
#else
|
#else
|
||||||
rb->lcd_putsxy(1+xoffset, 1*(h+2)+yoffset,"Aim");
|
rb->lcd_putsxy(1+xoffset, 1*(h+2)+yoffset,"Aim");
|
||||||
#endif
|
#endif
|
||||||
rb->lcd_putsxy(1+xoffset, 2*(h+2)+yoffset,"destroy all the bricks by bouncing");
|
rb->lcd_putsxy(1+xoffset, 2*(h+2)+yoffset,
|
||||||
rb->lcd_putsxy(1+xoffset, 3*(h+2)+yoffset,"the ball of them using the paddle.");
|
"destroy all the bricks by bouncing");
|
||||||
|
rb->lcd_putsxy(1+xoffset, 3*(h+2)+yoffset,
|
||||||
|
"the ball of them using the paddle.");
|
||||||
#ifdef HAVE_LCD_COLOR
|
#ifdef HAVE_LCD_COLOR
|
||||||
rb->lcd_set_foreground(LCD_RGBPACK(245,0,0));
|
rb->lcd_set_foreground(LCD_RGBPACK(245,0,0));
|
||||||
rb->lcd_putsxy(1+xoffset, 5*(h+2)+yoffset,"Controls");
|
rb->lcd_putsxy(1+xoffset, 5*(h+2)+yoffset,"Controls");
|
||||||
|
@ -927,13 +933,17 @@ int help(int when)
|
||||||
#endif
|
#endif
|
||||||
rb->lcd_putsxy(1+xoffset, 6*(h+2)+yoffset,"< & > Move the paddle");
|
rb->lcd_putsxy(1+xoffset, 6*(h+2)+yoffset,"< & > Move the paddle");
|
||||||
#if CONFIG_KEYPAD == ONDIO_PAD
|
#if CONFIG_KEYPAD == ONDIO_PAD
|
||||||
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,"MENU Releases the ball/Fire!");
|
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,
|
||||||
|
"MENU Releases the ball/Fire!");
|
||||||
#elif CONFIG_KEYPAD == RECORDER_PAD
|
#elif CONFIG_KEYPAD == RECORDER_PAD
|
||||||
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,"PLAY Releases the ball/Fire!");
|
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,
|
||||||
|
"PLAY Releases the ball/Fire!");
|
||||||
#elif CONFIG_KEYPAD == IRIVER_H300_PAD
|
#elif CONFIG_KEYPAD == IRIVER_H300_PAD
|
||||||
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,"NAVI Releases the ball/Fire!");
|
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,
|
||||||
|
"NAVI Releases the ball/Fire!");
|
||||||
#else
|
#else
|
||||||
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,"SELECT Releases the ball/Fire!");
|
rb->lcd_putsxy(1+xoffset, 7*(h+2)+yoffset,
|
||||||
|
"SELECT Releases the ball/Fire!");
|
||||||
#endif
|
#endif
|
||||||
rb->lcd_putsxy(1+xoffset, 8*(h+2)+yoffset, "STOP Opens menu/Quit");
|
rb->lcd_putsxy(1+xoffset, 8*(h+2)+yoffset, "STOP Opens menu/Quit");
|
||||||
#ifdef HAVE_LCD_COLOR
|
#ifdef HAVE_LCD_COLOR
|
||||||
|
@ -943,12 +953,17 @@ int help(int when)
|
||||||
#else
|
#else
|
||||||
rb->lcd_putsxy(1+xoffset, 10*(h+2)+yoffset, "Specials");
|
rb->lcd_putsxy(1+xoffset, 10*(h+2)+yoffset, "Specials");
|
||||||
#endif
|
#endif
|
||||||
rb->lcd_putsxy(1+xoffset, 11*(h+2)+yoffset,"N Normal:returns paddle to normal");
|
rb->lcd_putsxy(1+xoffset, 11*(h+2)+yoffset,
|
||||||
|
"N Normal:returns paddle to normal");
|
||||||
rb->lcd_putsxy(1+xoffset, 12*(h+2)+yoffset, "D DIE!:loses a life");
|
rb->lcd_putsxy(1+xoffset, 12*(h+2)+yoffset, "D DIE!:loses a life");
|
||||||
rb->lcd_putsxy(1+xoffset, 13*(h+2)+yoffset,"L Life:gains a life/power up");
|
rb->lcd_putsxy(1+xoffset, 13*(h+2)+yoffset,
|
||||||
rb->lcd_putsxy(1+xoffset, 14*(h+2)+yoffset,"F Fire:allows you to shoot bricks");
|
"L Life:gains a life/power up");
|
||||||
rb->lcd_putsxy(1+xoffset, 15*(h+2)+yoffset,"G Glue:ball sticks to paddle");
|
rb->lcd_putsxy(1+xoffset, 14*(h+2)+yoffset,
|
||||||
rb->lcd_putsxy(1+xoffset, 16*(h+2)+yoffset,"B Ball:Generates Another Ball");
|
"F Fire:allows you to shoot bricks");
|
||||||
|
rb->lcd_putsxy(1+xoffset, 15*(h+2)+yoffset,
|
||||||
|
"G Glue:ball sticks to paddle");
|
||||||
|
rb->lcd_putsxy(1+xoffset, 16*(h+2)+yoffset,
|
||||||
|
"B Ball:Generates Another Ball");
|
||||||
rb->lcd_update();
|
rb->lcd_update();
|
||||||
|
|
||||||
button=rb->button_get(true);
|
button=rb->button_get(true);
|
||||||
|
@ -964,7 +979,8 @@ int help(int when)
|
||||||
con_game=1;
|
con_game=1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (help(when)==1) return 1;
|
if (help(when)==1)
|
||||||
|
return 1;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1029,7 +1045,8 @@ int fire_space(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int game_loop(void){
|
int game_loop(void)
|
||||||
|
{
|
||||||
int j,i,k,bricky,brickx;
|
int j,i,k,bricky,brickx;
|
||||||
char s[30];
|
char s[30];
|
||||||
int sec_count=0,num_count=10;
|
int sec_count=0,num_count=10;
|
||||||
|
@ -1130,9 +1147,11 @@ int game_loop(void){
|
||||||
|
|
||||||
/* draw the ball */
|
/* draw the ball */
|
||||||
for(i=0;i<used_balls;i++)
|
for(i=0;i<used_balls;i++)
|
||||||
rb->lcd_bitmap(brickmania_ball,ball[i].pos_x, ball[i].pos_y, BALL, BALL);
|
rb->lcd_bitmap(brickmania_ball,ball[i].pos_x, ball[i].pos_y,
|
||||||
|
BALL, BALL);
|
||||||
|
|
||||||
if (brick_on_board==0) brick_on_board--;
|
if (brick_on_board==0)
|
||||||
|
brick_on_board--;
|
||||||
|
|
||||||
/* if the pad is fire */
|
/* if the pad is fire */
|
||||||
for(i=0;i<=30;i++) {
|
for(i=0;i<=30;i++) {
|
||||||
|
@ -1151,13 +1170,22 @@ int game_loop(void){
|
||||||
if (con_game!=1)
|
if (con_game!=1)
|
||||||
brick[i*10+j].powertop+=2;
|
brick[i*10+j].powertop+=2;
|
||||||
rb->lcd_bitmap_part(brickmania_powerups,0,
|
rb->lcd_bitmap_part(brickmania_powerups,0,
|
||||||
BMPHEIGHT_powerup*brick[i*10+j].power,
|
BMPHEIGHT_powerup*brick[i*10+j
|
||||||
BMPWIDTH_powerup,LEFTMARGIN+j*BRICK_WIDTH+(BRICK_WIDTH/2-BMPWIDTH_powerup/2),
|
].power,
|
||||||
brick[i*10+j].powertop, BMPWIDTH_powerup, BMPHEIGHT_powerup);
|
BMPWIDTH_powerup,
|
||||||
|
LEFTMARGIN+j*BRICK_WIDTH+
|
||||||
|
(BRICK_WIDTH/2-
|
||||||
|
BMPWIDTH_powerup/2),
|
||||||
|
brick[i*10+j].powertop,
|
||||||
|
BMPWIDTH_powerup,
|
||||||
|
BMPHEIGHT_powerup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((pad_pos_x<LEFTMARGIN+j*BRICK_WIDTH+5 && pad_pos_x+PAD_WIDTH>LEFTMARGIN+j*BRICK_WIDTH+5) && brick[i*10+j].powertop+6>=PAD_POS_Y && brick[i*10+j].poweruse==2) {
|
if ((pad_pos_x<LEFTMARGIN+j*BRICK_WIDTH+5 &&
|
||||||
|
pad_pos_x+PAD_WIDTH>LEFTMARGIN+j*BRICK_WIDTH+5) &&
|
||||||
|
brick[i*10+j].powertop+6>=PAD_POS_Y &&
|
||||||
|
brick[i*10+j].poweruse==2) {
|
||||||
switch(brick[i*10+j].power) {
|
switch(brick[i*10+j].power) {
|
||||||
case 0:
|
case 0:
|
||||||
life++;
|
life++;
|
||||||
|
@ -1196,7 +1224,8 @@ int game_loop(void){
|
||||||
case 6:
|
case 6:
|
||||||
score+=23;
|
score+=23;
|
||||||
used_balls++;
|
used_balls++;
|
||||||
ball[used_balls-1].x= rb->rand()%1 == 0 ? -1 : 1;
|
ball[used_balls-1].x= rb->rand()%1 == 0 ?
|
||||||
|
-1 : 1;
|
||||||
ball[used_balls-1].y= -4;
|
ball[used_balls-1].y= -4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1211,7 +1240,10 @@ int game_loop(void){
|
||||||
if (pad_type==2) {
|
if (pad_type==2) {
|
||||||
for (k=0;k<=30;k++) {
|
for (k=0;k<=30;k++) {
|
||||||
if (fire[k].top+7>0) {
|
if (fire[k].top+7>0) {
|
||||||
if (brick[i*10+j].used==1 && (fire[k].left+1 >= brickx && fire[k].left+1 <= brickx+BRICK_WIDTH) && (bricky+BRICK_HEIGHT>fire[k].top)){
|
if (brick[i*10+j].used==1 &&
|
||||||
|
(fire[k].left+1 >= brickx &&
|
||||||
|
fire[k].left+1 <= brickx+BRICK_WIDTH) &&
|
||||||
|
(bricky+BRICK_HEIGHT>fire[k].top)) {
|
||||||
score+=13;
|
score+=13;
|
||||||
fire[k].top=-16;
|
fire[k].top=-16;
|
||||||
if (brick[i*10+j].hits > 0) {
|
if (brick[i*10+j].hits > 0) {
|
||||||
|
@ -1221,7 +1253,8 @@ int game_loop(void){
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
brick[i*10+j].used=0;
|
brick[i*10+j].used=0;
|
||||||
if (brick[i*10+j].power!=10) brick[i*10+j].poweruse=2;
|
if (brick[i*10+j].power!=10)
|
||||||
|
brick[i*10+j].poweruse=2;
|
||||||
brick_on_board--;
|
brick_on_board--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1230,29 +1263,84 @@ int game_loop(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
if (brick[i*10+j].used==1) {
|
if (brick[i*10+j].used==1) {
|
||||||
rb->lcd_bitmap_part(brickmania_bricks,0,BRICK_HEIGHT*brick[i*10+j].color,BRICK_WIDTH,LEFTMARGIN+j*BRICK_WIDTH, TOPMARGIN+i*BRICK_HEIGHT, BRICK_WIDTH, BRICK_HEIGHT);
|
rb->lcd_bitmap_part(brickmania_bricks,0,
|
||||||
|
BRICK_HEIGHT*brick[i*10+j].color,
|
||||||
|
BRICK_WIDTH,
|
||||||
|
LEFTMARGIN+j*BRICK_WIDTH,
|
||||||
|
TOPMARGIN+i*BRICK_HEIGHT,
|
||||||
|
BRICK_WIDTH, BRICK_HEIGHT);
|
||||||
#ifdef HAVE_LCD_COLOR /* No transparent effect for greyscale lcds for now */
|
#ifdef HAVE_LCD_COLOR /* No transparent effect for greyscale lcds for now */
|
||||||
if (brick[i*10+j].hiteffect>0)
|
if (brick[i*10+j].hiteffect>0)
|
||||||
rb->lcd_bitmap_transparent_part(brickmania_break,0,BRICK_HEIGHT*brick[i*10+j].hiteffect,BRICK_WIDTH,LEFTMARGIN+j*BRICK_WIDTH, TOPMARGIN+i*BRICK_HEIGHT, BRICK_WIDTH, BRICK_HEIGHT);
|
rb->lcd_bitmap_transparent_part(brickmania_break,
|
||||||
|
0,
|
||||||
|
BRICK_HEIGHT*brick[i*10+j].hiteffect,
|
||||||
|
BRICK_WIDTH,
|
||||||
|
LEFTMARGIN+j*BRICK_WIDTH,
|
||||||
|
TOPMARGIN+i*BRICK_HEIGHT,
|
||||||
|
BRICK_WIDTH,
|
||||||
|
BRICK_HEIGHT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
for(k=0;k<used_balls;k++) {
|
for(k=0;k<used_balls;k++) {
|
||||||
if (ball[k].pos_y <100) {
|
if (ball[k].pos_y <100) {
|
||||||
if (brick[i*10+j].used==1) {
|
if (brick[i*10+j].used==1) {
|
||||||
if ((ball[k].pos_x+ball[k].x+HALFBALL >= brickx && ball[k].pos_x+ball[k].x+HALFBALL <= brickx+BRICK_WIDTH) && ((bricky-4<ball[k].pos_y+BALL && bricky>ball[k].pos_y+BALL) || (bricky+4>ball[k].pos_y+BALL+BALL && bricky<ball[k].pos_y+BALL+BALL)) && (ball[k].y >0)){
|
if ((ball[k].pos_x+ball[k].x+HALFBALL >=
|
||||||
|
brickx &&
|
||||||
|
ball[k].pos_x+ball[k].x+HALFBALL <=
|
||||||
|
brickx+BRICK_WIDTH) &&
|
||||||
|
((bricky-4<ball[k].pos_y+BALL &&
|
||||||
|
bricky>ball[k].pos_y+BALL) ||
|
||||||
|
(bricky+4>ball[k].pos_y+BALL+BALL &&
|
||||||
|
bricky<ball[k].pos_y+BALL+BALL)) &&
|
||||||
|
(ball[k].y >0)) {
|
||||||
ball[k].tempy=bricky-ball[k].pos_y-BALL;
|
ball[k].tempy=bricky-ball[k].pos_y-BALL;
|
||||||
} else if ((ball[k].pos_x+ball[k].x+HALFBALL >= brickx && ball[k].pos_x+ball[k].x+HALFBALL <= brickx+BRICK_WIDTH) && ((bricky+BRICK_HEIGHT+4>ball[k].pos_y && bricky+BRICK_HEIGHT<ball[k].pos_y) || (bricky+BRICK_HEIGHT-4<ball[k].pos_y-BALL && bricky+BRICK_HEIGHT>ball[k].pos_y-BALL)) && (ball[k].y <0)){
|
}
|
||||||
ball[k].tempy=-(ball[k].pos_y-(bricky+BRICK_HEIGHT));
|
else if ((ball[k].pos_x+ball[k].x+HALFBALL >=
|
||||||
|
brickx &&
|
||||||
|
ball[k].pos_x+ball[k].x+HALFBALL <=
|
||||||
|
brickx+BRICK_WIDTH) &&
|
||||||
|
((bricky+BRICK_HEIGHT+4>ball[k].pos_y &&
|
||||||
|
bricky+BRICK_HEIGHT<ball[k].pos_y) ||
|
||||||
|
(bricky+BRICK_HEIGHT-4<ball[k].pos_y-BALL &&
|
||||||
|
bricky+BRICK_HEIGHT>ball[k].pos_y-BALL)) &&
|
||||||
|
(ball[k].y <0)) {
|
||||||
|
ball[k].tempy=
|
||||||
|
-(ball[k].pos_y-(bricky+BRICK_HEIGHT));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ball[k].pos_y+HALFBALL >= bricky && ball[k].pos_y+HALFBALL <= bricky+BRICK_HEIGHT) && ((brickx-4<ball[k].pos_x+BALL && brickx>ball[k].pos_x+BALL) || (brickx+4>ball[k].pos_x+BALL+BALL && brickx<ball[k].pos_x+BALL+BALL)) && (ball[k].x >0)) {
|
if ((ball[k].pos_y+HALFBALL >=
|
||||||
|
bricky &&
|
||||||
|
ball[k].pos_y+HALFBALL <=
|
||||||
|
bricky+BRICK_HEIGHT) &&
|
||||||
|
((brickx-4<ball[k].pos_x+BALL &&
|
||||||
|
brickx>ball[k].pos_x+BALL) ||
|
||||||
|
(brickx+4>ball[k].pos_x+BALL+BALL &&
|
||||||
|
brickx<ball[k].pos_x+BALL+BALL)) &&
|
||||||
|
(ball[k].x >0)) {
|
||||||
ball[k].tempx=brickx-ball[k].pos_x-BALL;
|
ball[k].tempx=brickx-ball[k].pos_x-BALL;
|
||||||
} else if ((ball[k].pos_y+ball[k].y+HALFBALL >= bricky && ball[k].pos_y+ball[k].y+HALFBALL <= bricky+BRICK_HEIGHT) && ((brickx+BRICK_WIDTH+4>ball[k].pos_x && brickx+BRICK_WIDTH<ball[k].pos_x) || (brickx+BRICK_WIDTH-4<ball[k].pos_x-BALL && brickx+BRICK_WIDTH>ball[k].pos_x-BALL)) && (ball[k].x <0)) {
|
}
|
||||||
ball[k].tempx=-(ball[k].pos_x-(brickx+BRICK_WIDTH));
|
else if ((ball[k].pos_y+ball[k].y+HALFBALL >=
|
||||||
|
bricky &&
|
||||||
|
ball[k].pos_y+ball[k].y+HALFBALL <=
|
||||||
|
bricky+BRICK_HEIGHT) &&
|
||||||
|
((brickx+BRICK_WIDTH+4>ball[k].pos_x &&
|
||||||
|
brickx+BRICK_WIDTH<ball[k].pos_x) ||
|
||||||
|
(brickx+BRICK_WIDTH-4<ball[k].pos_x-
|
||||||
|
BALL &&
|
||||||
|
brickx+BRICK_WIDTH>ball[k].pos_x-
|
||||||
|
BALL)) && (ball[k].x <0)) {
|
||||||
|
ball[k].tempx=
|
||||||
|
-(ball[k].pos_x-(brickx+BRICK_WIDTH));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ball[k].pos_x+HALFBALL >= brickx && ball[k].pos_x+HALFBALL <= brickx+BRICK_WIDTH) && ((bricky+BRICK_HEIGHT==ball[k].pos_y) || (bricky+BRICK_HEIGHT-6<=ball[k].pos_y && bricky+BRICK_HEIGHT>ball[k].pos_y)) && (ball[k].y <0)) { /* bottom line */
|
if ((ball[k].pos_x+HALFBALL >= brickx &&
|
||||||
|
ball[k].pos_x+HALFBALL <=
|
||||||
|
brickx+BRICK_WIDTH) &&
|
||||||
|
((bricky+BRICK_HEIGHT==ball[k].pos_y) ||
|
||||||
|
(bricky+BRICK_HEIGHT-6<=ball[k].pos_y &&
|
||||||
|
bricky+BRICK_HEIGHT>ball[k].pos_y)) &&
|
||||||
|
(ball[k].y <0)) { /* bottom line */
|
||||||
if (brick[i*10+j].hits > 0) {
|
if (brick[i*10+j].hits > 0) {
|
||||||
brick[i*10+j].hits--;
|
brick[i*10+j].hits--;
|
||||||
brick[i*10+j].hiteffect++;
|
brick[i*10+j].hiteffect++;
|
||||||
|
@ -1265,7 +1353,14 @@ int game_loop(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
ball[k].y = ball[k].y*-1;
|
ball[k].y = ball[k].y*-1;
|
||||||
} else if ((ball[k].pos_x+HALFBALL >= brickx && ball[k].pos_x+HALFBALL <= brickx+BRICK_WIDTH) && ((bricky==ball[k].pos_y+BALL) || (bricky+6>=ball[k].pos_y+BALL && bricky<ball[k].pos_y+BALL)) && (ball[k].y >0)) { /* top line */
|
}
|
||||||
|
else if ((ball[k].pos_x+HALFBALL >= brickx &&
|
||||||
|
ball[k].pos_x+HALFBALL <=
|
||||||
|
brickx+BRICK_WIDTH) &&
|
||||||
|
((bricky==ball[k].pos_y+BALL) ||
|
||||||
|
(bricky+6>=ball[k].pos_y+BALL &&
|
||||||
|
bricky<ball[k].pos_y+BALL)) &&
|
||||||
|
(ball[k].y >0)) { /* top line */
|
||||||
if (brick[i*10+j].hits > 0) {
|
if (brick[i*10+j].hits > 0) {
|
||||||
brick[i*10+j].hits--;
|
brick[i*10+j].hits--;
|
||||||
brick[i*10+j].hiteffect++;
|
brick[i*10+j].hiteffect++;
|
||||||
|
@ -1280,7 +1375,13 @@ int game_loop(void){
|
||||||
ball[k].y = ball[k].y*-1;
|
ball[k].y = ball[k].y*-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ball[k].pos_y+HALFBALL >= bricky && ball[k].pos_y+HALFBALL <= bricky+BRICK_HEIGHT) && ((brickx==ball[k].pos_x+BALL) || (brickx+6>=ball[k].pos_x+BALL && brickx<ball[k].pos_x+BALL)) && (ball[k].x > 0)) { /* left line */
|
if ((ball[k].pos_y+HALFBALL >= bricky &&
|
||||||
|
ball[k].pos_y+HALFBALL <=
|
||||||
|
bricky+BRICK_HEIGHT) &&
|
||||||
|
((brickx==ball[k].pos_x+BALL) ||
|
||||||
|
(brickx+6>=ball[k].pos_x+BALL &&
|
||||||
|
brickx<ball[k].pos_x+BALL)) &&
|
||||||
|
(ball[k].x > 0)) { /* left line */
|
||||||
if (brick[i*10+j].hits > 0) {
|
if (brick[i*10+j].hits > 0) {
|
||||||
brick[i*10+j].hits--;
|
brick[i*10+j].hits--;
|
||||||
brick[i*10+j].hiteffect++;
|
brick[i*10+j].hiteffect++;
|
||||||
|
@ -1293,7 +1394,17 @@ int game_loop(void){
|
||||||
}
|
}
|
||||||
ball[k].x = ball[k].x*-1;
|
ball[k].x = ball[k].x*-1;
|
||||||
|
|
||||||
} else if ((ball[k].pos_y+HALFBALL >= bricky && ball[k].pos_y+HALFBALL <= bricky+BRICK_HEIGHT) && ((brickx+BRICK_WIDTH==ball[k].pos_x) || (brickx+BRICK_WIDTH-6<=ball[k].pos_x && brickx+BRICK_WIDTH>ball[k].pos_x)) && (ball[k].x < 0)) { /* Right line */
|
}
|
||||||
|
else if ((ball[k].pos_y+HALFBALL >= bricky &&
|
||||||
|
ball[k].pos_y+HALFBALL <=
|
||||||
|
bricky+BRICK_HEIGHT) &&
|
||||||
|
((brickx+BRICK_WIDTH==
|
||||||
|
ball[k].pos_x) ||
|
||||||
|
(brickx+BRICK_WIDTH-6<=
|
||||||
|
ball[k].pos_x &&
|
||||||
|
brickx+BRICK_WIDTH>
|
||||||
|
ball[k].pos_x)) &&
|
||||||
|
(ball[k].x < 0)) { /* Right line */
|
||||||
if (brick[i*10+j].hits > 0) {
|
if (brick[i*10+j].hits > 0) {
|
||||||
brick[i*10+j].hits--;
|
brick[i*10+j].hits--;
|
||||||
brick[i*10+j].hiteffect++;
|
brick[i*10+j].hiteffect++;
|
||||||
|
@ -1319,17 +1430,25 @@ int game_loop(void){
|
||||||
} /* for i */
|
} /* for i */
|
||||||
|
|
||||||
/* draw the pad */
|
/* draw the pad */
|
||||||
rb->lcd_bitmap_part(brickmania_pads,0,pad_type*PAD_HEIGHT,PAD_WIDTH,pad_pos_x, PAD_POS_Y, PAD_WIDTH, PAD_HEIGHT);
|
rb->lcd_bitmap_part(brickmania_pads,0,pad_type*PAD_HEIGHT,
|
||||||
|
PAD_WIDTH,pad_pos_x, PAD_POS_Y, PAD_WIDTH,
|
||||||
|
PAD_HEIGHT);
|
||||||
|
|
||||||
for(k=0;k<used_balls;k++) {
|
for(k=0;k<used_balls;k++) {
|
||||||
|
|
||||||
if ((ball[k].pos_x >= pad_pos_x && ball[k].pos_x <= pad_pos_x+PAD_WIDTH) && (PAD_POS_Y-4<ball[k].pos_y+BALL && PAD_POS_Y>ball[k].pos_y+BALL) && (ball[k].y >0))
|
if ((ball[k].pos_x >= pad_pos_x &&
|
||||||
|
ball[k].pos_x <= pad_pos_x+PAD_WIDTH) &&
|
||||||
|
(PAD_POS_Y-4<ball[k].pos_y+BALL &&
|
||||||
|
PAD_POS_Y>ball[k].pos_y+BALL) && (ball[k].y >0))
|
||||||
ball[k].tempy=PAD_POS_Y-ball[k].pos_y-BALL;
|
ball[k].tempy=PAD_POS_Y-ball[k].pos_y-BALL;
|
||||||
else if ((4>ball[k].pos_y && 0<ball[k].pos_y) && (ball[k].y <0))
|
else if ((4>ball[k].pos_y && 0<ball[k].pos_y) &&
|
||||||
|
(ball[k].y <0))
|
||||||
ball[k].tempy=-ball[k].pos_y;
|
ball[k].tempy=-ball[k].pos_y;
|
||||||
if ((LCD_WIDTH-4<ball[k].pos_x+BALL && LCD_WIDTH>ball[k].pos_x+BALL) && (ball[k].x >0))
|
if ((LCD_WIDTH-4<ball[k].pos_x+BALL &&
|
||||||
|
LCD_WIDTH>ball[k].pos_x+BALL) && (ball[k].x >0))
|
||||||
ball[k].tempx=LCD_WIDTH-ball[k].pos_x-BALL;
|
ball[k].tempx=LCD_WIDTH-ball[k].pos_x-BALL;
|
||||||
else if ((4>ball[k].pos_x && 0<ball[k].pos_x) && (ball[k].x <0))
|
else if ((4>ball[k].pos_x && 0<ball[k].pos_x) &&
|
||||||
|
(ball[k].x <0))
|
||||||
ball[k].tempx=-ball[k].pos_x;
|
ball[k].tempx=-ball[k].pos_x;
|
||||||
|
|
||||||
/* top line */
|
/* top line */
|
||||||
|
@ -1366,43 +1485,81 @@ int game_loop(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
/* left line ,right line */
|
/* left line ,right line */
|
||||||
if ((ball[k].pos_x <= 0) || (ball[k].pos_x+BALL >= LCD_WIDTH)){
|
if ((ball[k].pos_x <= 0) ||
|
||||||
|
(ball[k].pos_x+BALL >= LCD_WIDTH)) {
|
||||||
ball[k].x = ball[k].x*-1;
|
ball[k].x = ball[k].x*-1;
|
||||||
ball[k].pos_x = ball[k].pos_x <= 0 ? 0 : LCD_WIDTH-BALL;
|
ball[k].pos_x = ball[k].pos_x <= 0 ? 0 : LCD_WIDTH-BALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ball[k].pos_y+BALL >= PAD_POS_Y && (ball[k].pos_x >= pad_pos_x && ball[k].pos_x <= pad_pos_x+PAD_WIDTH)) &&
|
if ((ball[k].pos_y+BALL >= PAD_POS_Y &&
|
||||||
|
(ball[k].pos_x >= pad_pos_x &&
|
||||||
|
ball[k].pos_x <= pad_pos_x+PAD_WIDTH)) &&
|
||||||
start_game != 1 && !ball[k].glue) {
|
start_game != 1 && !ball[k].glue) {
|
||||||
|
|
||||||
if ((ball[k].pos_x+HALFBALL >= pad_pos_x && ball[k].pos_x+HALFBALL <= pad_pos_x+(PAD_WIDTH/2/4)) ||
|
if ((ball[k].pos_x+HALFBALL >= pad_pos_x &&
|
||||||
(ball[k].pos_x +HALFBALL>= pad_pos_x+(PAD_WIDTH-(PAD_WIDTH/2/4)) && ball[k].pos_x+HALFBALL <= pad_pos_x+PAD_WIDTH)) {
|
ball[k].pos_x+HALFBALL <=
|
||||||
|
pad_pos_x+(PAD_WIDTH/2/4)) ||
|
||||||
|
(ball[k].pos_x +HALFBALL>=
|
||||||
|
pad_pos_x+(PAD_WIDTH-(PAD_WIDTH/2/4)) &&
|
||||||
|
ball[k].pos_x+HALFBALL <= pad_pos_x+PAD_WIDTH)) {
|
||||||
|
|
||||||
ball[k].y = -2;
|
ball[k].y = -2;
|
||||||
if (ball[k].pos_x != 0 && ball[k].pos_x+BALL!=LCD_WIDTH)
|
if (ball[k].pos_x != 0 &&
|
||||||
ball[k].x = pad_check(6,0,ball[k].pos_x+2<=pad_pos_x+(PAD_WIDTH/2)?0:1,k);
|
ball[k].pos_x+BALL!=LCD_WIDTH)
|
||||||
|
ball[k].x = pad_check(6,0,ball[k].pos_x+2<=
|
||||||
|
pad_pos_x+(PAD_WIDTH/2)?
|
||||||
|
0:1,k);
|
||||||
|
|
||||||
} else if ((ball[k].pos_x+HALFBALL >= pad_pos_x+(PAD_WIDTH/2/4) && ball[k].pos_x+HALFBALL <= pad_pos_x+2*(PAD_WIDTH/2/4)) ||
|
}
|
||||||
(ball[k].pos_x+HALFBALL >= pad_pos_x+(PAD_WIDTH-2*(PAD_WIDTH/2/4)) && ball[k].pos_x+HALFBALL <= pad_pos_x+(PAD_WIDTH-(PAD_WIDTH/2/4)) )) {
|
else if ((ball[k].pos_x+HALFBALL >=
|
||||||
|
pad_pos_x+(PAD_WIDTH/2/4) &&
|
||||||
|
ball[k].pos_x+HALFBALL <=
|
||||||
|
pad_pos_x+2*(PAD_WIDTH/2/4)) ||
|
||||||
|
(ball[k].pos_x+HALFBALL >=
|
||||||
|
pad_pos_x+(PAD_WIDTH-2*(PAD_WIDTH/2/4)) &&
|
||||||
|
ball[k].pos_x+HALFBALL <=
|
||||||
|
pad_pos_x+(PAD_WIDTH-(PAD_WIDTH/2/4)) )) {
|
||||||
|
|
||||||
ball[k].y = -3;
|
ball[k].y = -3;
|
||||||
if (ball[k].pos_x != 0 && ball[k].pos_x+BALL!=LCD_WIDTH)
|
if (ball[k].pos_x != 0 &&
|
||||||
ball[k].x = pad_check(4,0,ball[k].pos_x+2<=pad_pos_x+(PAD_WIDTH/2)?0:1,k);
|
ball[k].pos_x+BALL!=LCD_WIDTH)
|
||||||
|
ball[k].x = pad_check(4,0,ball[k].pos_x+2<=
|
||||||
|
pad_pos_x+(PAD_WIDTH/2)?
|
||||||
|
0:1,k);
|
||||||
|
|
||||||
} else if ((ball[k].pos_x+HALFBALL >= pad_pos_x+2*(PAD_WIDTH/2/4) && ball[k].pos_x+HALFBALL <= pad_pos_x+3*(PAD_WIDTH/2/4)) ||
|
}
|
||||||
(ball[k].pos_x+2 >= pad_pos_x+(PAD_WIDTH-3*(PAD_WIDTH/2/4)) && ball[k].pos_x+2 <= pad_pos_x+ ((PAD_WIDTH/2)-2*(PAD_WIDTH/2/4)) )) {
|
else if ((ball[k].pos_x+HALFBALL >=
|
||||||
|
pad_pos_x+2*(PAD_WIDTH/2/4) &&
|
||||||
|
ball[k].pos_x+HALFBALL <=
|
||||||
|
pad_pos_x+3*(PAD_WIDTH/2/4)) ||
|
||||||
|
(ball[k].pos_x+2 >=
|
||||||
|
pad_pos_x+(PAD_WIDTH-3*(PAD_WIDTH/2/4)) &&
|
||||||
|
ball[k].pos_x+2 <=
|
||||||
|
pad_pos_x+ ((PAD_WIDTH/2)-2*(PAD_WIDTH/2/4)) )) {
|
||||||
|
|
||||||
ball[k].y = -4;
|
ball[k].y = -4;
|
||||||
if (ball[k].pos_x != 0 && ball[k].pos_x+BALL!=LCD_WIDTH)
|
if (ball[k].pos_x != 0 &&
|
||||||
ball[k].x = pad_check(3,0,ball[k].pos_x+2<=pad_pos_x+(PAD_WIDTH/2)?0:1,k);
|
ball[k].pos_x+BALL!=LCD_WIDTH)
|
||||||
|
ball[k].x = pad_check(3,0,ball[k].pos_x+2<=
|
||||||
|
pad_pos_x+(PAD_WIDTH/2)?
|
||||||
|
0:1,k);
|
||||||
|
|
||||||
} else if ((ball[k].pos_x+HALFBALL >= pad_pos_x+3*(PAD_WIDTH/2/4) && ball[k].pos_x+HALFBALL <= pad_pos_x+4*(PAD_WIDTH/2/4)-2) ||
|
}
|
||||||
(ball[k].pos_x+2 >= pad_pos_x+(PAD_WIDTH/2+2) && ball[k].pos_x+2 <= pad_pos_x+(PAD_WIDTH-3*(PAD_WIDTH/2/4)) )) {
|
else if ((ball[k].pos_x+HALFBALL >=
|
||||||
|
pad_pos_x+3*(PAD_WIDTH/2/4) &&
|
||||||
|
ball[k].pos_x+HALFBALL <=
|
||||||
|
pad_pos_x+4*(PAD_WIDTH/2/4)-2) ||
|
||||||
|
(ball[k].pos_x+2 >= pad_pos_x+(PAD_WIDTH/2+2) &&
|
||||||
|
ball[k].pos_x+2 <=
|
||||||
|
pad_pos_x+(PAD_WIDTH-3*(PAD_WIDTH/2/4)) )) {
|
||||||
|
|
||||||
ball[k].y = -4;
|
ball[k].y = -4;
|
||||||
if (ball[k].pos_x != 0 && ball[k].pos_x+BALL!=LCD_WIDTH)
|
if (ball[k].pos_x != 0 &&
|
||||||
|
ball[k].pos_x+BALL!=LCD_WIDTH)
|
||||||
ball[k].x = pad_check(2,1,0,k);
|
ball[k].x = pad_check(2,1,0,k);
|
||||||
|
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ball[k].y = -4;
|
ball[k].y = -4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1415,8 +1572,10 @@ int game_loop(void){
|
||||||
ball[k].tempx=0;
|
ball[k].tempx=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ball[k].pos_y+5 >= PAD_POS_Y && (pad_type==1 && !ball[k].glue) &&
|
if (ball[k].pos_y+5 >= PAD_POS_Y &&
|
||||||
(ball[k].pos_x >= pad_pos_x && ball[k].pos_x <= pad_pos_x+PAD_WIDTH)){
|
(pad_type==1 && !ball[k].glue) &&
|
||||||
|
(ball[k].pos_x >= pad_pos_x &&
|
||||||
|
ball[k].pos_x <= pad_pos_x+PAD_WIDTH)) {
|
||||||
ball[k].y=0;
|
ball[k].y=0;
|
||||||
ball[k].pos_y=PAD_POS_Y-BALL;
|
ball[k].pos_y=PAD_POS_Y-BALL;
|
||||||
ball[k].glue=true;
|
ball[k].glue=true;
|
||||||
|
@ -1431,15 +1590,20 @@ int game_loop(void){
|
||||||
score+=100;
|
score+=100;
|
||||||
int_game(1);
|
int_game(1);
|
||||||
sleep(2);
|
sleep(2);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
rb->lcd_getstringsize("Congratulations!", &sw, NULL);
|
rb->lcd_getstringsize("Congratulations!", &sw, NULL);
|
||||||
rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_congrats, "Congratulations!");
|
rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_congrats,
|
||||||
|
"Congratulations!");
|
||||||
#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
|
#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
|
||||||
rb->lcd_getstringsize("No more levels", &sw, NULL);
|
rb->lcd_getstringsize("No more levels", &sw, NULL);
|
||||||
rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_finsh, "No more levels");
|
rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_finsh,
|
||||||
|
"No more levels");
|
||||||
#else
|
#else
|
||||||
rb->lcd_getstringsize("You have finished the game!", &sw, NULL);
|
rb->lcd_getstringsize("You have finished the game!",
|
||||||
rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_finsh, "You have finished the game!");
|
&sw, NULL);
|
||||||
|
rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_finsh,
|
||||||
|
"You have finished the game!");
|
||||||
#endif
|
#endif
|
||||||
vscore=score;
|
vscore=score;
|
||||||
rb->lcd_update();
|
rb->lcd_update();
|
||||||
|
@ -1447,7 +1611,8 @@ int game_loop(void){
|
||||||
sleep(2);
|
sleep(2);
|
||||||
highscore=score;
|
highscore=score;
|
||||||
rb->splash(HZ*2,true,"New High Score");
|
rb->splash(HZ*2,true,"New High Score");
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
sleep(3);
|
sleep(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1466,7 +1631,7 @@ int game_loop(void){
|
||||||
case 3:
|
case 3:
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1478,25 +1643,30 @@ int game_loop(void){
|
||||||
button_right=((move_button & RIGHT) || (SCROLL_FWD(button)));
|
button_right=((move_button & RIGHT) || (SCROLL_FWD(button)));
|
||||||
button_left=((move_button & LEFT) || (SCROLL_BACK(button)));
|
button_left=((move_button & LEFT) || (SCROLL_BACK(button)));
|
||||||
|
|
||||||
if ((button_right && flip_sides==false) || (button_left && flip_sides==true)) {
|
if ((button_right && flip_sides==false) ||
|
||||||
|
(button_left && flip_sides==true)) {
|
||||||
if (pad_pos_x+8+PAD_WIDTH > LCD_WIDTH) {
|
if (pad_pos_x+8+PAD_WIDTH > LCD_WIDTH) {
|
||||||
for(k=0;k<used_balls;k++)
|
for(k=0;k<used_balls;k++)
|
||||||
if (start_game==1 || ball[k].glue)
|
if (start_game==1 || ball[k].glue)
|
||||||
ball[k].pos_x+=LCD_WIDTH-pad_pos_x-PAD_WIDTH;
|
ball[k].pos_x+=LCD_WIDTH-pad_pos_x-PAD_WIDTH;
|
||||||
pad_pos_x+=LCD_WIDTH-pad_pos_x-PAD_WIDTH;
|
pad_pos_x+=LCD_WIDTH-pad_pos_x-PAD_WIDTH;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
for(k=0;k<used_balls;k++)
|
for(k=0;k<used_balls;k++)
|
||||||
if ((start_game==1 || ball[k].glue))
|
if ((start_game==1 || ball[k].glue))
|
||||||
ball[k].pos_x+=8;
|
ball[k].pos_x+=8;
|
||||||
pad_pos_x+=8;
|
pad_pos_x+=8;
|
||||||
}
|
}
|
||||||
} else if ((button_left && flip_sides==false) || (button_right && flip_sides==true)) {
|
}
|
||||||
|
else if ((button_left && flip_sides==false) ||
|
||||||
|
(button_right && flip_sides==true)) {
|
||||||
if (pad_pos_x-8 < 0) {
|
if (pad_pos_x-8 < 0) {
|
||||||
for(k=0;k<used_balls;k++)
|
for(k=0;k<used_balls;k++)
|
||||||
if (start_game==1 || ball[k].glue)
|
if (start_game==1 || ball[k].glue)
|
||||||
ball[k].pos_x-=pad_pos_x;
|
ball[k].pos_x-=pad_pos_x;
|
||||||
pad_pos_x-=pad_pos_x;
|
pad_pos_x-=pad_pos_x;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
for(k=0;k<used_balls;k++)
|
for(k=0;k<used_balls;k++)
|
||||||
if (start_game==1 || ball[k].glue)
|
if (start_game==1 || ball[k].glue)
|
||||||
ball[k].pos_x-=8;
|
ball[k].pos_x-=8;
|
||||||
|
@ -1511,10 +1681,12 @@ int game_loop(void){
|
||||||
if (start_game==1 && con_game!=1 && pad_type!=1) {
|
if (start_game==1 && con_game!=1 && pad_type!=1) {
|
||||||
for(k=0;k<used_balls;k++) {
|
for(k=0;k<used_balls;k++) {
|
||||||
ball[k].y=-4;
|
ball[k].y=-4;
|
||||||
ball[k].x=pad_pos_x+(PAD_WIDTH/2)-2>=LCD_WIDTH/2?2:-2;
|
ball[k].x=pad_pos_x+(PAD_WIDTH/2)-2>=
|
||||||
|
LCD_WIDTH/2?2:-2;
|
||||||
}
|
}
|
||||||
start_game =0;
|
start_game =0;
|
||||||
} else if (pad_type==1) {
|
}
|
||||||
|
else if (pad_type==1) {
|
||||||
for(k=0;k<used_balls;k++) {
|
for(k=0;k<used_balls;k++) {
|
||||||
if (ball[k].glue)
|
if (ball[k].glue)
|
||||||
ball[k].glue=false;
|
ball[k].glue=false;
|
||||||
|
@ -1557,17 +1729,20 @@ int game_loop(void){
|
||||||
con_game=1;
|
con_game=1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (help(1)==1) return 1;
|
if (help(1)==1)
|
||||||
|
return 1;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
};
|
}
|
||||||
|
|
||||||
for(k=0;k<used_balls;k++) {
|
for(k=0;k<used_balls;k++) {
|
||||||
if (ball[k].x!=0) x[k]=ball[k].x;
|
if (ball[k].x!=0)
|
||||||
|
x[k]=ball[k].x;
|
||||||
ball[k].x=0;
|
ball[k].x=0;
|
||||||
if (ball[k].y!=0) y[k]=ball[k].y;
|
if (ball[k].y!=0)
|
||||||
|
y[k]=ball[k].y;
|
||||||
ball[k].y=0;
|
ball[k].y=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1578,11 +1753,13 @@ int game_loop(void){
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
|
#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
|
||||||
rb->splash(HZ*2,true,"Game Over");
|
rb->splash(HZ*2,true,"Game Over");
|
||||||
#else
|
#else
|
||||||
rb->lcd_bitmap(brickmania_gameover,LCD_WIDTH/2-55,LCD_HEIGHT-87,110,52);
|
rb->lcd_bitmap(brickmania_gameover,LCD_WIDTH/2-55,LCD_HEIGHT-87,
|
||||||
|
110,52);
|
||||||
rb->lcd_update();
|
rb->lcd_update();
|
||||||
#endif
|
#endif
|
||||||
if (score>highscore) {
|
if (score>highscore) {
|
||||||
|
@ -1608,7 +1785,8 @@ int game_loop(void){
|
||||||
con_game=1;
|
con_game=1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (help(0)==1) return 1;
|
if (help(0)==1)
|
||||||
|
return 1;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1617,7 +1795,8 @@ int game_loop(void){
|
||||||
}
|
}
|
||||||
if (end > *rb->current_tick)
|
if (end > *rb->current_tick)
|
||||||
rb->sleep(end-*rb->current_tick);
|
rb->sleep(end-*rb->current_tick);
|
||||||
else rb->yield();
|
else
|
||||||
|
rb->yield();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue