Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-01-2004, 13:12   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 74
Tile-Based Flash Game - Rotierende Türen

Aloa,

ich versuche mich gerade an einem Tile-Based Flash Game. (Lady Tut Clone) Habe hierzu auch schon einige gute Tutorials gefunden. Jetzt stehe ich allerdings vor einem kleinen Problem und komme nicht weiter!

Über ein Array erstelle ich die Spielfläche und plaziere einen player_mc darauf. Die einzelnen Teile der Spielfläche sind 16*16 Pixel und der Player 32*32 Pixel.

Funktioniert soweit ganz gut! Der Player kann herumlaufen und wird von den Wänden entsprechende am weitergehen gehindert.

Jetzt würde ich gerne wie im C64-Klassiker "Lady Tut" (Kennt das noch jemand?) rotierende Türen auf dem Spielfeld haben. Diese Türen sind 1*5 Felder groß (Feld: 16*16 Pixel) und können entweder horizontal oder vertikal platziert werden.

Das ganze sollte dann so funktionieren, dass der Spieler gegen die Tür läuft und diese wie eine Drehtür ihre Ausrichtung ändert und so den Weg freigibt! (Eine rotierende Wand sozusagen!)

Ich habe alle Türen in einem Array gespeichert und schaffe es auch diese richtig auf der Spielfläche zu platzieren. Weil ich die Türen dynamisch erstellen muß (Je nach Level ändert sich natürlich die Menge und die Position) und so folglich mehrere habe, weiß ich nicht wie ich rausfinden kann, gegen welche Tür der Player gerade läuft. (Muß ja die betreffenden Stellen im Spielfeld Array ändern, damit der Weg nicht mehr blockiert ist...)

Meine Türen sehen so aus:

ActionScript:
  1. Code:
  2. var Doors = [];   // Row, Column, Position, Center
  3. Doors[0] = [11,7,"h",9];
  4. Doors[1] = [16,4,"h",6];
  5. Doors[2] = [13,14,"h",16];



Und so platziere ich diese auf der Spielfläche:

ActionScript:
  1. Code:
  2. for(var d=0 ; d<Doors.length ; d++) {
  3.        
  4.    _root.attachMovie("Door_mc","Door" + d + "_mc",24000 + d, { _x : Doors[d][1] * 16 ,
  5.                                                   _y : Doors[d][0] * 16 });
  6.        
  7.       // trace(Doors[d].p);
  8.       // +++ Array anpassen +++
  9.       if(Doors[d][2] == "h"){
  10.          
  11.          map[Doors[d][0]-2][Doors[d][1]+2] = 0;       // Feld 1
  12.          map[Doors[d][0]-1][Doors[d][1]+2] = 0;      // Feld 2
  13.          map[Doors[d][0]][Doors[d][1]+2] = 3;         // Feld 3
  14.          map[Doors[d][0]+1][Doors[d][1]+2] = 0;      // Feld 4
  15.          map[Doors[d][0]+2][Doors[d][1]+2] = 0;      // Feld 5
  16.          
  17.          map[Doors[d][0]][Doors[d][1]] = 2;          // Feld 1
  18.          map[Doors[d][0]][Doors[d][1]+1] = 2;         // Feld 2
  19.          map[Doors[d][0]][Doors[d][1]+2] = 3;         // Feld 3
  20.          map[Doors[d][0]][Doors[d][1]+3] = 2;         // Feld 4
  21.          map[Doors[d][0]][Doors[d][1]+4] = 2;         // Feld 5
  22.          
  23.          _level0["Door" add d add "_mc"].gotoAndStop(1);
  24.          // trace(map[Doors[d].r]);
  25.          
  26.       }else{
  27.          map[Doors[d][0]][Doors[d][1]] = 0;          // Feld 1
  28.          map[Doors[d][0]][Doors[d][1]+1] = 0;         // Feld 2
  29.          map[Doors[d][0]][Doors[d][1]+2] = 3;         // Feld 3
  30.          map[Doors[d][0]][Doors[d][1]+3] = 0;         // Feld 4
  31.          map[Doors[d][0]][Doors[d][1]+4] = 0;         // Feld 5
  32.          
  33.          map[Doors[d][0]-2][Doors[d][1]+2] = 2;       // Feld 1
  34.          map[Doors[d][0]-1][Doors[d][1]+2] = 2;      // Feld 2
  35.          map[Doors[d][0]][Doors[d][1]+2] = 3;         // Feld 3
  36.          map[Doors[d][0]+1][Doors[d][1]+2] = 2;      // Feld 4
  37.          map[Doors[d][0]+2][Doors[d][1]+2] = 2;      // Feld 5
  38.          _level0["Door" add d add "_mc"].gotoAndStop(7);
  39.          trace(map[Doors[d][0]]);
  40.       }
  41.        
  42. }

Wie kann ich jetzt herausfinden, welche Tür-Daten ich ändern muß? Sprich welches Array ich anpassen muß? Doors[X]?

Über Tipps wäre ich dankbar!

See'ya
Rohal.
__________________
project [rohality]
The Online Community Adventure
www.rohality.de
Rohality ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele