Я делаю проект Pygame, в котором создаю игру о птеродактилях.
Цель этой игры — поймать птеродактилей с помощью сетей, в которые стреляет игрок. Идея состоит в том, что когда игрок нажимает клавишу (например, пробел), сеть должна быть запущена с позиции игрока в сторону птеродактилей, чтобы поймать их.
Однако у меня возникла проблема: сети не стреляют и не отображаются на экране. Когда нажимаю клавишу, визуально ничего не появляется, и похоже, что сети либо создаются неправильно, либо вообще не рисуются на экране. Птеродактили появляются и движутся правильно, но сети совершенно невидимы, хотя игра продолжает работать без сбоев.
Я не уверен, связана ли проблема с тем, как создаются сети, как обрабатывается их положение или движение или как они отрисовываются внутри игрового цикла. Это также может быть проблема с логикой обновления, порядком отрисовки или тем, как я управляю списками или группами спрайтов для сетей.
В принципе, игровая логика работает, но сети не появляются и не ведут себя как снаряды, поэтому я не могу поймать птеродактилей. Мне нужна помощь, чтобы понять, почему сети не отображаются и что может отсутствовать или быть неправильным в моей настройке Pygame.
import pygame
import random
def main():
pygame.init()
juego = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
empieza = True
fondo = pygame.image.load("fondo.png")
canon = pygame.image.load("canon.png")
nets1 = pygame.image.load("catchingnet.png")
nets = pygame.transform.scale(nets1, (500, 500))
netsposition = []
perodactils = []
perodactilsy = []
cx = 650
cy= 650
px = 1500
py = 0
tiempodep = 0
velocidadp = 0
a = pygame.font.SysFont(None, 32)
perodactilo = pygame.image.load("pterosurus_fly.png")
perodactilo1 = pygame.transform.scale(perodactilo, (300, 150))
clock = pygame.time.Clock()
while empieza:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
empieza == False
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
empieza = False
juego.blit(fondo, (0,0))
juego.blit(canon, (cx, cy))
tiemporeal = pygame.time.get_ticks()
if tiemporeal - tiempodep > 700:
py = random.randint(0, 300)
perodactilsy.append(py)
perodactils.append(px)
tiempodep = tiemporeal
for perodactil in range(len(perodactils)):
perodactils[perodactil] -= 15
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
cx -= 25
if event.key == pygame.K_RIGHT:
cx += 25
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
ny = cy
nx = cx
netsposition.append(ny)
for net in netsposition:
net -= 100
for netp in netsposition:
juego.blit(nets,(netp, ny))
for perodactil, perodactily in zip(perodactils, perodactilsy):
juego.blit(perodactilo1, (perodactil, perodactily))
for perodactyls, perodactylsy1 in zip(perodactils, perodactilsy):
if perodactyls < -1000:
perodactils.remove(perodactyls)
perodactilsy.remove(perodactylsy1)
pygame.display.update()
pygame.quit()
def dinero(points):
a = points/2 + 3
return a
def puntos(agarradas, tiempodevida):
a = tiempodevida + agarradas/2 * 3
def big(money):
a = money/2/2/2
b = a*2
return f"{b}"
if __name__ == "__main__":
main()
Подробнее здесь: https://stackoverflow.com/questions/798 ... -appearing
Сети не появляются ⇐ Python
Программы на Python
1767401383
Anonymous
Я делаю проект Pygame, в котором создаю [b]игру о птеродактилях[/b].
Цель этой игры — [b]поймать птеродактилей с помощью сетей[/b], в которые стреляет игрок. Идея состоит в том, что когда игрок нажимает клавишу (например, пробел), сеть должна быть запущена с позиции игрока в сторону птеродактилей, чтобы поймать их.
Однако у меня возникла проблема: [b]сети не стреляют и не отображаются на экране[/b]. Когда нажимаю клавишу, визуально ничего не появляется, и похоже, что сети либо создаются неправильно, либо вообще не рисуются на экране. Птеродактили появляются и движутся правильно, но сети совершенно невидимы, хотя игра продолжает работать без сбоев.
Я не уверен, связана ли проблема с тем, как создаются сети, как обрабатывается их положение или движение или как они отрисовываются внутри игрового цикла. Это также может быть проблема с логикой обновления, порядком отрисовки или тем, как я управляю списками или группами спрайтов для сетей.
В принципе, игровая логика работает, но [b]сети не появляются и не ведут себя как снаряды[/b], поэтому я не могу поймать птеродактилей. Мне нужна помощь, чтобы понять, почему сети не отображаются и что может отсутствовать или быть неправильным в моей настройке Pygame.
import pygame
import random
def main():
pygame.init()
juego = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
empieza = True
fondo = pygame.image.load("fondo.png")
canon = pygame.image.load("canon.png")
nets1 = pygame.image.load("catchingnet.png")
nets = pygame.transform.scale(nets1, (500, 500))
netsposition = []
perodactils = []
perodactilsy = []
cx = 650
cy= 650
px = 1500
py = 0
tiempodep = 0
velocidadp = 0
a = pygame.font.SysFont(None, 32)
perodactilo = pygame.image.load("pterosurus_fly.png")
perodactilo1 = pygame.transform.scale(perodactilo, (300, 150))
clock = pygame.time.Clock()
while empieza:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
empieza == False
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
empieza = False
juego.blit(fondo, (0,0))
juego.blit(canon, (cx, cy))
tiemporeal = pygame.time.get_ticks()
if tiemporeal - tiempodep > 700:
py = random.randint(0, 300)
perodactilsy.append(py)
perodactils.append(px)
tiempodep = tiemporeal
for perodactil in range(len(perodactils)):
perodactils[perodactil] -= 15
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
cx -= 25
if event.key == pygame.K_RIGHT:
cx += 25
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
ny = cy
nx = cx
netsposition.append(ny)
for net in netsposition:
net -= 100
for netp in netsposition:
juego.blit(nets,(netp, ny))
for perodactil, perodactily in zip(perodactils, perodactilsy):
juego.blit(perodactilo1, (perodactil, perodactily))
for perodactyls, perodactylsy1 in zip(perodactils, perodactilsy):
if perodactyls < -1000:
perodactils.remove(perodactyls)
perodactilsy.remove(perodactylsy1)
pygame.display.update()
pygame.quit()
def dinero(points):
a = points/2 + 3
return a
def puntos(agarradas, tiempodevida):
a = tiempodevida + agarradas/2 * 3
def big(money):
a = money/2/2/2
b = a*2
return f"{b}"
if __name__ == "__main__":
main()
Подробнее здесь: [url]https://stackoverflow.com/questions/79859480/the-nets-are-not-appearing[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия