Java 如何使我的2D乒乓球拍上下移动,而不是左右移动?
我在Java中看到了很多关于如何移动精灵的结果,但是我找不到任何适合我的代码。我正在学习如何制作乒乓球风格的游戏。 你可以找到教程。这就是我遇到的问题 以下是我的网拍课程代码:Java 如何使我的2D乒乓球拍上下移动,而不是左右移动?,java,Java,我在Java中看到了很多关于如何移动精灵的结果,但是我找不到任何适合我的代码。我正在学习如何制作乒乓球风格的游戏。 你可以找到教程。这就是我遇到的问题 以下是我的网拍课程代码: package com.tennis; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.event.KeyEvent; public class Racquet { private static final int Y =
package com.tennis;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
public class Racquet {
private static final int Y = 330;
private static final int WIDTH = 60;
private static final int HEIGHT = 10;
int x = 0;
int xa = 0;
private Game game;
public Racquet(Game game) {
this.game = game;
}
public void move() {
if(x + xa > 0 && x + xa < game.getHeight()-60)
x = x + xa;
}
public void paint(Graphics2D g) {
g.fillRect(x, 50, 10, 70);
}
public void keyReleased(KeyEvent e) {
xa = 0;
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP)
xa = -1;
if(e.getKeyCode() == KeyEvent.VK_DOWN)
xa = 1;
}
public Rectangle getBounds() {
return new Rectangle(x, Y, WIDTH, HEIGHT);
}
public int getTopY() {
return Y;
}
}
好的,所以我的实际问题是,我需要网拍沿Y轴上下移动,此时它沿X轴移动。在移动函数中,将X=X+xa替换为:
y = y + xa;
x变量应为y,并传递给fillRect的第二个参数
public void paint(Graphics2D g) {
g.fillRect(50, x, 10, 70);
}
public abstract void fillRect(int x,
int y,
int width,
int height)
x-要填充的矩形的x坐标
y-要填充的矩形的y坐标
宽度-要填充的矩形的宽度
高度-要填充的矩形的高度。我试图使乒乓球拍在Y轴而不是X轴上移动,这使事情变得过于复杂,所以我切换了它。问题解决了。现在我可以完成游戏并继续制作funner Java游戏 所以我把这些整数弄乱了
public void paint(Graphics2D g) {
g.fillRect(x, 250, 70, 10);
}
然后我把钥匙做成这样:
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT)
xa = -1;
if(e.getKeyCode() == KeyEvent.VK_RIGHT)
xa = 1;
}
它不工作,我觉得我有一个容易修复的错误
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT)
xa = -1;
if(e.getKeyCode() == KeyEvent.VK_RIGHT)
xa = 1;
}