Игрок не движется в PyGame, даже если обнаружен ввод с клавиатуры [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Игрок не движется в PyGame, даже если обнаружен ввод с клавиатуры [дубликат]

Сообщение Anonymous »

Я просто создавал игру Snake на pygame и пытался получить ввод от некоторых клавиш, чтобы преобразовать его в перемещение персонажа моего игрока. Это не сработало. Это работало раньше, когда я делал другую игру, используя код, упомянутый здесь. (Используя метод 2)
Сейчас у меня это не работает.
Я использую VS Code в Windows 11, если эта информация поможет.
Моя версия Python — 3.12.3
Я ожидал, что код будет работать нормально , конечно, но никаких ошибок не показывалось, и PyGame определенно обнаруживал мои ключи, но движения игрока не происходило. Пожалуйста помоги. Спасибо за ответ.
Мой код:-
import pygame
from sys import exit
from random import randint

# boilerplate
pygame.init()
screen = pygame.display.set_mode((800,800))
pygame.display.set_caption('Sneky-Snek')
clock = pygame.time.Clock()
game_active = False
ph = 0
isMoving = False
#all graphics

font = pygame.font.SysFont("Comic_Sans_MS", 30)
snektext = font.render('Sneky-Snek',True,(255,255,255))
snekk = font.render('A simple Snake(esqe) Game',False,(255,255,255))
snekk_rect = snekk.get_rect(center = (400,250))
snektext_2x = pygame.transform.scale2x(snektext)
snektext_rect_2x = snektext_2x.get_rect(center = (400,200))
menutext = font.render('Press SPACE to Start',False,(255,255,255))
menutext_rect = menutext.get_rect(center = (400,650))

# boilerplate
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and game_active == False:
game_active = True
if event.key == pygame.K_RIGHT and isMoving == False:
isMoving = True
print('hi!')
if event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT and isMoving:
isMoving = False
print('bye!')
# display updates
if game_active:
screen.fill('Black')
snek = pygame.draw.rect(screen,(0,255,0),pygame.Rect(30,30,20,20))
if isMoving==True:
snek.x += 10
#x = randint(0,800)
#y = randint(0,800)
#pygame.draw.rect(screen, (255,0,0), pygame.Rect(x, y, 20, 20))
else:
screen.blit(snektext_2x,snektext_rect_2x)
screen.blit(menutext,menutext_rect)
screen.blit(snekk,snekk_rect)

pygame.display.update()
clock.tick(60)



Подробнее здесь: https://stackoverflow.com/questions/785 ... t-detected
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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