gpt4 book ai didi

Java 上下移动图像,动画运动

转载 作者:行者123 更新时间:2023-12-01 15:22:35 24 4
gpt4 key购买 nike

我想知道绘制后如何移动图像?

这是我绘制图像的代码:

public int probeX = 500;
public int Minerals = 400;
public int drawProbeA, drawProbe = 0;

public void init() {
// Images Call
probe = getImage(getDocumentBase(), "image/probe.png");
}

public void paint(Graphics g) {
if (drawProbe == 1) {
for (int k = 0; k < drawProbeA; k++) {

g.drawImage(probe, probeX, 474, 50, 50, this);
probeX += 50;
}
probeX = 500;
}
}

public boolean mouseDown(Event e, int x, int y) {
// Clicking on the probe icon
if (x > 1068 && x < 1119 && y > 785 && y < 832 && onNexus == 1
&& Minerals >= 50) {
drawProbeA += 1;
drawProbe = 1;
Minerals -= 50;
}

return true;
}

如何才能在绘制图像后,点击图标会导致图像自动向下移动 y 轴(如 50 像素)?基本上,就像用动画向下滑动图像一样?然后停下来,然后回到原来的位置。

我正在使用 Applet,并且希望动画重复循环。谢谢。

最佳答案

你需要有一个全局变量,或者某个地方的另一个变量,表明......

  1. 图像需要移动
  2. 它已经在 Y 方向移动了多远
  3. 前进方向(向上或向下)

当你有了这个,你需要将代码添加到你的paint()方法中以在正确的位置绘制图像。

您还需要一个TimerThread来告诉组件每隔几毫秒repaint(),并更改您的全局变量这样它将重新绘制得更低/更高。

因此,举个例子,您可能有一些像这样的全局变量......

int yPosition = 0;
boolean goingDown = true;

当您需要启动动画时,启动一个Timer来一遍又一遍地调用以下代码...

if (goingDown == true){
// if we've gone down 50 pixels, start going up again
if (yPosition <= 0){
goingDown = false;
yPosition++;
}
else {
yPosition--; // move it down 1 pixel
}
}
else {
// if we're going up and we reach 0, go down again
if (yPosition >= 50){
goingDown = true;
yPosition--;
}
else {
yPosition++; // move it up1 pixel
}
}

component.repaint(); // this will call the paint() method

不是你的绘画方法只需要在不同的位置绘制你的图像。只需更改 g.drawImage(probe,probeX,474,50,50,this); 即可包含 yPosition...

g.drawImage(probe,probeX,474+yPosition,50,50,this);

这至少应该为您指明正确的方向。

关于Java 上下移动图像,动画运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10686632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com