gpt4 book ai didi

java - 如何让动画从屏幕上消失并再次出现

转载 作者:行者123 更新时间:2023-12-05 03:33:57 24 4
gpt4 key购买 nike

我是处理新手,我正在创建这个小游戏,这些火柴人试图避开攻击者。我添加了一个移动的棍子人。它从底部到顶部,但是当它到达顶部时,它不再从底部返回,它就消失了。我想知道我能做些什么来做出这个改变。 Picture for the stick man moving up This is what happens when the stick man go off the screen they don't return back from the bottom


void setup()
{
size(800,400);
stick2 = new Stick(10, 200, 2);
stick3 = new Stick(150,200, 3);
}

void draw()
{
background(240);
stick2.render();
stick2.move();
stick3.render();
stick3.move();
}
class Stick
{
//members?
int x, y;
int speedX = 2;
int speedY = 2;
int animationcounter = 0; //animation
PImage img1, img2;

//constructor - load images
Stick(int x, int y, int speed)
{

this.x = x;
this.y = y;
this.speedX = speed;
img1 = loadImage("stick1.png");//loads from .pde source code directory
img2 = loadImage("stick2.png");

}
void render()
{
//cycle through images, and back to image1

if (animationcounter >0 & animationcounter <=8)
{ image(img1,this.x,this.y); }
else if (animationcounter >8 & animationcounter <=20)
{image(img2,this.x,this.y); }

else
{
image(img2,this.x,this.y);
}

animationcounter = animationcounter+1;
if (animationcounter>32)
animationcounter = 0;
}
void move()
{
this.y = this.y - speedY; //move rightwards
if (this.y>height)
this.y = +img1.height;
}
}

最佳答案

问题是您实际上并没有检查火柴人是否在屏幕上方。您正在检查它的 y 值是否高于高度,换句话说,它是否在屏幕下方

Example of the coordinates on screen

此外,如果图像在出现在另一侧之前完全离开屏幕,那就太好了。为此,您的移动函数应如下所示

void move()
{
this.y = this.y - speedY;

//image goes above the screen
if (this.y < 0 - img1.height) //subtract the image height so the image completely disappears before it moves down
this.y = height + img1.height;
//image goes below the screen
if (this.y > height + img1.height)
this.y = -img1.height;
}

关于java - 如何让动画从屏幕上消失并再次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70247021/

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