Je me suis mis en tête de faire un créateur de labyrinthe, or j'ai un petit problème!
Quand je clique donc sur le bouton pour mettre un blanc, rien n'apparaît!!
Autre soucis, pour un labyrinthe très grand, l'algorithme de calcul de tile ne semble plus valide et le pointeur ne mets pas les blocs au bon endroits!
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <ButtonConstants.au3>
#include <File.au3>
#include <EditConstants.au3>
#include <Misc.au3>
#include "Generate.au3"
_GDIPlus_Startup()
;Déclaration des variables ----------------------------------------
Global $hDLL = DllOpen("user32.dll")
Global $MUR = 0
Global $SPACE = 0
Global $TELEP = 0
Global $HIDEWALL = 0
Global $TRAPPE = 0
Global $MONSTER = 0
Global $FenCreationWidth = 0x33A
Global $FenCreationHeight = 0x2C1
Global $CREATION = 0
Global $graphHdl2 = 0
;Fin déclaration des variables ------------------------------------
Opt("MouseCoordMode",0)
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Labyrinthe ISN", 817, 837, 369, 255)
Global $Handle = WinGetHandle("Labyrinthe ISN")
GUISetFont(14, 400, 0, "Virus43")
GUISetBkColor(0xFFFBF0)
GUISetIcon("E:\Isn project\icone.ico", -1)
$graphHdl = _GDIPlus_GraphicsCreateFromHWND($Form1)
_GDIPlus_GraphicsClear($graphHdl, 0xFF000000)
$hPen = _GDIPlus_PenCreate(0xFFFFFFFF)
Local $FileMenu = GUICtrlCreateMenu("Fichier")
Local $Creer = GUICtrlCreateMenuItem("Créer", $FileMenu)
Local $Charge = GUICtrlCreateMenuItem("Charger", $FileMenu)
GUICtrlCreateMenuItem("", $FileMenu)
Local $Quit = GUICtrlCreateMenuItem("Quitter", $FileMenu)
Global $Form2 = GUICreate("Génération de labyrinthe", 615, 437, 434, 247)
GUISetFont(14, 400, 0, "Virus43")
GUISetBkColor(0xFFFBF0)
GUISetIcon("E:\Isn project\icone.ico", -1)
Global $Label1 = GUICtrlCreateLabel("Hauteur", 64, 72, 58, 24)
Global $Label2 = GUICtrlCreateLabel("Longueur", 64, 112, 66, 24)
Global $Input1 = GUICtrlCreateInput("", 136, 72, 121, 28, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $Input2 = GUICtrlCreateInput("", 140, 109, 121, 28, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $Label3 = GUICtrlCreateLabel("X Départ", 48, 184, 66, 24)
Global $Label4 = GUICtrlCreateLabel("Y Départ", 48, 232, 66, 24)
Global $Input3 = GUICtrlCreateInput("", 136, 176, 121, 28, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $Input4 = GUICtrlCreateInput("", 136, 224, 121, 28, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $Input5 = GUICtrlCreateInput("", 390, 172, 121, 28, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $Input6 = GUICtrlCreateInput("", 390, 220, 121, 28, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
Global $Label5 = GUICtrlCreateLabel("Y Arrivé", 302, 228, 61, 24)
Global $Label6 = GUICtrlCreateLabel("X Arrivé", 302, 180, 61, 24)
Global $Button11 = GUICtrlCreateButton("Générer", 240, 344, 99, 33)
Global $Form3 = GUICreate("Création", $FenCreationWidth, $FenCreationHeight, 331, 66)
GUISetIcon("E:\Isn project\icone.ico", -1)
$HandleInterface=WinGetHandle("Création")
$graphHdl2 = _GDIPlus_GraphicsCreateFromHWND($Form3)
Global $Form4 = GUICreate("Créateur d'interfaces", 829, 167, 331, 809)
GUISetIcon("E:\Isn project\icone.ico", -1)
GUISetFont(14, 400, 0, "Virus43")
GUISetBkColor(0xE3E3E3)
Global $Group1 = GUICtrlCreateGroup("Éléments du labyrinthe", 16, 8, 801, 121)
Global $Button1 = GUICtrlCreateButton("Ajouter murs", 32, 40, 123, 33)
Global $Button2 = GUICtrlCreateButton("Ajouter espace", 32, 80, 123, 33)
Global $Button3 = GUICtrlCreateButton("Définir départ", 488, 32, 115, 33)
Global $Button4 = GUICtrlCreateButton("Définir arrivée", 488, 80, 115, 33)
Global $Button5 = GUICtrlCreateButton("Sauvegarder", 704, 80, 107, 33)
Global $Button7 = GUICtrlCreateButton("Ajouter téléporteur", 168, 40, 147, 33)
Global $Button8 = GUICtrlCreateButton("Ajouter mur caché", 168, 80, 147, 33)
Global $Button9 = GUICtrlCreateButton("Ajouter trappe", 320, 40, 139, 33)
Global $Button10 = GUICtrlCreateButton("Ajouter monstres", 320, 80, 139, 33)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Button6 = GUICtrlCreateButton("Lancer", 360, 128, 91, 33)
GUISetState(@SW_SHOW, $Form1)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
If _IsPressed("01",$hDLL) And WinGetHandle("[ACTIVE]")=$HandleInterface Then
Select
Case $SPACE=1
If IsArray($CREATION) Then
$mousepos=MouseGetPos()
Local $TileX = Ceiling($mousepos[0]/($FenCreationWidth/UBound($CREATION)-1))-1
Local $TileY = Ceiling($mousepos[1]/($FenCreationHeight/UBound($CREATION,2)-1))-1
;ConsoleWrite($TileX&","&$TileY&","&$TileX*($FenCreationWidth/UBound($CREATION)-1)&","&$TileY*($FenCreationHeight/UBound($CREATION,2)-1)&@CRLF)
If $TileX<=UBound($CREATION)-1 And $TileY<=UBound($CREATION,2)-1 Then
_GDIPlus_GraphicsFillRect($graphHdl2, $TileX*($FenCreationWidth/UBound($CREATION)-1),$TileY*($FenCreationHeight/UBound($CREATION,2)-1),($FenCreationWidth/UBound($CREATION)-1),($FenCreationHeight/UBound($CREATION,2)-1),$hPen)
EndIf
Else
MsgBox(16,"","une erreur est survenue")
Exit
EndIf
EndSelect
EndIf
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Quit
$active = WinGetHandle("[ACTIVE]")
GUISetState(@SW_HIDE, $active)
If $active = $Handle Then
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($graphHdl)
_GDIPlus_Shutdown()
Exit
EndIf
Case $Charge
If FileExists("maze.txt") Then
Local $MAZEIMPORT
_FileReadToArray("maze.txt", $MAZEIMPORT)
$Hauteur = $MAZEIMPORT[0]
_ArrayDelete($MAZEIMPORT, 0)
$Longueur = StringLen($MAZEIMPORT[0])
Local $RealMaze[$Hauteur][$Longueur]
Local $JOKE
For $i = 0 To $Hauteur - 1
$JOKE = StringSplit($MAZEIMPORT[$i], "")
_ArrayDelete($JOKE, 0)
For $j = 0 To $Longueur - 1
$RealMaze[$i][$j] = $JOKE[$j]
Next
Next
_ShowMaze($RealMaze)
EndIf
Case $Creer
$Hauteur=InputBox("","Quelle hauteur pour le labyrinthe?")
$Longueur=InputBox("","Quelle longueur pour le labyrinthe?")
GUISetState(@SW_SHOW, $Form3)
GUISetState(@SW_SHOW, $Form4)
_GDIPlus_GraphicsClear($graphHdl2, 0xFF000000)
Global $CREATION[$Hauteur][$Longueur]
For $i=0 to $hauteur-1
For $j=0 to $Longueur-1
$CREATION[$i][$j]=1
Next
Next
Case $Button2
$SPACE=1
EndSwitch
WEnd



