Seite 3 von 3

Verfasst: 11.07.2006 19:06
von Kaeru Gaman
> gibt es net nur die eine Möglichkeit (if spritecollison(id,x,y,id2,x2,y2) oder wie meinst du das.

wenn du in meinen thread mal reinschaust, wirst du sehen, dass ich ein macro geschrieben hab,
das SpriteCollision komplett ersetzt, ohne DX benutzen zu müssen, sondern nur zahlen.


zu deiner 2ten frage:

sowas nennt man Layer.

es ist komplett dir überlassen, ob du dein MapArray so gestaltest,
dass du eine extra dimension für die Layer benutzt,

Code: Alles auswählen

Dim Map.b(256,256,3) ; X,Y,Layer
oder ob du die alle in eine einzige Var packst.

Code: Alles auswählen

Dim Map.l(256,256)

Layer1 = Map(x,y)&$FF
Layer2 = (Map(x,y)&$FF00)>>8
;und so weiter

Verfasst: 11.07.2006 19:24
von Zaphod
zum verständnis: ein Bild/Sprite verdeckt nachher auf dem Bildschirm ein anderes Sprite, wenn es später gezeichnet wurde. In dem du in einer von dir festgelegten reihenfolge zeichnest kannst du soviele ebenen darstellen wie du willst.

Generell ist es aber einfacher mit möglichst wenigen ebenen zu arbeiten.

Zur Kollision: wenn du darüber nachdenkst, was passiert wenn zb eine Figur mit einem Kartenobjekt kollidiert wirst du schnell selbst zu dem schluß kommen, dass es nicht nötig ist jedes kartenelement auf kollision zu prüfen.

Dein Sprite wird ja nur eine begrenzte größe haben. Eine Position hat es auch. Kollidieren kann es nur mit Kartenelementen in der nähe.

DS hat die Kollision nur so gemacht, weil das in der Situation einfacher war.
Du würdest normalerweise auch nicht mit DataSection arbeiten wollen, sondern mit arrays deren Daten du aus Dateien lädtst, es sei denn du machst ein wirklich sehr kleines spiel mit einer sehr kleinen Karte.

Verfasst: 13.07.2006 14:49
von Ghost
Ok danke für die hilfe