Hey everyone! I've recently been doing a number of small projects in Pygame and Python, the recent of which is a small platformer game. I've only been coding in Python for about a few months now and Pygame for even less, so as you could guess I'm very good yet. well back to the point, I've been coding this platformer game and I cant seem to get the terrain to show and the player to move(not even including gravity). Can someone please tell me what I'm doing wrong here(I've been working on this glitch for like 3 hours now and still cant figure it out). Here's the code so you can help.
game.py
Code:
level.py
Code:
game.py
Code:
import sys,pygame
from pygame import *
pygame.init()
display = pygame.display.set_mode((640,480))
class player():
def __init__(self):
self.x = 100
self.y = 100
self.movex = 0
self.movey = 0
self.image = pygame.image.load("player.png").convert_alpha()
self.box = pygame.Rect(self.x,self.y,self.image.get_width(),self.image.get_height())
def move(self):
self.x += self.movex
self.y += self.movey
self.box = pygame.Rect(self.x,self.y,self.image.get_width(),self.image.get_height())
cRects = self.box.collidelistall(level().boxes)
if cRects != []:
for rect in cRects:
if movex > 0:
self.box.right = rect.left
elif movex < 0:
self.box.left = rect.right
if movey > 0:
self.box.bottom = rect.top
elif movey <0:
self.box.top = rect.bottom
self.x = self.box.x
self.y = self.box.y
def render(self):
display.blit(self.image,(self.x,self.y))
class level():
def __init__(self):
self.levelData = []
self.blockTypes = []
self.level = []
self.boxes = []
def addBlockType(self,image):
self.blockTypes.append(image)
return len(self.blockTypes)
def loadLevel(self,data):
self.levelData = data
def renderLevel(self,xos,yos):
self.boxes = []
for i in self.levelData:
print i
image = self.blockTypes[i[0]]
display.blit(image,(i[1]+xos,i[2]+yos))
self.boxes.append(pygame.Rect(i[1]+xos,i[2]+yos,image.get_width(),image.get_height()))
level()
bgim = pygame.image.load("bg.jpg").convert()
execfile("level.py")
level().loadLevel(level1)
while 1:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
key = event.key
if key == K_LEFT:
player().movex = -2
if key == K_RIGHT:
player().movex = 2
display.blit(bgim,(0,0))
level().renderLevel(0,0)
player().move()
player().render()
pygame.display.update()
level.py
Code:
level1 = []
brick = pygame.image.load('brick.png').convert()
dirt = pygame.image.load('dirt.png').convert()
grass = pygame.image.load('grass.png').convert()
stone = pygame.image.load('stone.png').convert()
brick = level().addBlockType(brick)
dirt = level().addBlockType(dirt)
grass = level().addBlockType(grass)
stone = level().addBlockType(stone)
level1.append([grass,0,320])
level1.append([grass,64,320])
level1.append([grass,128,320])
level1.append([grass,192,320])
level1.append([grass,192,320])
level1.append([grass,256,384])
level1.append([grass,320,384])
level1.append([grass,320,384])
level1.append([grass,384,384])
level1.append([grass,448,384])
level1.append([grass,512,384])
level1.append([grass,576,320])
level1.append([grass,640,320])
level1.append([grass,704,320])
level1.append([grass,768,256])
level1.append([grass,832,256])
level1.append([grass,832,256])
level1.append([grass,896,256])
level1.append([grass,960,320])
level1.append([dirt,960,384])
level1.append([dirt,896,384])
level1.append([dirt,896,320])
level1.append([dirt,832,384])
level1.append([dirt,832,320])
level1.append([dirt,768,384])
level1.append([dirt,768,320])
level1.append([dirt,704,384])
level1.append([dirt,640,384])
level1.append([dirt,576,384])
level1.append([dirt,192,384])
level1.append([dirt,128,384])
level1.append([dirt,64,384])
level1.append([dirt,0,384])
level1.append([dirt,0,384])
level1.append([dirt,0,448])
level1.append([dirt,64,448])
level1.append([dirt,128,448])
level1.append([dirt,192,448])
level1.append([dirt,256,448])
level1.append([dirt,320,448])
level1.append([dirt,384,448])
level1.append([dirt,448,448])
level1.append([dirt,512,448])
level1.append([dirt,576,448])
level1.append([dirt,640,448])
level1.append([dirt,640,448])
level1.append([dirt,704,448])
level1.append([dirt,768,448])
level1.append([dirt,832,448])
level1.append([dirt,832,448])
level1.append([dirt,896,448])
level1.append([dirt,960,448])
level1.append([stone,960,512])
level1.append([stone,896,512])
level1.append([stone,832,512])
level1.append([stone,768,512])
level1.append([stone,704,512])
level1.append([stone,640,512])
level1.append([stone,576,512])
level1.append([stone,512,512])
level1.append([stone,448,512])
level1.append([stone,384,512])
level1.append([stone,320,512])
level1.append([stone,256,512])
level1.append([stone,192,512])
level1.append([stone,128,512])
level1.append([stone,64,512])
level1.append([stone,0,512])
level1.append([brick,0,256])
level1.append([brick,0,192])
level1.append([brick,0,128])
level1.append([brick,64,128])
level1.append([brick,128,128])
level1.append([brick,192,128])
level1.append([brick,192,192])
level1.append([brick,192,256])
level1.append([brick,64,256])
level1.append([brick,64,64])