我试图创建一个Java方法move(),它将更改对象的位置(这是一个椭圆形)。我的椭圆有一个初始的x,y位置,所以我想通过从JComponent调用以下方法来沿Jframe移动它。
public class ShapeAnimation extends Shape {
public void move() {
xVel=(int)(Math.random()*11);
yVel=(int)(Math.random()*11);
x=xVel+x;
y=yVel+y;
if(x>this.x)
xVel=xVel*-1;
if(y>this.y)
yVel=yVel*-1;
}
}
您在中使用x变量,x=xVel+x;
但未在函数中声明它,因此java假定它是this.x
因此您的代码如下所示:
this.x=xVel+this.x;
this.y=yVel+this.y;
if(this.x>this.x) // always false
xVel=xVel*-1;
if(this.y>this.y) // always false
yVel=yVel*-1;
您需要将其更改为:
int newX = xVel+this.x;
int newY = yVel+this.y;
if( (newX<0) || (newX>this.maxX) )
xVel=xVel*-1;
else
this.x = newX;
if( (newY<0) || (newY>this.maxY) )
yVel=yVel*-1;
else
this.y = newY;
maxX和maxY应该具有x和y可以具有的最大值
注意-此代码在某些迭代过程中不会移动对象,出于教学目的,我建议您针对此类情况进行更新
问题内容: 我做了一个绘制椭圆并相互链接的迷你代码,现在我尝试移动椭圆(圆),但是我在编码时遇到了问题 移动两个圆圈,并且直线一定不能移动(Graph节点),请帮帮我,谢谢:)更新后(感谢MadProgrammer),现在我可以移动所有 图形了 问题答案: 基本上,因为可以使用而不是使用 这将确保整个组件被重新粉刷。 虽然我不反对使用repaint(int, int),因为您的绘画过程相对简单,但
我有一个名为“DisplayPanel”的类(它扩展了JPanel),我在那里画了一个正方形,它来自一个名为“square”的类(它扩展了JComponent)。如何使用键在JPanel中移动矩形? 正方形类有通常的绘制方法: “squarishThing”是一个普通矩形: 问题是:与“游戏库”不同,尝试“手动”做这样的事情是相当令人困惑的。我不知道“while循环”去哪里了。我试图在显示面板中放
问题内容: 我正在作为学习项目来开发2D游戏,但遇到了麻烦。我无法弄清楚如何使用JPanel(添加到JFrame)中的KeyListener移动Polygon对象。我已经尝试过frog.translate(int x,int y)方法,该方法不会更新位置。我也尝试过手动更改数组坐标。我的代码示例如下: /////////////////////// 问题答案: 这段代码有一个简单的问题: 每次绘制
我对java中的JFrames和图形非常陌生。我的长期目标是创建一个RayCast游戏世界。下面的代码是我第一次在jframe中以其坐标移动矩形。当用户按下箭头键时,坐标会发生变化。然而,似乎有些问题,因为当我使用该程序时,矩形只会被绘制并创建一条路径。我想在坐标的位置画一个矩形。 请解释我做错了什么。提前谢谢你帮助我!
我试图创建一个游戏,在其中我可以旋转矩形,并将其向前或向后移动,当我按下右键时,它会顺时针旋转,如果我按下左键,它会逆时针旋转,但我有一个问题,如果我向上或向下移动,它只会在我按下右键和左键时旋转相同,但我预期它们会向上或向下移动,我已经看过其他的程序,并试图复制他们的方法,但我仍然错过了一些东西,有人请帮助,提前感谢 下面是我的确切代码: }
我有一个pygame精灵动画,其中精灵的位置和形状在整个特定的动画序列中发生变化(例如-攻击)。我如何为碰撞调整精灵的矩形? 我的图像:在动画的一部分中,我的精灵位于png图像文件的中心(96x64像素)。在动画的另一部分中,我的精灵靠近png图像文件的右侧(96x64像素)。在动画的另一部分中,精灵改变形状(由剑移动引起)。等等。 我是否必须进行一些数学运算和计算来调整动画每帧子画面的碰撞条件,