2011-12-01 52 views
-1

我有困难,使我的精灵滑冰。pygame的地方雪碧溜冰鞋

的事情是我的精灵应该滑动,直到遇到类似的屏幕或块的边界。此外,这应该在精灵在冰上时完成,如果精灵不在冰上,那么精灵应该走路。所以如果这个人压一次,那么这个精灵就会滑冰,直到它碰到一些会阻止它移动的东西。

谢谢!

+0

什么问题?你试过什么了? – Serdalis

+0

就像我能够让我的精灵滑动,但短距离 但这不是滑动我想大声笑 我希望它的距离并不重要 而应该是,精灵滑动,直到有东西停止它 – bluesplay106

+0

你'我需要在这里发布至少相关代码的一部分,我不知道你做了什么或者怎么做,直到我做不幸之前,我都帮不了你。 – Serdalis

回答

2

我不知道你当前如何有你的代码,但一般的模板是:

# main loop 
while True: 
    for each object: 
     update(framerate) 
     render() 

# skater code 
class skater: 
    moving = True 
    speed = [0,0] 
    x = 0 
    y = 0 

    def update(framerate): 
     # check for collisions 
     if collision: 
      self.moving = False 

     # move the skater 
     if self.moving: 
      self.x += self.speed[0]*framerate 
      self.y += self.speed[1]*framerate 

moving将被设置为true,那么箭头键被按下。 其中speed是由什么方向键决定已按下(右-左,后,+和向下)

+0

http://pastebin.com/cEpp44NS 这里是我的代码 它是一种越野车,因为精灵会滑动一小段距离,然后完全停止移动 介意看看它? – bluesplay106

+0

你需要继承'spite'不'state',http://pygame.org/docs/tut/tom/games5.html应该有点帮助。 – Serdalis

+0

其实,我这样做,因为我有一个字符类,如果是雪碧,我有walking.py和standing.py这使得精灵移动(动画),我想要做skating.py类似的东西这是代码我向你展示 – bluesplay106

0

从看你的代码在http://pastebin.com/cEpp44NS你正在做的事情,如:

self.speedX1 *= (self.ice * self.normal_friction) 

这将非常迅速地减少self.speedX1(尤其是因为self.ice设置为0.01)

从您所说的话,听起来好像你不希望在滑动时速度一直在下降,所以试试看删除此代码。