2011-12-01 104 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)

從您所說的話,聽起來好像你不希望在滑動時速度一直在下降,所以試試看刪除此代碼。