Page 1 sur 2

Aidez-moi ! (TileStudio)

Publié : jeu. 12/mai/2005 22:00
par morukutsu
S@lut a tous,
Je suis deseperé :cry: . lol
Je n'arrive pas a comprendre le fonctionement de TileStudio.
En fait je sais faire mes maps et generer un script PureBasic,mais au moment de l'exploiter avec Pure ... Aïe
Je suis completement bloqué ! Si quelqu'un connaisant ce logiciel pouvait m'aider ... :(
Je vous remercie d'avance :wink:

Publié : ven. 13/mai/2005 10:31
par Dr. Dri
bah faut nous montrer quelquechose (le script généré en pure par exemple)

Dri

Publié : ven. 13/mai/2005 20:55
par morukutsu
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

Publié : ven. 13/mai/2005 21:38
par Dr. Dri
il me manque les médias, je n'ai pas tilestudio
par contre je peux te dire que la partie à "exploiter"
c'est celle ci :

Code : Tout sélectionner

; ************************************************************************************************ 
; *  HAUPTSCHLEIFE ... 
; * 

Repeat 

  ExamineKeyboard() 

Delay(1) 
  
Until KeyboardPushed(#PB_Key_Escape) 

End 
C'est ici qu'il faut tout gérer... Le reste du programme est l'ensemble des fonctions nécessaire et le chargement des données...

Dri ;)

PS. avec les médias je peux essayer...

Publié : ven. 13/mai/2005 22:20
par morukutsu
Voic les medias :D
Si tu y arrives tu pourrais m'expliquer le fonctionnement ? Car je ne pense pas y arriver tout seul car je n'ai jamais fait de Maps comme ceci ! :?
Medias : http://morukutsuland.free.fr/Data.rar

Publié : sam. 14/mai/2005 0:40
par flaith
Salut,

j'ai commencé, il y a qq temps, à faire une version Blitz de Ghost'N Goblins (tjrs pas fini), j'utilise tilestudio pour la map, tu peux aller sur mon site et télécharger les sources (blitz) ainsi que la map et les datas (tout est dans le zip) si ca peut t'aider !

Publié : sam. 14/mai/2005 0:55
par morukutsu
En fait j'aimerais bien savoir comment proceder pour afficher une Map je suis completement perdu c'est tout ce qui me bloque pour avancer dans mon jeu !

Publié : jeu. 19/mai/2005 22:11
par morukutsu
SVP ! Il y a quelqu'un ! :mad: :roll: :??: #milk :'(

Publié : ven. 20/mai/2005 20:51
par Dr. Dri
désolé j'avais des écrits cette semaine (et oué c'est la période des exams ;)) mais ce week end je devrais avoir du temps pour te faire une démo... plutot dimanche...

Dri

Publié : ven. 20/mai/2005 23:40
par morukutsu
Vraiment merci :D Car la j'ai fait des essais je n'y arrive vraiment pas !
Si tu n'as pas le temps je comprendrais ....

Publié : dim. 05/juin/2005 13:25
par morukutsu
Quelqu'un pourrait m'aider SVP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ou me donner l'adresse d'une aide ! ? :cry: :cry: :cry:

Publié : dim. 05/juin/2005 13:45
par Dr. Dri
arf je l'avais completement oublié celui là ^^
je m'y met tout de suite ;)

Dri

[edit]
c'est trop le bordel avec le script généré
il y'a duplication de labels et de constantes

il y a aussi des lignes de data vides... ca risque d'etre compliqué de corriger tout ca...

Dri

Publié : dim. 05/juin/2005 17:16
par morukutsu
Ah ! Ok bon peut être que ce sera plus facile avec une autre Map ?

Publié : dim. 05/juin/2005 21:04
par Dr. Dri
je sais pas... le script généré ne peut meme pas être exécuté... peut etre qu'une map plus simple fonctionnera mais peut etre pas... en plus c'est vraiment pas propre comme solution je trouve...

Dri

Publié : lun. 06/juin/2005 18:47
par morukutsu
Tu as quoi comme autre solution sinon ?