Python Pygame精灵跳跃时不移动
我不明白为什么我的精灵在跳跃时不动。我已经检查了好几次,并且一次又一次地更改了代码,但运气不好。我的代码如下,包含3页,第一页包含主循环,第二页包含玩家类,第三页包含一些游戏函数 主要 玩家Python Pygame精灵跳跃时不移动,python,pygame,sprite,pygame-surface,Python,Pygame,Sprite,Pygame Surface,我不明白为什么我的精灵在跳跃时不动。我已经检查了好几次,并且一次又一次地更改了代码,但运气不好。我的代码如下,包含3页,第一页包含主循环,第二页包含玩家类,第三页包含一些游戏函数 主要 玩家 import pygame from pygame.sprite import Sprite class Player(Sprite): # Initialise the main player def __init__(self, screen): super
import pygame
from pygame.sprite import Sprite
class Player(Sprite):
# Initialise the main player
def __init__(self, screen):
super(Player, self).__init__()
self.screen = screen
self.screen_rect = screen.get_rect()
# Specifying the position of the player at start
self.rect = pygame.Rect(0, 0, 30, 30)
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = 590
self.moving_left = False
self.moving_right = False
self.moving_up = False
self.y = 30
self.y_ud = 5
def p_movements(self):
if self.moving_left and self.rect.x > 5:
self.rect.x -= 1
if self.moving_right and self.rect.x < 765:
self.rect.x += 1
if self.moving_up:
self.rect.y -= self.y
self.y -= 2
if self.y == -30:
self.moving_up = False
self.y = 30
self.rect.bottom = 590
pygame.time.delay(20)
def draw_player(self):
''' Draw the player on the screen'''
pygame.draw.rect(self.screen, (255,255,255), self.rect)
实际上,玩家在你跳的时候会移动,但是在“
self.moving\u
的情况下,由于pygame.time.delay(20)
”从代码中删除
delay
,但增加播放器的移动:
职业玩家(精灵):
def p_运动(自):
如果self.moving_left和self.rect.x>5:
阿马蒂亚。谢谢你。不客气。不过,请阅读并考虑你发现最有用的东西。
import pygame
from pygame.sprite import Sprite
class Player(Sprite):
# Initialise the main player
def __init__(self, screen):
super(Player, self).__init__()
self.screen = screen
self.screen_rect = screen.get_rect()
# Specifying the position of the player at start
self.rect = pygame.Rect(0, 0, 30, 30)
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = 590
self.moving_left = False
self.moving_right = False
self.moving_up = False
self.y = 30
self.y_ud = 5
def p_movements(self):
if self.moving_left and self.rect.x > 5:
self.rect.x -= 1
if self.moving_right and self.rect.x < 765:
self.rect.x += 1
if self.moving_up:
self.rect.y -= self.y
self.y -= 2
if self.y == -30:
self.moving_up = False
self.y = 30
self.rect.bottom = 590
pygame.time.delay(20)
def draw_player(self):
''' Draw the player on the screen'''
pygame.draw.rect(self.screen, (255,255,255), self.rect)
import pygame
def responses(screen, player, event):
''' Check for responses'''
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
player.moving_up = True
if event.key == pygame.K_LEFT:
player.moving_left = True
if event.key == pygame.K_RIGHT:
player.moving_right = True
elif event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
player.moving_left = False
if event.key == pygame.K_RIGHT:
player.moving_right = False