создание функции приказывающей "выстреливать"
нужно что бы функция shot() могла каждый раз, после нажатия пробела, создавала обьект летящий вверх
import pygame
import random
pygame.init()
display_width = 594 #ширина
display_height = 600 #высота
display = pygame.display.set_mode((display_width, display_width))
user_width = 56
user_height = 60
user_x = 269
user_y = display_height - user_height - 25
speed = 3
"""set_mode = режим работы"""
display = pygame.display.set_mode((display_width, display_width))# 2 скобки
bullet = pygame.image.load("bullet.jpg")
def run_game():
game = True
land = pygame.image.load("disp.jpg")
hero = pygame.image.load("ship_img.jpg")
bullet = pygame.image.load("bullet.jpg")
"""выход из игры"""
while game:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
keys = pygame.key.get_pressed()
if keys[pygame.K_a]:
left_swipe()
if keys[pygame.K_d]:
right_swipe()
if keys[pygame.K_SPACE]:
shot()
"""blit вставление"""
"""fill заполнение"""
bullet_y = user_y - user_width
display.blit(land, (0, 0))
display.blit(hero, (user_x, user_y))
return_to()
pygame.display.update()
"""движениe"""
def left_swipe():
global user_x
user_x -= speed
def right_swipe():
global user_x
user_x += speed
"""выход за экран"""
def return_to():
global user_x
if user_x > display_width:
user_x = -54
if user_x < - 55:
user = display width
def shot():
"""должен производить выстрел"""
run_game()
Ответы (1 шт):
Автор решения: MaxGlock
→ Ссылка
По идее, тебе нужно сделать так:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
elif event.type==KEYDOWN:
if event.key==K_SPACE:
shot()
И функция shot() должна сохранять изображение пули, перемещать её в центр твоего героя и обновлять центр пули, вычитая из него координату y Вроде понятно объяснил. Но на всякий случай вот книга, там всё объясняется http://iro23.ru/sites/default/files/e.metiz_-_izuchaem_python._programmirovanie_igr_vizualizaciya_dannyh_veb-prilozheniya_-_2017.pdf