簡體   English   中英

如何在Pyglet中跳躍精靈?

[英]How to make a sprite jump in Pyglet?

我一直在做一個個人項目,以重新制作SUper Mario Bros的修改版。到目前為止,我已經能夠添加Mario Sprite以及地面和磚塊。 現在,我一直沉迷於如何讓Mario跳起來。 有人知道怎么做嗎?

編輯:我已經為馬里奧(Mario)開了一堂課,但無法上班。 有什么想法嗎?

class mario(pyglet.sprite.Sprite):
    def __init__(self, batch):
        self._img_main = pyglet.image.load("Mario_Right.png")

        self.img_right1 = pyglet.image.load("Mario_Walk_Right1.png")
        self.img_right2 = pyglet.image.load("Mario_Walk_Right2.png")
        self.anim_right = pyglet.image.Animation.from_image_sequence([self.img_right1, self.img_right2], 0.5, True)
        pyglet.sprite.Sprite.__init__(self, self._img_main)
        self.time = 0

    def forward_movement(self, flag=True):
        if flag:
            self.image = self.anim_right 
        else:
            self.image = self._img_main
   def jump(self,flag=True):
        print time.time()-self.time
        self.y -= -10 +20**(time.time()-self.time+.2)

    def on_key_press(self, symbol, modifiers):
        self.keys_held.append(symbol)
        if symbol == pyglet.window.key.RIGHT:
            self.player.forward_movement(True)
        if symbol == pyglet.window.key.LEFT:
            self.player.time=time.time()
            self.player.jump()

嘗試在代碼上創建引力。 首先,為您的Mario創建一個類。 設置他們的位置和速度。 在您的Mario上放上方法跳轉。

#put this in your init
self.time = 0

#put this in your condition
if keymap[pyglet.window.key.RIGHT]:
    self.mario.time = time.time()
    self.mario.jump()

def jump(self):
    print time.time()-self.time
    self.y -= -10 +20**(time.time()-self.time+.2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM