游戏使用html5 - 字符跳转有时间限制

时间:2014-02-22 18:49:02

标签: javascript html html5

我的解释可能不清楚,如果是,请发表评论以进一步澄清。

我试图让角色跳到屏幕的高度 到目前为止,这是我的代码:

 var limit = 0;
    function jump()
    {

    ball.posy -=10;
    limit++;


    if(limit>screenheight) 
    {
    //if character reached top of screen stop this jump() function
    isjump = false;
    limit = 0;
    }


    }

上面的代码将使角色跳到屏幕高度。但是如果屏幕高度较小(例如,在某些移动设备中),则字符跳转会更快 如果有任何有想法的游戏开发者,你能指导我吗? :)谢谢。

1 个答案:

答案 0 :(得分:2)

好的问题是你需要先了解你的跳跃速度。现在它正在根据您的屏幕进行操作,例如:

function jump()
   myjump += 10 // this is what you are doing now
{

所以我们修复那个功能,怎么样? 让我们根据屏幕高度制作10个变量

假设您的屏幕现在是800px高度,因此对于800px高度屏幕,您将添加10px,但对于400高度屏幕,您只需要添加5px !!。

那我们怎么做呢?

使用这个简单的公式

var scaleJump = 10 * (screenHeigth/800)

function jump()
   myjump += scaleJump
{

所以现在如果你的屏幕高度是800,你的var scaleJump将是= 10 *(800/800)= 10

如果您的屏幕高度为400,则scaleJump将= 10 *(400/800)= 5

所以问题解决了!!如果屏幕是400,它将增加5,如果屏幕是800,它将增加10,如果任何其他颜色,它将根据需要进行缩放

来确定时间

好的,我们如何知道绘制框架所需的时间?

since: fps = frames / second

so:   1/fps = seconds / frame

这是一个微分方程,其中有deltaTime和deltaDistance

DeltaTime等于:

1/fps

和DeltaDistance就是这个,如果fps总是相同的,但是就像它们不是我解释如下:

10 * (screenHeigth/800)

现在让我们根据您的需要设置基本速度,因为我没有您的代码我不确定这是快速还是慢,但您可以测试它并根据需要进行更改。

让速度设置为1(我不知道它是快还是慢,只需将其改为后者)

 since speed = DeltaDistance / DeltaTime

所以让我们得到你必须添加的距离,以便速度相同:

DeltaDistance = Speed * DeltaTime

现在你的代码看起来像这样

var DeltaDistance;
var DeltaTime = (1 / fps)
var mySpeed = 1

function jump()
   DeltaDistance = mySpeed * DeltaTime
   myJump += DeltaDistance
{

我想念大学:(