Wie kann man im array Scrollen

Anfängerfragen zum Programmieren mit PureBasic.
Ghost
Beiträge: 141
Registriert: 10.04.2006 09:10

Wie kann man im array Scrollen

Beitrag von Ghost »

Hi
Hab mal wieder eine Frage :oops:

Wie kann man eigentlich in ein array Scrollen (nicht die einzelnen Sprits sondern die Teile des arrays)?
(nutze v. 3.3)
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Häh was ist mit Sprit und was meinst du mit im Array Scrollen :freak: :lol:
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Ghost
Beiträge: 141
Registriert: 10.04.2006 09:10

Beitrag 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 ?
(nutze v. 3.3)
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Wieso benutzt du nich ne datasection
um das Spielfeld zu zeichen?
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Ghost
Beiträge: 141
Registriert: 10.04.2006 09:10

Beitrag von Ghost »

achso sorry ich ja :oops: :oops: :oops:

also ich benutze eine datasection
und wie kann man dort Scrollen?
(nutze v. 3.3)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Ghost
Beiträge: 141
Registriert: 10.04.2006 09:10

Beitrag von Ghost »

ok danke :D
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 
(nutze v. 3.3)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

die spritenummer steht in deinem array

Code: Alles auswählen

Map( MapX + n, MapY + t )
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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Ghost
Beiträge: 141
Registriert: 10.04.2006 09:10

Beitrag 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)
(nutze v. 3.3)
Antworten