Einzelnen Beitrag anzeigen
Alt 22.03.2008, 19:18   #1 (permalink)
Secret Raven
PS-Profi
 
 
Registriert seit: 29.07.2007
Beiträge: 648

Secret Raven eine Nachricht über ICQ schicken
Deutsch [TuT] PsP Programmierung: Lua Jump & Run Spiel Teil 1

Hallo zusammen!
Ich habe mich nun endlich dazu durchgerungen ein weiteres Lua Tutorial zu schreiben, ich werde es allerdings anders aufbauen, wir werden nämlich Teil für Teil ein kleines Jump & Run Spiel für die PsP erstellen.
Allerdings fordert das hin und wieder Grundwissen das ich in meinem ersten Lua Tutorial noch nicht erklärt habe... deshalb sind hier mal ein paar Links zu einem anderen Tutorial, das die Teile erklärt die wir für diesen und wahrscheinlich die nächsten Teile benötigen:

Code:
Wichtig für diesen Teil:
1, Grundwissen TuT von mir http://psp.freakz.in/board/psp_tutorialz/23334-tut_psp_programmierung_lua.html#post127718
2, Tabellen TuT von Bumuckl
http://lua.bumuckl.com/index.php?tut=11
3, Tile Maps TuT von Bumuckl
http://lua.bumuckl.com/index.php?tut=21
Benötigt für die nächsten Teile:
1, Musik und Sound TuT von Bumuckl
http://lua.bumuckl.com/index.php?tut=9
2, Kollisions TuT von Bumuckl
http://lua.bumuckl.com/index.php?tut=22
(Gut zu wissen, obwohl wir die Kollisionen auf einem anderen Weg abfragen werden...)
Tipp: Man sollte auch mal einen Blick auf die anderen Tutorials von Bumuckl werfen, sie sind sehr empfehlenswert!! -> http://lua.bumuckl.com/
Jetzt zum Thema, ein Jump & Run spiel sollte jeder von euch kennen oder??
Wenn nicht^^, es handelt sich dabei meistum kleine Spielchen in denen man Gegenstände einsammeln muss. Umso mehr Gegenstände eingesammelt werden, umso größer wird die Punktzahl. Das schwierige an der Sache ist, das auf diesen Gegenständen Gegner patrolieren die einem Schaden zufügen... wenn man keine Leben mehr hat, ist das Spiel zuende. Natürlich gibt es noch viele andere kleine Veränderungen an diesem Spielprinzip aber wir werden eine Ableger von dem oben genannten programmieren.

Nun aber zum Jump & Run Spiel,
im ersten Teil werden wir vorerst nur die Map erstellen, aber das ist ja schließlich die Grundlage jedes Spiels. Da ich leider kein Graphiker bin wird die Map Graphisch ein totaler Reinfall sein, aber ich hoffe ihr vergebt mir in diesem Punkt xD.
Zuerst werden wir ein paar Farben deklarieren:

Code:
--Farben definieren
blau = Color.new(0 , 0 , 255)
gruen = Color.new(0 , 255 , 0)
grau = Color.new(105 , 105 , 105)
--Ende
Diese benötigen wir um nun die einzelnen Tiles die wir erstellen ,einzufärben:

Code:
--Tiles erstellen
himmel = Image.createEmpty(32 , 32)
himmel:clear(blau)
boden = Image.createEmpty(32 , 32)
boden:clear(gruen)
stahlteil = Image.createEmpty(32 , 32)
stahlteil:clear(grau) --wird im nächsten Tutorial durch ein Bild ersetzt!!!
--Ende
Um die Tiles zu erstellen benutzen wir den Image.createEmpty Befehl, die Syntax ist total einfach:
Image.createEmpty( Höhe , Breite )

Code:
--Variablen definieren
Breite = 32
Hoehe = 32
--Ende
Tiles = { himmel, boden, stahlteil }
Hier werden erst zwei Variablen definiert, die man später für die Tile Engine benötigt.
Als zweites erstellen wir eine Tabelle um dann mit der Tile Engine darauf zugreifen zu können.
In der Map die wir als nächstes erstellen steht dann:

himmel für 1
boden für 2 und
stahlteil für 3

Nun wird es interessant, hier wird die Map an sich... ja.. vllt. kann mans deklariert nennen. Das ganze machen wir über eine Tabelle namens Karte:

Code:
--Karten Tabelle erstellen
Karte = { }
Karte[1] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
Karte[2] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
Karte[3] = { 3,3,3,3,1,1,1,1,1,1,1,3,3,3,3 }
Karte[4] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
Karte[5] = { 1,1,1,1,1,3,3,3,3,3,1,1,1,1,1 }
Karte[6] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
Karte[7] = { 3,3,3,3,1,1,1,1,1,1,1,3,3,3,3 }
Karte[8] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
Karte[9] = { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }
--Ende
Ich denke dazu muss ich nicht soviel sagen... es wird erst die Variable Karte als Tabelle deklariert und dann 9 Zeilen und 15 Spalten eingefügt...

Code:
--------mainloop---------
while true do 
screen:clear(blau)
Ja, hier beginnt die Hauptschleife xD

Code:
xPos = -32
yPos = -32
for x = 1,9 do
yPos = yPos + Hoehe
xPos = -32
for y = 1,15 do
xPos = xPos + Breite
screen:blit(xPos,yPos, Tiles[Karte[x][y]])
end
end
Und hier wird endlich die Map selber erstellt. Wenn man alles im Kopf mal durchgeht wird es einem klar. die x und y position sind auf -32 gesetzt weil die Tiles selber 32 pixel groß sind. ja und dann wird für jede einzelne Zeile (for x = 1,9 -> 9 Zeile) die einzelnen Inhalte der 15 Spalten erstellt (for y = 1,15 -> 15 Spalten.
Das wars auch fast, jetzt muss noch die Mainloop beendet werden:

Code:
screen.flip()
screen.waitVblankStart(300)
end
--Ende
Gut, hier habe ich nochmal den ganzen Code für euch und den Download der Map uppe ich gleich:

Spoiler:


So ich hoffe es hat euch Spaß gemacht und ich konnte euch ein bisschen was beibringen und ich überleg mir schonmal wies weitergeht

Und wenn es euch gefallen hat wäre natürlich ein Danke sehr schön

MfG
Secret

Secret Raven ist offline   Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu Secret Raven für den nützlichen Beitrag: