gpt4 book ai didi

python - 生成多个敌人 pygame

转载 作者:行者123 更新时间:2023-12-04 09:03:06 25 4
gpt4 key购买 nike

我有一个任务,我必须在随机位置生成 3 个敌人,但我只能生成 1 个敌人,有人可以帮助我吗?

import pygame
import random

# Initialize the pygame modules to get everything started.
pygame.init()

# The screen that will be created needs a width and a height.
screen_width = 1300
screen_height = 800
screen = pygame.display.set_mode((screen_width, screen_height))

# This creates the player and gives it the image found in this folder.
player = pygame.image.load("player.jpg")

# Creating multiple enemies
enemy = []
enemy_height = []
enemy_width = []
enemyXPosition = []
enemyYPosition = []
num_enemies = 3

for i in range(num_enemies):
enemy.append().image.load("monster.jpg")
enemyheight = enemy.get_height()
enemywidth = enemy.get_width()
enemyXPosition = random.randint(1100, screen_width)
enemyYPosition = random.randint(0, screen_height - enemyheight)

# Get the width and height of the images in order to do boundary detection (i.e. make sure the image stays within screen boundaries or know when the image is off the screen).
image_height = player.get_height()
image_width = player.get_width()

print("This is the height of the player image: " + str(image_height))
print("This is the width of the player image: " + str(image_width))

# Store the positions of the player as variables.
playerXPosition = 100
playerYPosition = 50

# Creating conditions for game to run
keyUp = False
keyDown = False
keyLeft = False
keyRight = False

# The game loop for running game till told to stop and drawing player and enemy
while 1:

screen.fill(0)
screen.blit(player, (playerXPosition, playerYPosition))
screen.blit(enemies[i], (enemiesXPosition[i], enemiesYPosition[i]))

pygame.display.flip()

# This loops through events in the game.
for event in pygame.event.get():

# This event checks if the user quits the program, then if so it exits the program.
if event.type == pygame.QUIT:
pygame.quit()
exit(0)

# Event for Key presses
if event.type == pygame.KEYDOWN:

if event.key == pygame.K_UP:
keyUp = True
if event.key == pygame.K_DOWN:
keyDown = True
if event.key == pygame.K_LEFT:
keyLeft = True
if event.key == pygame.K_RIGHT:
keyRight = True

# Event to check if key is released
if event.type == pygame.KEYUP:

if event.key == pygame.K_UP:
keyUp = False
if event.key == pygame.K_DOWN:
keyDown = False
if event.key == pygame.K_LEFT:
keyLeft = False
if event.key == pygame.K_RIGHT:
keyRight = False

# Checks which keys are pressed and moves player accordingly
if keyUp == True:
if playerYPosition > 0:
playerYPosition -= 1

if keyDown == True:
if playerYPosition < screen_height - image_height:
playerYPosition += 1

if keyLeft == True:
if playerXPosition > 0:
playerXPosition -= 1

if keyRight == True:
if playerXPosition < screen_width - image_width:
playerXPosition += 1

# Bounding box for the player:
playerBox = pygame.Rect(player.get_rect())
playerBox.top = playerYPosition
playerBox.left = playerXPosition

# Make enemy approach the player.
for i in range(num_enemies):
enemiesXPosition[i] -= 0.15

# Bounding box for the enemy:
enemyBox = pygame.Rect(enemies[i].get_rect())
enemyBox.top = enemiesYPosition[i]
enemyBox.left = enemiesXPosition[i]

#Test collision of the boxes:
if playerBox.colliderect(enemyBox):
print("You lose!")

# If the enemy is off the screen the user wins the game:
if enemiesXPosition[i] < 0 - enemy_width[i]:
print("You win!")

最佳答案

大概您期望敌人对象的属性包含在以下列表中:

enemy = []
enemy_height = []
enemy_width = []
enemyXPosition = []
enemyYPosition = []
但是,在您的敌人初始化中,您直接分配给这些变量而不是附加到它们:
enemyXPosition = random.randint(1100, screen_width)
enemyYPosition = random.randint(0, screen_height - enemyheight)
此外,您似乎在高度和宽度上缺少一些下划线
enemyheight = enemy.get_height()
enemywidth = enemy.get_width()
大概您想将这些值附加到 enemy_heightenemy_width

关于python - 生成多个敌人 pygame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63523461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com