이 코드는 이미지 assassin1.png
을 검은 색 화면에 표시합니다. 이 이미지에는 pymunk body와 shape이 연관되어 있습니다. 그 아래에는 floor
이라는 보이지 않는 정적 pymunk 객체가 있습니다. 중력은 이미지에 유도되며 보이지 않는 바닥에 놓여 있습니다.pyglet 및 pymunk로 스프라이트 문자를 자연스럽게 점프
UP
키를 누를 때 내 이미지가 자연스럽게 이동하고 싶습니다
. 어떻게 구현할 수 있습니까?
import pyglet
import pymunk
def assassin_space(space):
mass = 91
radius = 14
inertia = pymunk.moment_for_circle(mass, 0, radius)
body = pymunk.Body(mass, inertia)
body.position = 50, 80
shape = pymunk.Circle(body, radius)
space.add(body, shape)
return shape
def add_static_line(space):
body = pymunk.Body()
body.position = (0,0)
floor = pymunk.Segment(body, (0, 20), (300, 20), 0)
space.add_static(floor)
return floor
class Assassin(pyglet.sprite.Sprite):
def __init__(self, batch, img, space):
self.space = space
pyglet.sprite.Sprite.__init__(self, img, self.space.body.position.x, self.space.body.position.y)
def update(self):
self.x = self.space.body.position.x
self.y = self.space.body.position.y
class Game(pyglet.window.Window):
def __init__(self):
pyglet.window.Window.__init__(self, width = 315, height = 220)
self.batch_draw = pyglet.graphics.Batch()
self.player1 = Assassin(batch = self.batch_draw, img = pyglet.image.load("assassin1.png"), space = assassin_space(space))
pyglet.clock.schedule(self.update)
add_static_line(space)
def on_draw(self):
self.clear()
self.batch_draw.draw()
self.player1.draw()
space.step(1/50.0)
def on_key_press(self, symbol, modifiers):
if symbol == pyglet.window.key.UP:
print "The 'UP' key was pressed"
def update(self, dt):
self.player1.update()
space.step(dt)
if __name__ == "__main__":
space = pymunk.Space() #
space.gravity = (0.0, -900.) #
window = Game()
pyglet.app.run()
당신은 똑바로 뛰어 오르거나 비스듬히 뛰어 오르고 싶을 때 항상 * 충동을 몸의 중앙에가하십시오. 센터가 아닌 다른 곳에 적용하는 유일한 방법은 시체를 회전시키고 점프하기를 원할 때입니다. –