Code : Tout sélectionner
;- DECLS - Macros
Macro RuntimeError(message)
MessageRequester("MagicMap",message)
EndMacro
;- DECLS - Globales
Global prefs_grille
Global Grille_Hauteur,Grille_Largeur
Global Map_Hauteur,Map_Largeur,Map_Layers
Global Tile_Hauteur.l,Tile_Largeur.l
Global TileBox_Hauteur.l,TileBox_Largeur.l
;- DECLS - Constantes
Enumeration
#Map_Grille
#Map_Grille3D
#Mouse
#TileSet
EndEnumeration
;- DECLS - Procédure
Declare Init_System()
Declare MagicMap_Open()
Declare MagicMap_Init()
Declare Map_Update()
Init_System()
;{ Valeurs Repeat
Prefs_grille=1
Tile_Hauteur=48
Tile_Largeur=48
TileBox_Hauteur=48
TileBox_Largeur=48
Map_Hauteur=128
Map_Largeur=128
Map_Layers=2
;}
MagicMap_Open()
MagicMap_Init()
Repeat
Event = WindowEvent()
Gadget = EventGadget()
Menu = EventMenu()
Select Event
Case #PB_Event_CloseWindow
Quit=1
EndSelect
Map_Update()
Until quit=1
Procedure Init_System()
InitSprite()
InitSprite3D()
InitKeyboard()
EndProcedure
Procedure MagicMap_Open()
Grille_Hauteur=600-(600 % Tile_Hauteur)
Grille_Largeur=800-(800 % Tile_Largeur)
OpenWindow(0,10,10,Grille_Largeur,Grille_Hauteur,"MagicMap - <Nouveau>",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,Grille_Largeur,Grille_Hauteur,0,0,0)
EndProcedure
Procedure MagicMap_Init()
CreateSprite(#Map_Grille,800,600,#PB_Sprite_Texture)
If StartDrawing(SpriteOutput(#Map_Grille))
For i=0 To 600
If i%Tile_Hauteur=Tile_Hauteur-1
Line(0,i,800,0, RGB(25,69,74))
EndIf
Next
For i=0 To 800
If i%Tile_Largeur=Tile_Largeur-1
Line(i,0,0,600, RGB(25,69,74))
EndIf
Next
StopDrawing()
EndIf
CreateSprite3D(#Map_Grille3D,#Map_Grille)
TransparentSpriteColor(#PB_Default ,RGB(255,0,0))
LoadSprite(#Mouse,"curseur.bmp")
EndProcedure
Procedure Map_Update()
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
Start3D()
; affichage de la grille
If prefs_grille=1
DisplaySprite3D(#Map_Grille3D,0,0,255)
EndIf
Stop3D()
Delay(1)
EndProcedure