große maps

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@Zeha

das ist im prinzip ähnlich, wie mein vorschlag, die Longs aufzuteilen.

falls du für beide arrays auch longs benutzt, brauchst du doppelt so viel speicher.

so weit ich mitbekommen habe, empfiehlt es sich grundsätzlich longs zu benutzen auf einem 32bit system,
weil die verarbeitung seitens der CPU ein klitzekleines bisschen schneller ist.
das wird wahrscheinlich dadurch ausgeglichen, daß du dann & benutzen mußt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Momentan benutze ich Words, weil meine Map wahrscheinlich nie größer als 65536² werden soll ;) aber die Idee mit dem Aufteilen ist gut!
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Man sollte immer Longs verwenden. Mit Words muss der Prozessor erst
hoch rechnen.
Bild
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

Ihr solltet einen Z Wert mit einbauen.

Weil:

Eine Person im Spiel kann einmal hinter einen Baum sein und vor einen Baum sein kann.
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

am besten mit einer structure oder:

Code: Alles auswählen

Structure
  TilesetID.b
  ItemID.l
EndStructure
ja viel mehr brauch ich ja erstmal nicht.
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag von PureLust »

MVXA hat geschrieben:Man sollte immer Longs verwenden. Mit Words muss der Prozessor erst
hoch rechnen.
Der Meinung war ich auch.
Daraufhin hab ich mal 'ne kleine Testroutine geschrieben und war überrascht, dass der Unterschied doch sehr gering ist (zwischen 1-1.5%).

Selbst Byte-Berechnungen und Mixturen aus verschiedenen Typen haben kaum einen Einfluß auf die Rechenleistung.

Code: Alles auswählen

#Loops = 20000000
DefType.w a1,a2,a3
DefType.l b1,b2,b3,n
DefType.b c1,c2,c3

a2 = 3
a3 = 7
b2 = 3
b3 = 7
t1 = ElapsedMilliseconds()
For n = 1 To #Loops
   a1 = a2 + a3
Next n
t2 = ElapsedMilliseconds()
For n = 1 To #Loops
   b1 = b2 + b3
Next n
t3 = ElapsedMilliseconds()
For n = 1 To #Loops
   c1 = c2 + c3
Next n
t4 = ElapsedMilliseconds()
For n = 1 To #Loops
   a1 = b2 + b3
Next n
t5 = ElapsedMilliseconds()
For n = 1 To #Loops
   b1 = a2 + a3
Next n
t6 = ElapsedMilliseconds()
For n = 1 To #Loops
   b1 = c2 + a3
Next n
t7 = ElapsedMilliseconds()

MessageRequester("Info","Word : "+Str(t2-t1)+Chr(13)+"Long : "+Str(t3-t2)+Chr(13)+"Byte : "+Str(t4-t3)+Chr(13)+Chr(13)+"Long -> Word : "+Str(t5-t4)+Chr(13)+"Word -> Long : "+Str(t6-t5)+Chr(13)+"Byte+Word -> Long : "+Str(t7-t6))
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

den z wert brauch man nicht, man sortiert am besten die figuren die auf dem bildschirm zu sehen sind nach ihrer y position auf dem bildschirm (ausgehend von karthesischen koordinaten; 0,0 punkt oben links). die objekte mit den niedrigsten y werten werden zuerst gezeichnet. ich sehe auch nicht, wie da ein z wert helfen könnte; da die figuren sich bewegen müßte man ja trotzdem ständig alles sortieren.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

er meint mit dem z wert wenn ein baum auf einem feld ist und eine figur das wenn die figur einen niedrigeren z wert hat das sie hinter dem baum ist und sonst vor dem baum
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

trotzdem genügt es, objekte nach y zu sortieren..

wenn die objekte verschieden hoch sind, muss man den y-wert des unteren randes nehmen.

z.b.

ein baum steht auf einem tile, die untere y-koordinate sei 203.
wenn jetzt von oben (weiter weg) eine spielfigur kommt, ist sie solange hinter dem baum,
bis ihre untere y-koordinate größer als 203 wird.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Es kommt nur drauf an, wie die Perspektive ist. Bei so 'ner Top-Down-Perspektive ist das mit der y-Sortierung kein Problem. Auch wenn die Tiles wie Parallelogramme aussehen, geht es. Nur bei 'ner Iso-Perspektive wird's schwierig, da kann man nicht einfach nach y sortieren, da muß man das ein wenig geschickter anstellen ;)

Welche Ansicht hast Du Dir denn vorgestellt?
Antworten