gpt4 book ai didi

java - Slick2D如何开始动画,将其暂停直到发生某些事情,然后继续播放?

转载 作者:行者123 更新时间:2023-12-01 12:59:46 26 4
gpt4 key购买 nike

我一直在使用Slick2D(java)进行基于状态的游戏,并且达到了“死胡同”。

我有一个包含2帧的动画。我希望在用户运行程序时停止动画。当他单击时,第二帧应显示0.5秒钟,然后应返回到第一帧,并再次暂停,直到用户再次单击。

像这样:

ani.draw(150,150); //draw the animation
ani.stopAt(0); //the animation stops at it's first frame
~~~~user clicks~~~~
ani.start();
ani.stopAt(1); //here it stops at the second frame. Pretty sure there's another way to do it but that's not the problem.
~~~~wait for 0.5 secs~~~~ (here's the part I need)
ani.start();
ani.stopAt(0); // return to the first frame again


我尝试使用Thread.sleep来完成此操作,但无法正常工作-(我认为)它跳到第一帧的速度太快,以至于根本看不到第二帧。也许我只是不了解Thread.sleep是如何工作的。

任何帮助,将不胜感激。我从事这个游戏已经有很多时间了(大部分时间都是艺术创作),因此我不想放弃。

谢谢

最佳答案

您需要这样的东西:

//Declare variables:

float coolDown = 0f;
boolean cooling = false;

...

//In the update() method:

if (gc.getInput().isMouseButtonPressed(0)) {
cooling = true;
ani.setCurrentFrame(1);
}
if (cooling) {
coolDown += 0.1f * delta; //Increases the coolDown by a constant amount each frame
}
if (coolDown >= 500) {
//Change '500' to a larger number for a longer wait. NOTE: 500 is NOT 500 milliseconds.

cooling = false;
coolDown = 0f;
ani.setCurrentFrame(0);
}


希望这可以帮助 :)

关于java - Slick2D如何开始动画,将其暂停直到发生某些事情,然后继续播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595845/

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