首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让游戏中的物体旋转得更流畅?

如何让游戏中的物体旋转得更流畅?
EN

Stack Overflow用户
提问于 2013-10-27 12:26:12
回答 1查看 396关注 0票数 1

我正在制作一款游戏,游戏中昆虫从屏幕顶部落下。这个游戏的目的是杀死这些昆虫。我已经为这些昆虫做了一个关于它们如何移动的代码,但问题似乎是它们似乎以不平滑的模式旋转。他们抽筋了!代码如下:

代码语言:javascript
运行
复制
 else // Enemy is still alive and moving across the screen
    {
        //rotate the enemy between 10-5 degrees
        tempEnemy.rotation += (Math.round(Math.random()*10-5));
        //Find the rotation and move the x position that direction
        tempEnemy.x -=  (Math.sin((Math.PI/180)*tempEnemy.rotation))*tempEnemy.speed;
        tempEnemy.y +=  (Math.cos((Math.PI/180)*tempEnemy.rotation))*tempEnemy.speed;
        if (tempEnemy.x < 0)
        {
            tempEnemy.x = 0;
        }
        if (tempEnemy.x > stage.stageWidth)
        {
            tempEnemy.x = stage.stageWidth;
        }
        if (tempEnemy.y > stage.stageHeight)
        {
            removeEnemy(i);

            lives--;
            roachLevel.lives_txt.text = String(lives);
        }
    }
}

}我遇到的另一个问题是一些昆虫沿着屏幕的边缘移动。用户几乎不能杀死他们,因为他们一半的身体在屏幕上,另一半是关闭的。我可以让它们从边缘移动一点吗,比如偏移量?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-10-27 12:39:09

从你的代码看,它们看起来像是在颤动,因为你马上就改变了大量的旋转:

代码语言:javascript
运行
复制
tempEnemy.rotation += (Math.round(Math.random()*10-5));

相反,您应该插值/动画到您想要的旋转,而不是直接跳到它。有几种方法可以做到这一点,但不确定动画是如何设置的。

为了防止昆虫直接到达屏幕边缘,您可以设置偏移量并限制x/y位置。

例如:

代码语言:javascript
运行
复制
var offset:int = 100; // limits the max x to be 100 pixels from the right edge of the stage

if (tempEnemy.x > (stage.stageWidth - offset)){
    tempEnemy.x = stage.stageWidth - offset;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19614616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档