Reputation: 36
import pygame
from pygame.locals import *
class Snake:
def __init__(self, parent_screen):
self.parent_screen = parent_screen
self.block = pygame.image.load("BLOCK.png")
self.x = 100
self.y = 100
def draw(self):
self.parent_screen.fill("White")
self.parent_screen.blit(self.block, (self.x,self.y))
pygame.display.flip()
def move_up(self):
self.y -= 10
self.draw()
def move_down(self):
self.y += 10
self.draw()
def move_right(self):
self.x += 10
self.draw()
def move_left(self):
self.x -= 10
self.draw()
class game:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((500,500))
self.screen.fill("White")
self.snake = Snake(self.screen)
self.snake.draw()
def run(self):
game_on = True
while game_on:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_w:
self.snake.move_up()
elif event.key == K_s:
self.snake.move_down()
elif event.key == K_a:
self.snake.move_left()
elif event.key == K_d:
self.snake.move_right()
elif event.type == QUIT:
game_on = False
pygame.display.flip()
Game = game()
Game.run
Upvotes: 1
Views: 407
Reputation: 211268
The scene must be draw and updated in the application:
class game:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((500,500))
#self.screen.fill("White") # <-- DELETE
self.snake = Snake(self.screen)
#self.snake.draw() # <-- DELETE
def run(self):
game_on = True
while game_on:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_w:
self.snake.move_up()
elif event.key == K_s:
self.snake.move_down()
elif event.key == K_a:
self.snake.move_left()
elif event.key == K_d:
self.snake.move_right()
elif event.type == QUIT:
game_on = False
self.screen.fill("White") # <-- INSERT
self.snake.draw() # <-- INSERT
pygame.display.flip()
Game = game()
Game.run() # <-- ()
The typical PyGame application loop has to:
pygame.time.Clock.tick
pygame.event.pump()
or pygame.event.get()
.blit
all the objects)pygame.display.update()
or pygame.display.flip()
Upvotes: 0