gpt4 book ai didi

java - 在没有线程的情况下停止程序

转载 作者:行者123 更新时间:2023-12-02 07:46:07 24 4
gpt4 key购买 nike

我正在制作一款视频游戏,游戏中有一群在屏幕上奔跑的怪物。问题在于,怪物在某个时刻会经过一个区域(位于 y 坐标上方),并且必须一路回到顶部。我收到了一项建议,要求将这种从下到上的传输延迟随机时间(0、1、2 或 3 秒)。现在,它只是上升到顶部,没有任何中断。我的问题是实现这个休息。我尝试了各种方法,例如用循环停止,如下所示

            // if( monster is below 400 on y-axis
if( sbgBackFootY[ i ] >= 400 ) {
// random number that determines how long it will take to go to top
int randCo = ( int ) ( Math.random() * 3 );

if( randCo == 0 ) {
//moves monster to top
sbgHeadX[ i ] = 200;
sbgHeadY[ i ] = 80;
sbgMouthX[ i ] = 206;
sbgMouthY[ i ] = 110;
sbgBackX[ i ] = 190;
sbgBackY[ i ] = 95;
sbgBackFootX[ i ] = 190;
sbgBackFootY[ i ] = 115;
sbgFrontFootX[ i ] = 197;
sbgFrontFootY[ i ] = 115;
sbgLeftEyeX[ i ] = 205;
sbgLeftEyeY[ i ] = 90;
sbgRightEyeX[ i ] = 215;
sbgRightEyeY[ i ] = 90;
sbgLeftEyebrowStartX[ i ] = 203;
sbgLeftEyebrowStartY[ i ] = 83;
sbgLeftEyebrowEndX[ i ] = 210;
sbgLeftEyebrowEndY[ i ] = 90;
sbgRightEyebrowStartX[ i ] = 220;
sbgRightEyebrowStartY[ i ] = 83;
sbgRightEyebrowEndX[ i ] = 215;
sbgRightEyebrowEndY[ i ] = 90;

}

if( randCo == 1 ) {
//loop is supposed to stall program
for( int w = 0; w <= 1000000000; w++ ){
SBGco[ i ]++;
}

if( SBGco[ i ] == 1000000000 ) {
//moves monster to top
sbgHeadX[ i ] = 200;
sbgHeadY[ i ] = 80;
sbgMouthX[ i ] = 206;
sbgMouthY[ i ] = 110;
sbgBackX[ i ] = 190;
sbgBackY[ i ] = 95;
sbgBackFootX[ i ] = 190;
sbgBackFootY[ i ] = 115;
sbgFrontFootX[ i ] = 197;
sbgFrontFootY[ i ] = 115;
sbgLeftEyeX[ i ] = 205;
sbgLeftEyeY[ i ] = 90;
sbgRightEyeX[ i ] = 215;
sbgRightEyeY[ i ] = 90;
sbgLeftEyebrowStartX[ i ] = 203;
sbgLeftEyebrowStartY[ i ] = 83;
sbgLeftEyebrowEndX[ i ] = 210;
sbgLeftEyebrowEndY[ i ] = 90;
sbgRightEyebrowStartX[ i ] = 220;
sbgRightEyebrowStartY[ i ] = 83;
sbgRightEyebrowEndX[ i ] = 215;
sbgRightEyebrowEndY[ i ] = 90;

}
}

但是计算机计算速度太快,因此 w 变量变得太快了 1000000000。另一种方法是通过创建线程并进行 Thread.sleep(randCo) 或其他方法,但我试图不要使用多线程。还有其他方法可以做到这一点吗?

最佳答案

您最好预先计算 Sprite 的路径,然后为其指定速度。然后,在“绘制”步骤中,您根据 Sprite 的路径、速度和时间计算位置。

关于java - 在没有线程的情况下停止程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10825289/

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