Пытаюсь создать разных случайных врагов из списка [дубликат]Python

Программы на Python
Ответить
Anonymous
 Пытаюсь создать разных случайных врагов из списка [дубликат]

Сообщение Anonymous »

Извините, если это трудно понять, но я сейчас работаю над игрой о космических захватчиках, и вместо того, чтобы каждый раз использовать одно и то же изображение для врага, я хочу, чтобы он выбирал случайного врага из моего списка для появления, но вместо этого создания случайного врага, он просто случайным образом очень быстро просматривает все изображения
import pygame
import random
import math

pygame.init()

# creating the screen

screen = pygame.display.set_mode((800, 600))

clock = pygame.time.Clock()

# title and icon
pygame.display.set_caption('space invaders')

icon = pygame.image.load('spaceinvaders_logo.png')
pygame.display.set_icon(icon)

# player
playerimg = pygame.image.load('spaceinvader_ship.png')
playerX = 370
playerY = 480
playerX_change = 0

# enemies
enemy1 = pygame.image.load('big_cropped_enemy1.png').convert()
enemy2 = pygame.image.load('big_cropped_enemy2.png').convert()
enemy3 = pygame.image.load('big_cropped_enemy3.png').convert()
enemy4 = pygame.image.load('big_cropped_enemy4.png').convert()
enemy5 = pygame.image.load('big_cropped_enemy5.png').convert()
enemy6 = pygame.image.load('big_cropped_enemy6.png').convert()

enemies = [enemy1, enemy2, enemy3, enemy4, enemy5, enemy6]
ememyimg = pygame.image.load('enemy.png')
enemyX = random.randint(0, 800)
enemyY = random.randint(50, 150)
enemyX_change = 2
enemyY_change = 40

# bullet
bulletimg = pygame.image.load('bullet.png')
bulletX = 0
bulletY = 480
bulletX_change = 0
bulletY_change = 18
# ready state means you cant see the bullet on the screen
# fire means the bullet is currently moving
bullet_state = 'ready'

# start menu
game_state = 'start menu'
start_menu = pygame.image.load("space invaders menu.png")

running = True

def player(x, y):
screen.blit(playerimg, (x, y))

def enemy(x, y):
screen.blit(random.choice(enemies), (x, y))

def fire_bullet(x, y):
global bullet_state
bullet_state = 'fire'
screen.blit(bulletimg, (x + 27, y + 10))

def draw_start_menu():
screen.blit(start_menu, (0, 0))
font = pygame.font.SysFont('arial', 60)
font2 = pygame.font.SysFont('arial', 30)
start_button = font2.render('Press SPACE to play!', True, (255, 255, 255))
exit_button = font2.render('X - Exit', True, (255, 255, 255))

screen.blit(start_button, (300, 300))

screen.blit(exit_button, (355, 400))

pygame.display.update()

def iscollision(enemyX, enemyY, bulletX, bulletY):
distance = math.sqrt((math.pow(enemyX-bulletX,2))+ (math.pow(enemyY-bulletY,2)))
if distance < 27:
return True
else:
return False

while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if game_state == 'start menu':
draw_start_menu()
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
game_state = "game"
game_over = False
if keys[pygame.K_x]:
pygame.quit()
quit()

elif game_state == "game":

screen.fill('black')
clock.tick(30)

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

# thing moves when key press < >
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
playerX_change = -8
if event.key == pygame.K_RIGHT:
playerX_change = 8

if event.key == pygame.K_SPACE:
if bullet_state == 'ready':
# get the current x coordinate of spaceship
bulletX = playerX
fire_bullet(playerX, bulletY)

if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
playerX_change = 0

playerX += playerX_change

# makes sure ship doesnt go off map
if playerX = 736:
playerX = 736

# enemy movement
enemyX += enemyX_change

if enemyX = 736:
enemyX_change = -2
enemyY += enemyY_change

# bullet movement
if bulletY

Подробнее здесь: https://stackoverflow.com/questions/791 ... rom-a-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»