Bon voici le script qui permet d'exporter la map au format Purebasic :
Code : Tout sélectionner
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=1957&highlight=
; Author: bourbon
; Date: 09. August 2003
; 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_<TileSetIdentifier>.bmp
#end tilebitmap
#end tileset
; --------------------------------------------------------
#file TS_<ProjectName>.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 : <ProjectName>
#; Programmierer : <Author>
#; Copyright : <Copyright>
#; Datum der Erstellung : <CurrentDate>
#; Uhrzeit : <CurrentTime>
#; Anmerkungen : Keine
#;
#; *************************************************************************************************
#;
#tileset
##<TileSetIdentifier>BMP = <TileSetNumber> * 8 + 10
#map
##<MapIdentifier> = <TileSetNumber> * 16 + 10 + <MapNumber>
##<MapIdentifier>_Overlap = <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 #<MapIdentifier>
ret = <MapWidth>
#end map
#end tileset
EndSelect
ProcedureReturn ret
EndProcedure
#; get map height (tiles)
Procedure MapHeight(map)
Select map
#tileset
#map
Case #<MapIdentifier>
ret = <MapHeight>
#end map
#end tileset
EndSelect
ProcedureReturn ret
EndProcedure
#; get tile width (pixels)
Procedure TileWidth(map)
Select map
#tileset
#map
Case #<MapIdentifier>
ret = <TileWidth>
#end map
#end tileset
EndSelect
ProcedureReturn ret
EndProcedure
#; get tile height (pixels)
Procedure TileHeight(map)
Select map
#tileset
#map
Case #<MapIdentifier>
ret = <TileHeight>
#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,"<ProjectName>")
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, <TransparentColorR>, <TransparentColorG>, <TransparentColorB>)
#tileset
#end tileset
#tileset
LoadSprite(#<TileSetIdentifier>BMP, "Data\\TS_<TileSetIdentifier>.bmp", 0)
#end tileset
#tileset
#map
Dim <MapIdentifier>(<MapWidth>, <MapHeight>)
Restore <MapIdentifier>_Data
For y = 1 To <MapHeight>
For x = 1 To <MapWidth>
Read <MapIdentifier>(x, y)
Next
Next
#end map
#end tileset
Procedure DrawTile(map, x, y, tile)
Select map
#tileset
#map
Case #<MapIdentifier>
ClipSprite(#<TileSetIdentifier>BMP, 0, tile * TileHeight(map), TileWidth(map), TileHeight(map))
DisplayTransparentSprite(#<TileSetIdentifier>BMP, x, y)
#end map
#end tileset
EndSelect
EndProcedure
#; ************************************************************************************************
#; * HAUPTSCHLEIFE ...
#; *
Repeat
ExamineKeyboard()
Delay(1)
Until KeyboardPushed(#PB_Key_Escape)
End
#; ************************************************************************************************
; --------------------------------------------------------
#; Mapdaten
#;
DataSection
#tileset
#map
<MapIdentifier>_Data:
#mapdata "\nData.l " "," "\nData.l " "\nData.l " ""
<TileNumber:"%3d">
#end mapdata
#end map
#end tileset
EndDataSection
#; ---------- end of generated file ----------
#end file
La voici le code generé par Tile Studio grace au script ( la map que jai utilisée pour faire des essais s'apelle "Sint" qui se trouve dans le dossier examples de TileStudio )
Je joint le code par fichier car il pese lourd ! (150 - 200 ko )
http://morukutsuland.free.fr/TS_Sint.pb
The life is a game...