; German forum: http://www.purebasic.fr/german/archive/viewtopic.php?t=1957&highlight= ; Author: bourbon (updated for PB4.00 by blbltheworm) ; Date: 09. August 2003 ; OS: Windows ; Demo: No ; PB export function for Tile Studio, doesn't run directly - main program, variables etc. ; PB Export Funktion für Tile Studio, läuft nicht direkt - siehe Hinweis ; -------------------------------------------------------- ; Tile Studio Definition file für Pure Basic ; (http://www.purebasic.de/) ; ; erwarten sie kein fertiges Programm, es gibt noch vieles ; für sie zu tun, Variablen angleichen, Hauptprogramm, es ; soll für sie auch nur einen Denkanstoß darstellen, letzt- ; endlich gewinnt die eigene Kreativität :-) ; ; Version 1.0 - Februar 2003 - Kurzfassung(nur das wichtigste) ; (c)by Bourbon ; ; diese Kurzfassung funktioniert nicht mit den beigefügten ; Beispielen von Tile Studio, da diese mehr Infos erwarten! ; es sollte weiters beachtet werden eindeutige Namen für Level ; und Teilebilder zu vergeben (normale Vorgehensweise wären ein ; oder mehrer Teilebilder und aufsteigende Level, bei Problemen ; kann dieser Code angepasst werden (siehe Tutorial!) ; ; Syntax wegen der Kompatibilität von BB übernommen ; -------------------------------------------------------- ; --- bitmap file ---------------------------------------- #tileset #tilebitmap Data\\TS_.bmp #end tilebitmap #end tileset ; -------------------------------------------------------- #file TS_.pb #; ---------- Generated by Tile Studio ---------- #; #; ACHTUNG, ein paar Werte müssen manuell angepaßt, bzw. ergänzt oder zugewiesen werden! #; #; --- Version 1.0 --- #; ************************************************************************************************* #; #; Aktuelles Projekt : #; Programmierer : #; Copyright : #; Datum der Erstellung : #; Uhrzeit : #; Anmerkungen : Keine #; #; ************************************************************************************************* #; #tileset ##BMP = * 8 + 10 #map ## = * 16 + 10 + ##_Overlap = #end map #end tileset #; #; --- hier die richtigen Werte für unser Windows Fenster eintragen (fürs erste Level z.B.) --- #; map.l = ??? ; hier muss zum Beispiel das erste Level eingetragen werden (ist oben als Konstante definiert) #; get map width (tiles) Procedure MapWidth(map) Select map #tileset #map Case # ret = #end map #end tileset EndSelect ProcedureReturn ret EndProcedure #; get map height (tiles) Procedure MapHeight(map) Select map #tileset #map Case # ret = #end map #end tileset EndSelect ProcedureReturn ret EndProcedure #; get tile width (pixels) Procedure TileWidth(map) Select map #tileset #map Case # ret = #end map #end tileset EndSelect ProcedureReturn ret EndProcedure #; get tile height (pixels) Procedure TileHeight(map) Select map #tileset #map Case # ret = #end map #end tileset EndSelect ProcedureReturn ret EndProcedure #; ; ----------------------------------------------------------------------------- ; *** check auf DirectX und Initialisierung von Sprites und Keyboard *** If InitSprite() = 0 Or InitKeyboard() = 0 MessageRequester("Error","Minimun DirectX Version 7 erforderlich!",#MB_ICONERROR) End : EndIf ; ----------------------------------------------------------------------------- SetFrameRate(30) ; zeige 30 Frames pro Sekunde an ScrBreit = MapWidth(map) * TileWidth(map) ; bei scrolling "ScrollSicht" ansonst "MapWidth(map)" angeben ScrHoch = MapHeight(map) * (TileHeight(map) - mapOverlap) ; einen eventuellen Overlap&Scrollwert hier berücksichtigen hWnd=OpenWindow(0,(GetSystemMetrics_(#SM_CXSCREEN)-ScrBreit)/2,(GetSystemMetrics_(#SM_CYSCREEN)-ScrHoch)/2,ScrBreit,ScrHoch,"",#PB_Window_TitleBar) If OpenWindowedScreen(hWnd,0,0,ScrBreit,ScrHoch,0,0,0) = 0 MessageRequester("Error","Es konnte kein Arbeitsfenster geöffnet werden!",#MB_ICONERROR) End : EndIf TransparentSpriteColor(-1,RGB(,,)) #tileset #end tileset #tileset LoadSprite(#BMP, "Data\\TS_.bmp", 0) #end tileset #tileset #map Global Dim (, ) Restore _Data For y = 1 To For x = 1 To Read (x, y) Next Next #end map #end tileset Procedure DrawTile(map, x, y, tile) Select map #tileset #map Case # ClipSprite(#BMP, 0, tile * TileHeight(map), TileWidth(map), TileHeight(map)) DisplayTransparentSprite(#BMP, x, y) #end map #end tileset EndSelect EndProcedure #; ************************************************************************************************ #; * HAUPTSCHLEIFE ... #; * Repeat ExamineKeyboard() Delay(1) Until KeyboardPushed(#PB_Key_Escape) End #; ************************************************************************************************ ; -------------------------------------------------------- #; Mapdaten #; DataSection #tileset #map _Data: #mapdata "\nData.l " "," "\nData.l " "\nData.l " "" #end mapdata #end map #end tileset EndDataSection #; ---------- end of generated file ---------- #end file ; IDE Options = PureBasic v4.00 (Windows - x86) ; Folding = -