Entwickler-Ecke

Multimedia / Grafik - Gucken auf welchem Array der Spieler steht...?


Pyr0cracker - Mi 18.06.03 22:48
Titel: Gucken auf welchem Array der Spieler steht...?
Hallo,
ich mach grad ein Spiel mit delphix wo man eine Spielfigur auf einem Array rumlaufen lassen kann.
wie kann man rausfinden auf welchem array die figur grad steht?

es gibt erst mal den array für die karte und dann noch einen für den spieler zum steuern, kommt später dann auch das "wegfinding" mit drauf.

Gruß,


thebe - Mi 18.06.03 23:34

gar nicht, es sei denn Du hast inne Spielfigur ne Variable rein die abspeichert auf welchem Array sie sich gerade befindet


umpani - Do 19.06.03 00:56

Ich gehe mal davon aus, das das Array, was du meinst der Kartenhintergrund ist.

Und wahrscheinlich lässt du die Figur flüssig darauf laufen.

Methode 1:
Du lässt die Figur springen (immer von einer Arraykoordinate zur anderen) :( siht aber nicht besonders toll aus.

Methode zwei.
Du weist der Figur immer die Arraykoordinate zu, der sie am nächsten steht.

Das Laufen müsste dann auch abhängig vom Array sein:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
tfigur = record
            x,y:integer;  {Position im Array}
            x1,y1:integer;  {genauer Standort Relativ vom Array}
           end;

var figur:tfigur;

Array map[1..40,1..40of integer; {1*1 im Array = 40*40 Pixel}

figur.draw(figur.x*40<span style="font-weight: bold">+figur.x1</span>,figur.y*40<span style="font-weight: bold">+figur.y1</span>);

Wenn du jetzt die Figur bewegen willst verändrest du nur dir figrux1, x2 Werte. Wenn einer dieser beiden Wert nun die Hälfte der Strecke zwischen zwei Kartenfeldern (im Array) zurückgelegt hat, in diesem Fall x1 = 20 oder x1 = -20, dann verändert sich der x bzw der y Wert.

Beispiel

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Procedure rechts;
begin
  inc(figur.x1);
  if figur.x1 >= 20 then
    begin
      figur.x1 := -20;
      inc(figur.x);
    end;
end;


etc....