Maps

Anfängerfragen zum Programmieren mit PureBasic.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Maps

Beitrag von Raphi »

Ich möchte ein 2d spiel erstellen mit einem untergrung mit Steinen, wasser etc.
Wie definiere ich dass am besten?
Alo z.b. 1= Stein oder so
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Benutze die Forumssuche mit den Begriffen "Tile" und "Engine". Beide zusammen, natürlich.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

Code: Alles auswählen

Enumeration
#Stein
#Wasser
#Baum
EndEnumeration

Debug #Stein
Debug #Wasser
Debug #Baum
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

Versuch mal hier... da hat auch jemand bei nahe Null angefangen:
http://www.purebasic.fr/german/viewtopi ... ne&start=0
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

Ach ja, Tile-Engines... mit denen hab ich mich auch mal ne Zeit lang abgemüht, bis ich sie geblickt hatte. :lol:

Im grunde ist es ganz einfach:

Du erstellst dir ein zweidimensionales Array und füllst es mit Werten, die du gerne hättest.(Sie sollten am besten die Spritenummern sein, das erleichtert das ganze.)

Code: Alles auswählen

;Beispiel
  Dim map(20,20)
  
  for x = 0 to 20
    for y = 0 to 20
      map(x,y) = 1
    next
  next


Dann lässt du die Tiles so auf dem Bildschirm darstellen.

Code: Alles auswählen


for x = 0 to 20
  for y = 0 to 20
    displaysprite(,map(x,y), x*#DeineTileweite,y*#DeineTileweite)
  next
next
und das wars auch schon mit dem Darstellen.
Kollision kannst du abfragen, indem du prüfst, ob die Arraywerte, die neben deiner Figur sind, begehbar sind(Die entsprechenden Werte weißt du ja dann...) oder nicht.
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das ist sowas ähnliches wie der textmodus (da kommt es ursprünglich auch her)
wenn du text darstellen willst, speicherst du auch nicht jedes pixel extra,
sondern nur die buchstaben, und dann schaust du in einer tabelle,
aus welchen pixeln der buchstabe zusamengesetzt wird.
und on das jetzt ein A oder Z oder Baum oder Wiese ist, ist für des Prinzip unerheblich.

und wie immer, hier mein link:
http://www.purebasic.fr/german/viewtopi ... 634#116634
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten