首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与Arcade的问题

与Arcade的问题
EN

Stack Overflow用户
提问于 2018-11-11 02:11:53
回答 1查看 619关注 0票数 1

因此,我正在制作一个平台2D游戏与拱门,由于某种原因,我的游戏总是到30 FPS,而不是去60 FPS。

不仅如此,当我按左箭头键将我的角色移到左边时,它会下降到~4 FPS。

我的移动系统的代码(我必须做一个照相机)

代码语言:javascript
运行
复制
def update(self, x):
    # update player
    if self.player != None:
        self.player.real_x += self.player.movement
        self.player.center_y -= gravityConstant

我使用'real_x‘变量,而不是使用'center_x’,因为相机。忽略重力没有加速的事实,总是使角色以恒定的速度下降(会修复这个问题)。

播放机将始终位于屏幕中央:

代码语言:javascript
运行
复制
    self.player.center_x = self.x / 2;

起初我以为雪碧的运动造成了滞后,但当我增加重力时,我注意到问题只是X轴的运动。当角色由于重力而下降时,它会以30 FPS的速度运行,但是当它向任何不是Y (X,-X)的方向移动时,它会将游戏的速度减慢到~4 FPS。

虽然我的电脑很坏,但我不认为它可以对这个脆弱的问题负责。

规范:处理器: 1.58 GHz内存: 3.99 /4.00GB

编辑:这发生在左、右两种动作中。移动是通过arcade.Window类处理的。

职能代码:

代码语言:javascript
运行
复制
def onKeyDown(self, symbol):
    if symbol == arcade.key.LEFT:
        self.movement = -self.walk_speed;
    elif symbol == arcade.key.RIGHT:
        self.movement = self.walk_speed;
    elif symbol == arcade.key.UP:
        self.jumping = True;

def onKeyUp(self, symbol):
    if symbol == arcade.key.LEFT:
        self.movement = 0;
    elif symbol == arcade.key.RIGHT:
        self.movement = 0;
    elif symbol == arcade.key.UP:
        self.jumping = False;

on_key_press和on_key_release的代码:

代码语言:javascript
运行
复制
def on_key_press(self, symbol, modifier):
    if self.player != None:
        self.player.onKeyDown(symbol);

def on_key_release(self, symbol, modifier):
    if self.player != None:
        self.player.onKeyUp(symbol);

注意:这适用于类,因此这些函数位于Player类中。

EN

回答 1

Stack Overflow用户

发布于 2018-11-11 02:37:14

你介意让代码中的一部分负责这些动作吗?

另外,检查将东西放在屏幕上的位置,您想要创建一个变量,将其设置为图像,然后调用var。至于只有在向左移动时才会发生这种情况,请确保左脚本与右脚本相同,但是-而不是+。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53245257

复制
相关文章

相似问题

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