使用eclipse编程Pong



我目前正在尝试教自己在Java中编码,我使用eclipse,我有一个创建pong的教程,但有些它已经丢失了。我唯一有困难的部分是完成球类课程。我已经把它渲染并正确地出现在窗口中,但实际上并没有做任何事情,它只是保持静止。这是因为我不知道我需要什么代码,而所有的谷歌搜索都只导致了代码不起作用的沮丧。

到目前为止,这是我在ball类中的所有内容。

import java.awt.Color;
import java.awt.Graphics;

public class Ball extends Entity {
public Ball(int x, int y, Color color) {
    super(x, y, color);
    this.width = 15;
    this.height = 15;
    int yspeed = 1;
    int xspeed = 2;
}
public void render( Graphics g ) {
    super.render( g );
}


public void update() {
    if (y <= 0) {
        y = 0;
    }
    if (y >= window.HEIGHT - height - 32 ) {
        y = window.HEIGHT - height -32;
    }
}

到目前为止,您编写的(或从教程中复制的)球类看起来不错。你漏掉了把"生命"放进去的代码,比如让球移动的代码。你有一些域,比如xspeedyspeed,但是没有代码来实际应用从一个时间单位到另一个时间单位的增量。(我希望)定期调用的update()方法应该将两个值应用于xy字段:

public void update() {
    x += xspeed;
    y += yspeed;
    if (y <= 0) {
        y = 0;
    }
    if (y >= window.HEIGHT - height - 32 ) {
        y = window.HEIGHT - height -32;
    }
}

这就是你需要的update部分。下一件大事是执行当球击中墙壁或球拍时发生的逻辑。对于这样的事件,您需要操作xspeedyspeed变量。

明显的步骤是:

public void update() {
    x += xspeed;
    y += yspeed;
    if (y <= 0) {
        y = 0;
    }
    if (y >= window.HEIGHT - height - 32 ) {
        y = window.HEIGHT - height -32;
    }
    // TODO: Code to change the direction of the ball (i.e. xspeed and yspeed)
    // when it hits a wall or paddle.
}

在调用render()之前一定不要忘记调用update()

相关内容

  • 没有找到相关文章

最新更新