尝试做一个愚蠢的小乞丐游戏,我想有两个玩家,一个使用箭头键,一个使用wasd,箭头工作没有问题,但我不知道如何做wasd,我提前道歉,我是python的乞丐,我的名字是葡萄牙语的,所以在我发送代码之前,让我帮忙说我使用“jogador1”“jogador2”是指“player1”和“player2”
这是完整的代码
# jogo plataformer 1
import pygame
# começar o programa
pygame.init()
# ecrã
ecrã = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Trump attack")
backgroundImg = pygame.image.load("weirdbackground.png")
def background():
ecrã.blit(backgroundImg, (0, 0))
funcionar = True
# loop do jogo
# jogador1
jogadorImg =pygame.image.load("biden1.png")
jogadorX = 282
jogadorY = 58
jogadorX_mudar = 0
jogadorY_mudar = 0
# jogador2
jogador2Img = pygame.image.load("trump1.png")
jogador2X = 436
jogador2Y = 58
jogador2Y_mudar = 0
jogador2X_mudar = 0
# bala do jogador 1
balaImg = pygame.image.load("trump2.png")
balaX = jogadorX
balaY = int(jogadorY - 5)
balaY_mudar = 0
balaX_mudar = 0
bala_estado = "pronto"
def disparar(x, y):
global bala_estado
bala_estado = "fire"
ecrã.blit(balaImg, (balaX, balaY))
def jogador2(x, y):
ecrã.blit(jogador2Img, (x, y))
def jogador(x, y):
ecrã.blit(jogadorImg, (x, y))
while funcionar:
for event in pygame.event.get():
if event.type == pygame.QUIT:
funcionar = False
# keybinds jogador 1
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
jogadorX_mudar = -1
if event.key == pygame.K_RIGHT:
jogadorX_mudar = 1
if event.key == pygame.K_UP:
jogadorY_mudar =-1
if event.key == pygame.K_DOWN:
jogadorY_mudar = 1
if event.key == pygame.K_SPACE:
disparar(balaX, balaY)
print("hello")
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
jogadorX_mudar = 0
if jogadorY < -30:
jogadorY_mudar += 1
if jogadorY == float(231.0):
jogadorY_mudar *= 0
jogadorY -= 1
#keybinds jogador 2
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
jogador2X_mudar = -1
if event.key == pygame.K_d:
jogador2X_mudar = 1
if event.key == pygame.K_w:
jogador2Y_mudar =-1
if event.key == pygame.K_s:
jogador2Y_mudar = 1
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
jogador2X_mudar = 0
if jogador2Y < -30:
jogador2Y_mudar += 1
if jogador2Y == float(231.0):
jogador2Y_mudar *= 0
jogador2Y -= 1
# bloco de cima jogador1
if (jogadorY <=200 and jogadorY >= 45) and (jogadorX >= 227 and jogadorX <= 448):
jogadorY_mudar *= 0
if (jogadorY <= 45) and (jogadorX >= 448 or jogadorX <= 227):
jogadorY_mudar += 1
# bloco de cima jogador2
if (jogador2Y <=200 and jogador2Y >= 45) and (jogador2X >= 227 and jogador2X <= 448):
jogador2Y_mudar *= 0
if (jogador2Y <= 45) and (jogador2X >= 448 or jogador2X <= 227):
jogador2Y_mudar += 1
if bala_estado == "fire":
disparar(balaX, balaY)
balaY += 1
background()
jogadorX += jogadorX_mudar
jogadorY += jogadorY_mudar
jogador2Y += jogador2Y_mudar
jogador2X += jogador2X_mudar
jogador2(jogador2X, jogador2Y)
jogador(jogadorX, jogadorY)
pygame.display.update()
```
这是个问题。事件必须在事件循环中处理,而不是在事件循环之后:
相关问题 更多 >
编程相关推荐