1. Wie kann ich ein neues Level erstellen, bzw wo genau, muss was eingefügt werden?
2. Welchen Code benötigt man, dass das 2. Level beginnt, wenn das 1. vorbei ist und wo muss der Code stehen?
Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte, vllt sogar das untenstehende überarbeitet:
Code: Alles auswählen
# -*- coding: cp1252 -*-
import pygame
from pygame.locals import *
from time import clock
def main():
steine_x=25
steine_y=19
feld=[[1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\
[1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],\
[1,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1],\
[1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1],\
[1,0,0,1,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1],\
[1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1],\
[1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1],\
[1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1],\
[1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,0,1],\
[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1],\
[1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1],\
[1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1],\
[1,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1],\
[1,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1],\
[1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,0,1],\
[1,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1],\
[1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1],\
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1],\
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]
bildgroesse = [25,25]
bsgroesse = steine_x * bildgroesse[0], steine_y * bildgroesse[1]+30
playerpos = [24,1]
ausgang = [1,0]
bewegung = [0,0]
lila = (155, 55, 255)
gelb = (244, 253, 90)
hintergrundfarbe = lila
pygame.init()
bildschirm = pygame.display.set_mode(bsgroesse)
pygame.display.set_caption('Ein Game mit Spielfeld-Karte')
player1 = pygame.image.load("player1.jpg")
player1 = pygame.transform.scale(player1, bildgroesse)
stein1 = pygame.image.load("mauer15.jpg")
stein1 = pygame.transform.scale(stein1, bildgroesse)
farbschluessel = player1.get_at((0,0))
player1.set_colorkey(farbschluessel, RLEACCEL)
playerrechteck = player1.get_rect()
playerrechteck = playerrechteck.move( [playerpos[0]*bildgroesse[0],playerpos[1]*bildgroesse[0]] )
weiter = True
#Voreinstellungen für die Zeit anzeige
Zeit = clock()
text = pygame.font.Font(None, 20)
text.set_italic(1)
tcolor = gelb
textposition = [30, bsgroesse[1] - 20]
while weiter:
for event in pygame.event.get():
if event.type == pygame.QUIT:
weiter = False
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
weiter = False
if event.type == pygame.KEYDOWN and event.key == pygame.K_UP:
bewegung[1] = - 1
if event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN:
bewegung[1] = 1
if event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
bewegung[0] = - 1
if event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
bewegung[0] = 1
if event.type == pygame.KEYUP and (event.key in [pygame.K_UP,pygame.K_DOWN,pygame.K_LEFT,pygame.K_RIGHT]):
bewegung = [0,0]
# if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
# Das Feld ist nach [y,x] aufgebaut, die playerposition und bewegung nach [x,y]
# daher muss hier verdreht gerechnet werden. - > Ändern ?!
if feld[playerpos[1]+ bewegung[1]] [playerpos[0]] == 0:
playerpos[1] = playerpos[1] + bewegung[1]
if feld[playerpos[1]] [playerpos[0] + bewegung[0]] == 0:
playerpos[0] = playerpos[0] + bewegung[0]
if playerpos == ausgang:
weiter = False
print "Du hast ",clock()-Zeit," sek gebraucht!"
playerrechteck.topleft = playerpos[0] * bildgroesse[0], playerpos[1] * bildgroesse[1]
bildschirm.fill(hintergrundfarbe)
for y1 in range(steine_y):
for x1 in range(steine_x):
if feld[y1] [x1]==1:
bildschirm.blit(stein1, (x1*bildgroesse[0],y1*bildgroesse[1]))
bildschirm.blit(player1, playerrechteck)
# die Textanzeige wird zusammengesetzt (3 Vorkomma- + 1 Nachkommastelle) und in ein Bild umgewandelt
anzeige = "Zeit: %3.2f" % (clock()-Zeit)
print anzeige
tbild = text.render(anzeige, 0, tcolor)
# zeige auch das Textbild an der Texposition an
bildschirm.blit(tbild, textposition)
pygame.display.flip()
pygame.quit()
if __name__ == '__main__':
main()
Edit (Leonidas): Code in Python-Tags gesetzt.