python - 我遇到的问题是我不知道如何使用分配的键绑定来移动我的 Sprite?
问题描述
我想让我的角色在点击键绑定时左右移动,但我不知道怎么做,我意识到我需要将它们分配给角色变量才能做到这一点。但是我不知道该怎么做。
我之前已经问过这个问题,但是与我的代码相比,解决方案确实很难遵循,所以我找不到解决方案。
import pygame
pygame.init()
window = pygame.display.set_mode((750, 750))
pygame.display.set_caption("PeaShooters")
avatar = pygame.image.load('Sprite 1 Red.png')
background = pygame.image.load('Bg.jpg')
x = 64
y =64
width = 40
height = 60
vel = 5
white = (255, 255, 255)
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()
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 y > 455:
y += vel
if keys[pygame.K_a] and x > 55:
x -= vel
if keys[pygame.K_s] and y < 565:
y -= vel
if keys[pygame.K_d] and x < 575 :
x += vel
x += x
drawGrid()
pygame.quit()
我希望精灵在单击某个按钮时会朝指定的方向移动,但这不会发生。
解决方案
删除这条无用的行
x += x
并用于(x, y)
将头像设置在正确的位置
window.blit(avatar, (x, y))
这对我有用。
编辑:你有一些错误y -= ...
-y += ...
你必须改变地方。
而y > 55
不是y > 455
if keys[pygame.K_w] and y > 55:
y -= vel
if keys[pygame.K_s] and y < 565:
y += vel
if keys[pygame.K_a] and x > 55:
x -= vel
if keys[pygame.K_d] and x < 575 :
x += vel
推荐阅读
- javascript - 使用 JSON.parse 将字符串转换为对象
- bluetooth - BLE 阐明读取和指示操作
- python - 在 Drake 之外访问 DifferentialIK
- android - 使用动态路径读取 Firestore 数据
- google-cloud-storage - 如何在多个服务帐户上分配多个 google_storage_bucket_iam_member
- neural-network - 一般线性模式 mri 数据
- python - 每当使用 Signals 注册新用户时,我想向用户配置文件显示默认图片,而无需从 Django 管理员手动执行
- r - 有没有办法确定用于 R 聚类的不同属性的权重?
- python - 多个额外索引 URL - pip.ini
- mysql - MySQL RDS 错误:无法解析主机名:名称或服务未知。这是什么意思?如何解决?