如何解决我试图在我的 pygame 中添加一个敌人,但一切都是错误的
正如我所说,我试图在我的 pygame 中添加一个敌人,但一切都死了。我真的不知道发生了什么,我认为“玩家”的东西与“敌人”混淆了,有点粘在一起什么的。
这是一个学校项目,我基本上是想在预算内制作一个“街头霸王”,用最少的动画和东西:)
(我对编程很陌生,我有点烂)
import pygame
# Intialize the pygame
pygame.init()
# screen and size
screen = pygame.display.set_mode((800,600))
# title and logo
pygame.display.set_caption("Båtisens Herre")
icon = pygame.image.load('img.png')
pygame.display.set_icon(icon)
# background
background = pygame.image.load("bakgrunn.png")
# player
playerImg = pygame.image.load('King Arthur2.png')
playerX = 100
playerY = 200
def player(x,y):
screen.blit(playerImg,(x,y))
def enemy(x,x,y))
# enemy
enemyImg = pygame.image.load('Black knight1.png')
enemyX = 370
enemyY = 480
enemyX_change = 0
# game loop
clock = pygame.time.Clock()
running = True
while running:
clock.tick(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_a]:
playerX -= 4
if keys[pygame.K_d]:
playerX += 4
screen.blit(background,(0,))
player(playerX,playerY)
pygame.display.update()
# RGB (red,green blue)
screen.fill((248,58,226))
playerY -= 0
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# background(2)
screen.blit(background,))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
player(playerX,playerY)
enemy(enemyX,enemyY)
pygame.display.update()
解决方法
在 enemy
函数中缺少一个 (
:
screen.blit(playerImg,x,y))
screen.blit(enemyImg,(x,y))
从代码中删除多个事件循环。
pygame.event.get()
获取所有消息并将它们从队列中删除。请参阅文档:。请参阅文档:
这将获取所有消息并将它们从队列中删除。 [...]
如果在多个事件循环中调用 pygame.event.get()
,则只有一个循环接收事件,但不会所有循环都接收所有事件。因此,似乎错过了一些事件。
完整代码
import pygame
# Intialize the pygame
pygame.init()
# screen and size
screen = pygame.display.set_mode((800,600))
# title and logo
pygame.display.set_caption("Båtisens Herre")
icon = pygame.image.load('img.png')
pygame.display.set_icon(icon)
# background
background = pygame.image.load("bakgrunn.png")
# player
playerImg = pygame.image.load('King Arthur2.png')
playerX = 100
playerY = 200
def player(x,y):
screen.blit(playerImg,y))
def enemy(x,y):
screen.blit(enemyImg,y))
# enemy
enemyImg = pygame.image.load('Black knight1.png')
enemyX = 370
enemyY = 480
enemyX_change = 0
# game loop
clock = pygame.time.Clock()
running = True
while running:
clock.tick(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_a]:
playerX -= 4
if keys[pygame.K_d]:
playerX += 4
screen.blit(background,(0,0))
player(playerX,playerY)
enemy(enemyX,enemyY)
pygame.display.update()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。