如何解决处理Java上的“避免掉落块”游戏
所以我正在用JAVA处理此游戏,代码在下面,因此要点是我有一个球,它避免了掉落的矩形,因此,现在,球可以侧向移动并且矩形从上方掉落,但是怎么办当矩形碰到球时,我会减少生命。
我制作了一个名为Lives的函数,如果圆被矩形击中,该函数应该减少生命,但是我无法为此提供代码。有人可以帮忙吗?
int score;
int score1;
int miss;
int lives=10;
int ballx,bally;
class Rect
{
float x;
float y;
float speed;
float leng;
color c;
boolean valid;
final int MAX_COLOR = 255;
final int MIN_X = 50,MAX_X = 750;
final int MIN_Y = -800,MAX_Y = -100;
int MIN_SPEED = 1,MAX_SPEED = 2;
final int MIN_Leng = 50,MAX_Leng =100 ;
Rect()
{
initAll();
}
void initAll() {
valid = true;
c = color(random(255),random(255),random(255));
x = random(MIN_X,MAX_X);
y = random(MIN_Y,MAX_Y);
speed = random(MIN_SPEED,MAX_SPEED);
leng = random(MIN_Leng,MAX_Leng);
}
void update() {
if (!valid) {
initAll();
return;
}
move();
draw_rect();
}
void draw_rect()
{
fill(c);
rect (x,y,leng,leng);
}
void move()
{
if (y-leng <= height)
{
y += speed;
} else if (y-leng > height )
{
valid = false;
miss++;
}
}
void Lives()
{
}
void GameOver()
{
if (lives==0)
{
for (int i = 0; i < Obj.length; i++)
{
Obj[i] = new Rect();
}
background(0);
textSize(50 );
fill(255);
text( "You Lose ",15,150);
text( "score: " + score,100);
}
}
boolean isOver(int mx,int my) {
float disX = x - mx;
float disY = y - my;
if (sqrt(sq(disX) + sq(disY)) < leng/2 ) {
return true;
} else {
return false;
}
}
}
Rect [] Obj = new Rect [10];
void setup() {
size (400,600);
ballx=200;
bally=300;
for (int i = 0; i < Obj.length; i++)
{
Obj[i] = new Rect();
}
}
void draw() {
background(0);
textSize(50);
//fill(0);
text( "score: " + score,100);
text("Lives: " + lives,50);
ellipse(ballx,bally,20,20);
for (int i = 0; i < Obj.length; i++) {
Obj[i].update();
//Obj[i].Lives();
Obj[i].GameOver();
}
surface.setTitle(nf(frameRate,3,2));
}
void keypressed(){
for(Rect s : Obj){
if ( key =='q' ){
ballx=ballx-2;
score++;
score1++;
s.valid = false;
break;
}
if ( key =='e'){
ballx=ballx+2;
score++;
score1++;
s.valid = false;
break;
}
}
}
解决方法
我想到的最简单的是-
案例1-如果您希望球的健康逐渐降低:
定义maximum_Health变量并将其分配给100。 每次障碍物击中您的球时,就可以通过减少您想要定义的重量来减少健康。
情况2-如果每次击中球都失去球寿命
定义剩余生命变量,并给它一些您希望生命数开始的值。 每次有方块撞到你的球时,将剩余的生命减少一。
我认为这应该给您一些提示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。