Gitternetz im Spiel (unterteilen)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

geht jetzt übrigens, vielen Dank

Habs auch wieder hinbekommen, dass das Programm die map aus der Datei ausliest
nur noch eine Frage... wie mach ich das jetzt wenn ich mit verschiedenen Layern arbeiten will? wie gestalte ich dann die map Datei?
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du kannst in das Array eine Structure packen,
und die werte dann hintereinander in der datei haben:

Code: Alles auswählen

Structure MapTile
   Layer1.l
   Layer2.l
EndStructure

Dim Map.MapTile(255,255)
...

Procedure LoadMap()

..... ; Schleife
   Map(n,t)\Layer1 = ReadLong()
   Map(n,t)\Layer2 = ReadLong()
das ist eine möglichkeit....

die andere wäre, die verschiedenen layer in dasselbe long zu packen...

du wirst kaum mehr als 1byte pro layer brauchen, und ein Long hat 4 byte...
also kannst du mit bitweisem AND in dem fall 4 layer in einem Long ansprechen...

aber das mit den layern würd ich vorerst mal bleiben lassen,
mach für den anfang mal eher was grundlegenderes...

z.b. ein Labyrinth, wo die spielfigur manche Tiles nicht betreten kann (wand)
das ist als einstieg besser geeignet...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

ok, hab mir schon Gedanken drüber gemacht, nur ein Problem hab ich:
wie krieg ich die Spielfigur immer in die Mitte der Tiles? Und... ich muss es auch irgendwie schaffen, dass die Figur (egal mit welcher Geschwindigkeit) immer zum nächsten Tile läuft und nicht zwischen zwei Tiles stehenbleibt...
muss ich noch überlegen...
Am besten wärs mit ner For-Schleife , denke ich aber ich da komm ich wieder auf mein Problem zurück, wie ich immer die Mitte rausfinde... wäre ja dann:
[Pseudo-code]:

Code: Alles auswählen

; ....
For PlayerX to MittedesnächstenTiles
  PlayerX + 1
Next
; ....

Außerdem hab ich noch ein Problem:
z.B hat ein Spieler, der so ein Spiel in der Auflösung 1024x768 spielen würde, mehr Vorteile als der, der 640x480 spielt, weil er viel mehr im Auge hat... bei OpenWindowedScreen() gibt's ja keine Probleme, da gibts autostretch... aber wie ist das beim Vollbildmodus?
ich muss die nicht immer per Hand resizen oder?

So, für die Kollision hab ich mir das überlegt:
Es gibt eine Variable die NextTile heißt... und beim Schritt nach rechts/unten/links/oben wird ein bestimmter Wert aufaddiert/subtrahiert, wenn es ne Kollision mit ner Wand gibt dann ist NextTile der Aktuelle Tile auf dem der Spieler steht... naja bisschen blöd erklärt^^
aber wär bestimmt keine gute Methode...

Gäbe ja dann noch das mti der Bounding-Box, die ist bestimmt besser, aber keine Ahnung wie ich das realisieren soll...

Danke im Vorraus
// Rubiko

P.S..: ich will mit meinen posting keine kompletten codes... ich will nur Denkanstöße
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Antworten