Autor Beitrag
Pyr0cracker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 164

Win XP, Ubuntu 8.04, openSUSE 11.0
Delphi 7 Personal
BeitragVerfasst: Mi 18.06.03 22:48 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128

WinXP Home
D6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 389



BeitragVerfasst: 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:

ausblenden 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
ausblenden 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....

_________________
Lernen, ohne zu denken, ist eitel; denken, ohne zu lernen, ist gefährlich. Konfuzius