내 코드에서 플레이어의 아바타가 특정 지점으로 점프 할 때 중력이 다시 내려옵니다. 그러나 이것은 특정 지점에 도달 할 때까지 위쪽 및 공간 버튼을 누르고있을 때만 작동합니다. 경우에 해제 버튼이 나는이 코드 조각을 사용하여 중력에 다시 아래로 오리를 보내 싶습니다키를 놓을 때 자동으로 중력을 구현하는 방법은 무엇입니까? 연속 점프를 허용하는 방법?
player.rect.move_ip(0, (player.speed) * -player.y_direction)
나는 다음 자동으로 해제되어 있는지 확인을하는 방법을 모른다 그것을 구현하십시오.
또 내가 궁금해하는 또 다른 문제는 오리가 바닥에 떨어졌을 때 단추가 풀린 다음 다시 튀어 나와야한다는 것입니다. 단추를 누르는 동안 아바타가 땅에 떨어질 때까지 코드를 업데이트하고 공간과 위로 버튼을 누르고있는 상태로 점프로 자동 이동합니다. 클래스 플레이어 (pygame.sprite.Sprite) : "" "플레이어 제어 오리" ""
def __init__(self, x, y, width, height):
super(Player, self).__init__(x, y, width, height)
# How many pixels the Player duck should move on a given frame.
self.y_change = 0
# How many pixels the spaceship should move each frame a key is pressed.
self.y_dist = 150
self.x_change = 0
# How many pixels the spaceship should move each frame a key is pressed.
self.x_dist = 30
self.x_direction = 1
# Positive = down, negative = up
self.y_direction = -1
# Current speed.
self.speed = 13
duck = pygame.image.load('walkingduck.png')
player = Player(0, (window_height)-125, 120, 160) #Making player object(duck)
all_sprites_list = pygame.sprite.Group()
all_sprites_list.add(player)
move = False
while True: # the main game loop
if move: #Jumping process
key_pressed = pygame.key.get_pressed()
if key_pressed[pygame.K_UP] or key_pressed[pygame.K_SPACE]:
if player.rect.y<=320:
move=False
else:
player.rect.move_ip(0, player.speed * player.y_direction)
if move==False and player.rect.y<=(window_height)-115:
player.rect.move_ip(0, (player.speed) * -player.y_direction)
for event in pygame.event.get(): #Closes game
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
move=True
#Adds images and text
screen.blit(BackGround.image, BackGround.rect)
all_sprites_list.draw(screen)
pygame.display.flip()
pygame.display.update()
clock.tick(FPS)
그래서 오리는 키를 누르면 위로 움직여야하고, 그렇지 않으면 아래쪽으로 날아가 야합니까? – skrx
이미 그렇게하고 있습니다. 그러나 방출 될 때 오리는 내려올 때 어떤 지점까지 날아 가지 않으면 (키가 눌려진 채로) 대기 중에 머물러 있습니다. 그래서 언제든지 열쇠를 놓아서 땅으로 내려 보낼 수 있도록하고 싶습니다. – Unknownzdx