Seite 1 von 1
Wie kann man im array Scrollen
Verfasst: 18.07.2006 20:31
von Ghost
Hi
Hab mal wieder eine Frage
Wie kann man eigentlich in ein array Scrollen (nicht die einzelnen Sprits sondern die Teile des arrays)?
Verfasst: 18.07.2006 20:39
von roherter
Häh was ist mit Sprit und was meinst du mit im Array Scrollen

Verfasst: 18.07.2006 20:48
von Ghost
wusste net wie ich es Formulieren sollte
zB: wenn man ein strategiespiel Programiert benutzt man doch für das Schlachtfeld ein array (wäre Pracktischer)so und wie kann man das machen das man darauf Scrollen kann also das schlachtfeld bewegen kann ?
bei Normale Sprites ist ja leichtr da man nur die Koordinaten verändern muss aber wie ghet das bei dem array ?
Verfasst: 18.07.2006 21:04
von roherter
Wieso benutzt du nich ne datasection
um das Spielfeld zu zeichen?
Verfasst: 18.07.2006 21:09
von Ghost
achso sorry ich ja
also ich benutze eine datasection
und wie kann man dort Scrollen?
Verfasst: 18.07.2006 23:34
von Kaeru Gaman
@roherter
was soll denn das jetzt mit data-section?
natürlich benutzt man ein array.
selbst wenn du die daten in ner data-section einbaust, statt aus ner datei zu laden, wirst du sie in ein array packen, da man eine data-section nicht (ohne weiteres) dynamisch auslesen kann.
@ghost
du scrollst nicht das array selbst, sondern zeigst nur den ausschnitt an, den du sehen willst.
dein array wird ja größer sein als der bildausschnitt, den du anzeigst.
du änderst also das array-feld, bei dem du anfängst anzuzeigen.
Code: Alles auswählen
For t=0 to 18
For n=0 to 24
DisplaySprite( Map( MapX + n, MapY + t ), 32*n, 32*t )
Next
Next
wenn du MapX und/oder MapY veränderst, veränderst du den Bildausschnitt, den du anzeigst, aber das Array bleibt wie es ist.
Verfasst: 19.07.2006 11:33
von Ghost
ok danke

aber wieo hast du die 2. Klammer (die in der anderen Klammer)?
reicht das nicht so
DisplaySprite(2, mx*32+ 32*x, my*32 + 32*y)
und wenn man x bezw y verändert bewegt sich der ausschnitt
im ganzen hab ich es jetzt so
Code: Alles auswählen
Restore Map
For my=0 To 17
For mx=0 To 24
a.b
Read a
If a = 1
DisplaySprite(2, mx*32+ 64*x, my*64 + 64*y)
EndIf
Next
Next
Verfasst: 19.07.2006 12:33
von Kaeru Gaman
die spritenummer steht in deinem array
du arbeitest im moment nur mit einem sprite, das angezeigt wird, wenn in deinem Data ne 1 steht.
in dem Array (und auch in Data) können aber theoretisch viele verschiedene stehen.
nun however...
mit deinen koordinatenberechnungen komm ich nich klar...
was willst du denn erreichen?
> DisplaySprite(2, mx*32+ 64*x, my*64 + 64*y)
wie groß sind deine sprites? wie groß ist dein screen?
warum multipizierst du x und y auch mit 64?
einmal 32 drin, tippfehler?
Verfasst: 19.07.2006 12:51
von Ghost
stimmt dann müsste ich es mit jeder Spritenummer machen heißt dass wenn ich Map( MapX + n, MapY + t ) verwende das den nur einmal für das ganze array benutzen müsste?
aber Map( MapX + n, MapY + t ) funktioniert nicht ganz so toll bei mir (der sagt immer es ist keine Funktion oder List (hab aber mich damit noch nicht soviel beschäftigt weil ich heut net viel Zeit habe (nur ne Stunde))
die 32 ist ein Tippfehler
die sprites sind 64 groß
stimmt bei +y*64 \ +x*64 ist *64 überflüsig (Ich hab nicht drann gedacht das y\x verschieden werte anehmen kann)es diente nur dazu das scrollen einwenig zu beschleunigen undzwar jewals um 64 pixel per Frame (so groß wie die Sprites sind)