Hallo mal wieder bei einen Tutorial von Wbedesign-Ugurcu. Wir befinden uns immer noch in der 2D RPG reihe. Heute wollen wir unsere Klasse World schreiben.

Unsere Weltkarte ist eine sogenannte 2D tilemap. diese ist in einen Raster angeordnet was ihr euch ungefähr so vorstellen könnt.

Diese Raster ist etwas unspektakulär und soll nun die Optik von Wiesen und Steinen bekommen etwa so.

Nun kommen wir wieder dazu erstmal ein Objekt der klasse World zu erstellen.

ihr seht wir haben wieder eine Variable angelegt. Die tilesize gibt an wie viel px eine tile breit und hoch sein soll. Ihr könnt wenn ihr wollt dies auch in zwei Variablen speichern z.B tilesizeX und tilesizeY,

wenn ihr unterschiedliche Werte von Y und X haben wollt. Die Tilemap erstellen wir als nächste wie in Teil 2 : Bühne bereits gesehen erstellen wir die Map.

Die 0 steht dabei für Gras und die 1 für Stein.Da unser Spiel warscheinlich nicht nur auf einer Karten spielen soll , erstellen wir eine pickLvl Funktion.

ihr wird die Lvl Nummer übergeben und sie gibt dafür das Level  Array zurück an dem Aufrufer.

 

nun kommen wir zur eigentlichen draw() Funktion.

Hier wird eine verschaltete for schleife durchgeführt. In ersten schritt über die Y Achse und der inneren Schleife durch die X Achse. In ersten Schritt holen wir uns mittels unserer pickLvl() methode das level 1 heraus. Die Schleifen werden nun durch das übergebene Array laufen und bei einer 0 gras und bei einer 1 stein zeichnen. Dazu wird die drawImage() Funktion benutzt, nun mehr zu dieser Funktion.

Mittels dieser Methode können wir alle Images zeichnen die wir brauchen. wir erstellen ein neues Image mittel new Image(). Die Img.src legen wir dann mittels der Tilename fest.Bei mir liegen alle in Ordner img, weshalb ich diesen noch zusätzlich angegeben habe.

Es wird nun die context.drawImage funktion ausgeführt. Ihr übergeben wird.

  • image
  • x * tilesize für die X-Achse
  • y * tilesize für die Y-Achse
  • dann die tilesize als width
  • tilesize als height

 

Unsere World klasse ist nun fertig und kann wieder um einiges erweitert werden zum Beispiel einen Kollision Detektor oder Witterungseinflüsse.

als nächsten erstellen wir eine Scrollende Map. Da unsere Welt größer sein kann als unsere tilemap müssen wir uns ja auch bewegen können.