Reputation: 23
I'm using Visual Studio 2017 IDE. I'm getting character display in output but can't control movement. Would you please check if I made any mistakes. I'm using Pygame and it's keyboard input for character movement.
import pygame, sys
from pygame import *
characterSrc = 'character.png'
pygame.init()
window = display.set_mode((1000, 600))
display.set_caption('Character Movement')
speed = 3
posX = 0
posY = 0
white = (255, 255, 255)
window.fill(white)
character = pygame.image.load("character.png")
pressedkeys = pygame.key.get_pressed()
if pressedkeys[K_LEFT]:
posX -= speed
elif pressedkeys[K_RIGHT]:
posX += speed
if pressedkeys[K_UP]:
posY -= speed
elif pressedkeys[K_DOWN]:
posY += speed
if posX > 1000:
posX = 1000
elif posX < 0:
posX = 0
if posY > 600:
posY = 600
elif posY < 0:
posY = 0
window.blit(character, (posX, posY))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
exit()
Upvotes: 0
Views: 148
Reputation: 23
Thank you so much @musikreck I made the changes you suggested and now it works. Here are the modified version of the code above:
import pygame, sys
from pygame import *
characterSrc = 'character.png'
pygame.init()
window = display.set_mode((1000, 600))
display.set_caption('Flappy Bird')
speed = 3
posX = 0
posY = 0
white = (255, 255, 255)
character = pygame.image.load("character.png")
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
exit()
window.fill(white)
pressedkeys = pygame.key.get_pressed()
pygame.key.set_repeat()
if pressedkeys[K_LEFT]:
posX -= speed
elif pressedkeys[K_RIGHT]:
posX += speed
if pressedkeys[K_UP]:
posY -= speed
elif pressedkeys[K_DOWN]:
posY += speed
if posX > 1000:
posX = 1000
elif posX < 0:
posX = 0
if posY > 600:
posY = 600
elif posY < 0:
posY = 0
window.blit(character, (posX, posY))
pygame.display.update()
Upvotes: 1