Probiers einfach mal damit, der COde funktioniert, hoffe, das ich dies auch Ausführlich genug beschrieben habe !
Code:
Jump & Run Beispiel:
Als erstes müssen Sie sich immer klar sein was für ein Spiel es werden soll und was es beinhaltet.
Setzen Sie sich keines Falls zu hohe Ziele, dies wird sehr schnell ins Negative übergehen und Sie schnell demotivieren!
In diesem Beispiel werden wie ein kleines Jump & Run Spiel programmieren.
Fangen wir mal an !
Als erstes brauchen wir ein paar Variablen, hier einmal die Wichtigsten die immer für ein Spiel gebraucht werden:
Var Video_Mode=8; // Auflösung liegt nun bei 1024*768, sehen Sie bitte ins Handbuch um weitere Auflösungen und Erklärungen zu bekommen
Var Video_Screen=1; // Nun wird das Spiel im Fullscreen Modus gestartet, wenn der Wert =2; ist, wird das Spiel im Fenster Modus gestartet.
Var Video_Depth=16; // Das heisst das die Farbtiefe Ingame bei 16 Bit liegt, bei =32; wird die Farbtiefe mit 32 Bit dargestellt.
Nun kommen wir zu weiteren Variablen, die wir im Spiel verwenden werden.
Var Punkte; // Definition der Variable Punkte, diese werden wir später in das Punkte Panel setzen... Dies könnte man auch so schreiben: Var Punkte=0;
Var Spieler_vorne=17; /* Diese Variable wird mit einem Scancode belegt, in diesem Fall ist es die Taste W alle Scancodes können im Handbuch unter Tastenbelegung nachgeschaut werden...
Der Scan Code wird aber nur in der Player_Move Action verwendet, d.h. man könnte diese Variable auch als Punkte oder sonstiges verwenden*/
Var Spieler_hinten=31; // Taste S benutzen wir um den Spieler nach hinten zubewegen
Var Spieler_links_Drehung=30; // Die Taste A benutzen wir um den Spieler nach links zudrehen
Var Spieler_rechts_Drehung=32; // Die Taste D benutzen wir um den Spieler nach rechts zudrehen
Var Spieler_Bewegung; // Vector für die Spieler bewegung
Font Arial = "Arial",1,20; // Font: Arial Schriftart: Normal (2=Fett, 3=Kursiv) Schriftgröße=20
Entity* Player; // Weisst einer Entity den Namen "Player" zu
Action player_move
{
player=my; // Ich bin jetzt die Spielfigur
my.enable_entity=on; // Mach mich Senisbel gegen über anderen Entitys bei einer Kollision
my.event=Item; // Aber nur gegen die Entitys die diese Function haben !!
while(1) // Führe die { Anweisung } immer aus
{
Spieler_Bewegung.X = (key_pressed(Spieler_vorne)-key_pressed(Spieler_hinten))*10*time; /* Befehl das der Spieler bewegt wird wenn die Taste W oder S gedrückt wird, die Geschwindigkeit wie der Spieler sich bewegen soll, wird mit
10*time_Step; gesetzt*/
Player.pan-=10*(mouse_force.x+(key_pressed(turn_left)-key_pressed(turn_right)))*time; /* Der Spieler wird mit den Tasten A und D gedreht -=10*... bestimmt die Geschwindikeit */
Camera_Pos(); // Weise dem Spieler die Function der Kamera zu
c_move(my,Spieler_Bewegung,vector(0,0,0),glide+ignore_passable);
/* C_move ist für die Bewegung zuständig, ohne diesen Befehl wird sich der Spieler nicht bewegen können...
My= Weise dem Befehl C-Move den "My" Pointer zu
Spieler_Bewegung= Der Spieler kann durch Spieler_Bewegung bewegt werden
Vector(0,0,0)= Mit diesen Vector können Sie auch Entitys von alleine bewegen lassen (X,Y,Z)
Gleite an Schrägen entlang
Ignore_Passables=Ignoriere Passierbare Entitys*/
wait(1); //Warte einen Frame ab
}
}
Nun könnte sich der Spieler schon bewegen, aber halt etwas fehlt noch.
Nun kommen wir zum Kamera Script, diese Function weisen wir in der Action des Spielers dem Spieler mit dem Befehl Camera_pos(); (Hier könnten Sie auch einen X Beliebigen Namen nehmen, es müssen aber immer die Klammern () und das Semikolon ; dahinterstehen) zu.
Kamera:
Function Camera_Pos()
{
camera.genius = player;
camera.x = player.x;
camera.y = player.y;
camera.z = player.z+40;
camera.pan = player.pan;
}
Das wäre geschafft. Jetzt muss das Script noch im WED eingefügt werden ,dies machen Sie über:
File -> Map Properties -> Script öffnen
Nun müssen wir die Action dem Spieler Model im WED zuweisen:
Rechts Klick auf die Entity -> Properties -> Behavior
Wenn Sie dies gemacht haben, Compilieren sie das Level und probieren Sie es selber aus :)
Jetzt kommen wir zu dem Teil , indem der Spieler Items aufsammeln kann:
Dazu brauchen sie ein X Beliebiges Model welches Sie gerne für das Item verwenden wollen.
Items aufsammeln Code:
Function Item() // Diese Function muss später über der Player_Move Action stehen !
{
If (event_type == event_entity) // Wenn ich von einer Entity berührt werde, führe { Anweisung } aus
{
Punkte+=10; // Diesen Wert können Sie beliebig ändern
wait(1); // Warte einen Frame ab
ent_remove(you); // Wenn der Spieler das Item berührt hat, entferne das Item
}
}
Action Items // Diese Action wird dem Item zugewiesen
{
c_move(me,vector(0,0,0),nullvector, glide); // C_Move wird benötigt um die Kollision festzustellen, diese Code Zeile bewirkt sonst nichts!
}
Panel Punkte
{
//Hier können Sie vorher noch eine Bitmap zuweisen....
digits=50,500,3,Arial,1,Punkte; // Digit auf X=50, Y=500 für die Punkteanzeige
Flags=Visible; //Sei von Anfang an sichtbar
}
ISt net fertig, werde die Tage daran noch was basteln
cYa Sebastian