Aidez-moi ! (TileStudio)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
morukutsu
Messages : 65
Inscription : sam. 29/janv./2005 15:01
Contact :

Message par morukutsu »

Bon j'ai fait un autre essai avec un autre script de generation qui m'avait l'air mieux ...
Voila le script ( comme ça tu pourra comparer ) :

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 
; (c)by Bourbon 
; 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>_Bitmap = <TileSetNumber> * 8 + 10 
#map 
##LAYER_<TileSetIdentifier>_<MapIdentifier> = <TileSetNumber> * 16 + 10 + <MapNumber> 
##<TileSetIdentifier>_<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 = #LAYER_Ch_Level1            ; als Beispiel der erste Level von Charlie 
mapOverlap.l = 0 
ScrollSicht.l = 40 

#; get map width (tiles) 
Procedure MapWidth(map) 
  Select map 
#tileset 
#map 
    Case #LAYER_<TileSetIdentifier>_<MapIdentifier> 
      ret = <MapWidth> 
#end map 
#end tileset 
  EndSelect 
ProcedureReturn ret 
EndProcedure 

#; get map height (tiles) 
Procedure MapHeight(map) 
  Select map 
#tileset 
#map 
    Case #LAYER_<TileSetIdentifier>_<MapIdentifier> 
      ret = <MapHeight> 
#end map 
#end tileset 
  EndSelect 
ProcedureReturn ret 
EndProcedure 

#; get tile width (pixels) 
Procedure TileWidth(map) 
  Select map 
#tileset 
#map 
    Case #LAYER_<TileSetIdentifier>_<MapIdentifier> 
      ret = <TileWidth> 
#end map 
#end tileset 
  EndSelect 
ProcedureReturn ret 
EndProcedure 

#; get tile height (pixels) 
Procedure TileHeight(map) 
  Select map 
#tileset 
#map 
    Case #LAYER_<TileSetIdentifier>_<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(75)              ; zeige 75 Frames pro Sekunde an 

ScrBreit = ScrollSicht * 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>_Bitmap, "Data\\TS_<TileSetIdentifier>.bmp", 0) 
#end tileset 

#tileset 
#map 
Dim <TileSetIdentifier><MapIdentifier>_Map(<MapWidth>, <MapHeight>) 
Restore <TileSetIdentifier><MapIdentifier>_MapData 
    For y = 1 To <MapHeight> 
      For x = 1 To <MapWidth> 
        Read <TileSetIdentifier><MapIdentifier>_Map (x, y) 
      Next 
    Next 

Dim <TileSetIdentifier><MapIdentifier>_Bounds(<MapWidth>, <MapHeight>) 
Restore <TileSetIdentifier><MapIdentifier>_BoundData 
    For y = 1 To <MapHeight> 
      For x = 1 To <MapWidth> 
        Read <TileSetIdentifier><MapIdentifier>_Bounds(x, y) 
      Next 
    Next 
    
#end map 
#sequence 
<TileSetIdentifier>_Seq<SequenceNumber>.s = Chr(<SequenceNumber>) + 
#sequencedata  ""   " + "  "" 
Chr(<TileNumber>) + Chr(<FrameCount>) 
#end sequencedata 
#end sequence 

Dim <TileSetIdentifier>Sequences.s(<SequenceCount>) 

#sequence 
<TileSetIdentifier>Sequences(<SequenceNumber>) = <TileSetIdentifier>_Seq<SequenceNumber>$ 
#end sequence 
#map 

#; <TileSetIdentifier><MapIdentifier>_Layer 
#; movement (x, y) = (x = <ScrollX>, y = <ScrollY>) 
#; 
#end map 
#end tileset 

#; get tile number at position (x,y) 
Procedure GetTile (map, x, y) 
  Select map 
#tileset 
#map 
    Case LAYER_<TileSetIdentifier>_<MapIdentifier> 
      ret = <TileSetIdentifier><MapIdentifier>_Map(x, y) 
#end map 
#end tileset 
  EndSelect 
ProcedureReturn ret 
EndProcedure 

#; get bounds/map code at position (x,y) 
Procedure GetBounds(map, x, y) 
  Select map 
#tileset 
#map 
    Case LAYER_<TileSetIdentifier>_<MapIdentifier> 
      ret = <TileSetIdentifier><MapIdentifier>_Bounds(x, y) 
#end map 
#end tileset 
  EndSelect 
ProcedureReturn ret 
EndProcedure 

Procedure DrawTile(map, x, y, tile) 
  Select map 
#tileset 
#map 
    Case LAYER_<TileSetIdentifier>_<MapIdentifier> 
      ClipSprite(#<TileSetIdentifier>_Bitmap, 0, tile * TileHeight(map), TileWidth(map), TileHeight(map)) 
      DisplayTransparentSprite(#<TileSetIdentifier>_Bitmap, x, y) 
#end map 
#end tileset 
  EndSelect 
EndProcedure 

#; ************************************************************************************************ 
#; *  HAUPTSCHLEIFE ... 
#; * 
#; man kann sofort etwas sehen, wenn man für die entsprechenden Werte das jeweilige Level und die 
#; entsprechenden Variablen dazu korrekt einsetzt (im Beispiel für Charlie) 

Repeat 

ClearScreen(0, 0, 0) 

  ExamineKeyboard() 

  If KeyboardPushed(#PB_Key_Left) And Map_x > 0 

      Map_x - 1  
                
  EndIf        

  If KeyboardPushed(#PB_Key_Right) And Map_x ? MapWidth(map) - ScrollSicht   ; statt ? kleiner Zeichen einsetzen, liegt an TS :-( 

      Map_x + 1 
                      
  EndIf                  
    
  For datY = 1 To MapHeight(map) 
   For datX = 1 To MapWidth(map) 
    
     block = CHLevel1_Map(datX+Map_x, datY) - 1 
     ClipSprite(#CH_Bitmap, 0, block*TileHeight(map), TileWidth(map), TileHeight(map)) 
     DisplayTransparentSprite(#CH_Bitmap, (datX-1)*TileWidth(map), (datY-1)*TileHeight(map)) 
   Next  
  Next 

FlipBuffers() 

Delay(1) 
  
Until KeyboardPushed(#PB_Key_Escape) 

End 

#; ************************************************************************************************ 

; -------------------------------------------------------- 
#; Mapdaten 
#; 
DataSection 
#tileset 
#map 

<TileSetIdentifier><MapIdentifier>_MapData: 
#mapdata  "\nData.l "  ","  "\nData.l "  "\nData.l "  "" 
<TileNumber:"%3d"> 
#end mapdata 

#; tile size: w = <TileWidth>, h = <TileHeight> 
#; Achtung: die Kollisionsdaten sind in Hex, wegen der Übersichtlichkeit 

<TileSetIdentifier><MapIdentifier>_BoundData: 
#mapdata  "\nData.l "  ","  "\nData.l "  "\nData.l "  "" 
$<BoundMapValue:"%4x"> 
#end mapdata 
#end map 
#end tileset 

EndDataSection 

#; ---------- end of generated file ---------- 
#end file 

; ExecutableFormat=Windows
; FirstLine=1
 EOF
1°) Voila le pack ou je t'ai mis tout les fichers , j'ai uttilisé une carte beaucoups plus simple qui s'apelle "rpg" (~20ko ^^ ). Dans le pack il y a aussi les Datas ...
http://nintendoland.free.fr/fichers/Test.rar

2°) Voici le lien vers Tile Studio si tu ne l'as pas
http://ovh.dl.sourceforge.net/sourcefor ... .5-bin.zip
The life is a game...
morukutsu
Messages : 65
Inscription : sam. 29/janv./2005 15:01
Contact :

Message par morukutsu »

Vous auriez pas une idée ? Ou vous auriez pas un autre logiciel pour faire des maps !! :mad:
Il y a bien quelqu'un qui a peut etre reussi a exploiter des maps de Tile Studio avec ce script de generation sinon il n'existerait pas ! 8O :cry:
The life is a game...
morukutsu
Messages : 65
Inscription : sam. 29/janv./2005 15:01
Contact :

Message par morukutsu »

Hé Dr.Dri en fait laisse tomber :D ...
Devine, j'ai retrouvé un vieux code codé par toi datant du 20 Aout 2003 .
C'est exactement ce que je cherchais donc merci quand meme !

http://cederavic.serveurperso.com/forum ... ight=mappy
The life is a game...
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

j'ai pourtant essayé avec le deuxieme script... y'a presque rien à corriger, j'arrive à ouvrir un écran mais pas à afficher de sprite :(

sinon bien sûr t'as mon code mais y'a pas d'éditeur avec...

Dri
Répondre