Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的乒乓球游戏_Java - Fatal编程技术网

java中的乒乓球游戏

java中的乒乓球游戏,java,Java,我正在用java制作一个名为pong的游戏,我相信每个人都知道这个游戏是什么。我已经准备好了,但现在我想把球顶上,我已经准备好了。我所寻找的是当球与挡块接触时,我希望挡块消失,但我真的不知道怎么做 g.setColor(Color.blue); g.fillRect(block1X, 250, 150, 15); 上面的代码就是块 if(ballX >= block1X && ballX <= block1X + 150 && ballY >=

我正在用java制作一个名为pong的游戏,我相信每个人都知道这个游戏是什么。我已经准备好了,但现在我想把球顶上,我已经准备好了。我所寻找的是当球与挡块接触时,我希望挡块消失,但我真的不知道怎么做

g.setColor(Color.blue);
g.fillRect(block1X, 250, 150, 15);
上面的代码就是块

if(ballX >= block1X && ballX <= block1X + 150 && ballY >= 240)
   ballYSpeed = -7;

else if(ballX <= block1X && ballX <= block1X + 150 && ballY <= 270) 
   ballYSpeed = 7;
if(ballX>=block1X&&ballX=240)
ballYSpeed=-7;
否则,如果(ballX在这种情况下,一种快速方法(远不是最好的)可能是使用布尔值跟踪块的状态

初始化为true

boolean isAlive = true;
您的绘图应基于以下内容:

if(isAlive){
    //drawing block here
}
在您的碰撞设置中,将
isAlive
设置为false,它将不再被绘制

然而,这是一个糟糕的解决方案,你应该在你的某类游戏类中创建一个
Block
类和一个Block列表或数组,用Block填充你的列表,通过循环所有的Block更新/渲染它们

这可能是一个非常简单的块类

public class Block{

private int x;
private int y;
    public Block(int x, int y){
        this.x = x;
        this.y = y;
    }

    //This is how you draw it
    public void draw(){
    }

    //If needed for example a moving block
    public void update(){
    }
}
在进行游戏的类中,可以定义ArrayList并填充块。
ArrayLis blocks=new ArrayList();

在游戏循环中,你可以像这样画画:

for(Block block: blocks){
    block.draw();
}
最后,您可以定义一个布尔值来判断块是否处于活动状态,或者只是简单地从列表中删除特定的块。请注意,要测试碰撞,您必须遍历块并逐个测试它们