Python 与前面的问题类似,但已切换到OOP,如何使我的精灵移动?
我已设法在屏幕上显示我的精灵,但无法移动它。移动键已设置好 我真的没有尝试过太多导致任何改变的东西Python 与前面的问题类似,但已切换到OOP,如何使我的精灵移动?,python,pygame,Python,Pygame,我已设法在屏幕上显示我的精灵,但无法移动它。移动键已设置好 我真的没有尝试过太多导致任何改变的东西 import pygame pygame.init() window = pygame.display.set_mode((650, 630)) pygame.display.set_caption("PeaShooters") avatar = pygame.image.load('Sprite 1 Red.png') background = pygame.image.load('Bg.
import pygame
pygame.init()
window = pygame.display.set_mode((650, 630))
pygame.display.set_caption("PeaShooters")
avatar = pygame.image.load('Sprite 1 Red.png')
background = pygame.image.load('Bg.jpg')
white = (255, 255, 255)
class player(object):
def __init__(self, x, y, width, height):
self.x = 300
self.y = 500
self.width = 40
self.height = 60
self.vel = 9
def drawGrid():
window.blit(background, (0,0))
window.blit(avatar, (300, 500))
pygame.draw.line(window, white, [50,50], [50, 600], 5)
pygame.draw.line(window, white, [50,50], [600, 50], 5)
pygame.draw.line(window, white, [600,600], [600, 50], 5)
pygame.draw.line(window, white, [50,600], [600, 600], 5)
pygame.draw.line(window, white, [50,450], [600, 450], 5)
pygame.display.update()
av = player(300, 500, 40, 60)
running = True
while running:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_w] and av.y > 440:
av.y -= av.vel
if keys[pygame.K_a] and av.x > 65:
av.x -= av.vel
if keys[pygame.K_s] and av.y < 530:
av.y += av.vel
if keys[pygame.K_d] and av.x < 525 :
av.x += av.vel
drawGrid()
window.blit(avatar, (x,y))
pygame.quit()
导入pygame
pygame.init()
window=pygame.display.set_模式((650630))
pygame.display.set_标题(“PeaShooters”)
avatar=pygame.image.load('Sprite 1 Red.png')
background=pygame.image.load('Bg.jpg')
白色=(255,255,255)
类播放器(对象):
定义初始值(自、x、y、宽度、高度):
self.x=300
self.y=500
自宽=40
自身高度=60
self.vel=9
def drawGrid():
窗口光点(背景,(0,0))
布利特(阿凡达,(300500))
pygame.draw.line(窗口,白色,[50,50],[50600],5)
pygame.draw.line(窗口,白色,[50,50],[600,50],5)
pygame.draw.line(窗口,白色,[600600],[600,50],5)
pygame.draw.line(窗口,白色,[50600],[600600],5)
pygame.draw.line(窗口,白色,[50450],[600450],5)
pygame.display.update()
av=播放机(300、500、40、60)
运行=真
运行时:
pygame.时间延迟(100)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
keys=pygame.key.get_pressed()
如果键[pygame.K_w]和av.y>440:
平均y-=平均水平
如果键[pygame.K_a]和av.x>65:
平均x-=平均水平
如果键[pygame.K_s]和av.y<530:
平均y+=平均水平
如果键[pygame.K_d]和av.x<525:
平均x+=平均水平
drawGrid()
blit(化身,(x,y))
pygame.quit()
当我加载游戏时,玩家应该移动它没有做的动作。您正在更新按键检查中的玩家位置,但没有使用这些值将玩家移动到正确的位置。尝试更改此行:
window.blit(avatar, (300, 500))
到
您正在更新按键检查中的玩家位置,但没有使用这些值将玩家定位到正确的位置。尝试更改此行:
window.blit(avatar, (300, 500))
到
更好的是,作为论据提供更好的是,作为论据提供