Извините, если это трудно понять, но я сейчас работаю над игрой о космических захватчиках, и вместо того, чтобы каждый раз использовать одно и то же изображение для врага, я хочу, чтобы он выбирал случайного врага из моего списка для появления, но вместо этого создания случайного врага, он просто случайным образом очень быстро просматривает все изображения
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
Пытаюсь создать разных случайных врагов из списка [дубликат] ⇐ Python
Программы на Python
-
Anonymous
1730997835
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79167172/trying-to-spawn-different-random-enemies-from-a-list[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия