JellyFish666 Posted June 19, 2008 Share Posted June 19, 2008 I was wondering if this could be shorter some how and if it can find empty spots and set a image of my choice.expandcollapse popup#include <GUIConstants.au3> $GUI = GUICreate("Test", 600, 600) ;grass _Grass(0 , 0 , 100 , 100) _Grass(100 , 0 , 100 , 100) _Grass(200 , 0 , 100 , 100) _Grass(300 , 0 , 100 , 100) _Grass(400 , 0 , 100 , 100) _Grass(500 , 0 , 100 , 100) ;grass ;Dirt _Dirt(0 , 100 , 100 , 100) _Dirt(100 , 100 , 100 , 100) _Dirt(200 , 100 , 100 , 100) _Dirt(300 , 100 , 100 , 100) _Dirt(400 , 100 , 100 , 100) _Dirt(500 , 100 , 100 , 100) _Dirt(500 , 200 , 100 , 100) _Dirt(500 , 300 , 100 , 100) _Dirt(500 , 400 , 100 , 100) _Dirt(500 , 500 , 100 , 100) _Dirt(0 , 500 , 100 , 100) _Dirt(100 , 500 , 100 , 100) _Dirt(200 , 500 , 100 , 100) _Dirt(300 , 500 , 100 , 100) _Dirt(400 , 500 , 100 , 100) ;Dirt ;Grass _Grass(0 , 200 , 100 , 100) _Grass(100 , 200 , 100 , 100) _Grass(200 , 200 , 100 , 100) _Grass(300 , 200 , 100 , 100) _Grass(400 , 200 , 100 , 100) _Grass(0 , 300 , 100 , 100) _Grass(100 , 300 , 100 , 100) _Grass(200 , 300 , 100 , 100) _Grass(300 , 300 , 100 , 100) _Grass(400 , 300 , 100 , 100) _Grass(0 , 400 , 100 , 100) _Grass(100 , 400 , 100 , 100) _Grass(200 , 400 , 100 , 100) _Grass(300 , 400 , 100 , 100) _Grass(400 , 400 , 100 , 100) ;grass GUISetState(@SW_SHOW) While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _Dirt($DirtX , $DirtY , $DirtW , $DirtH) $Dirt = GUICtrlCreatePic("C:\Documents and Settings\XPPRESP3\Desktop\Turret Defense\dirt.bmp", $DirtX, $DirtY , $DirtY , $DirtH) EndFunc Func _Grass($GrassX , $GrassY , $GrassW , $GrassH) $Grass = GUICtrlCreatePic("C:\Documents and Settings\XPPRESP3\Desktop\Turret Defense\grass.bmp", $GrassX, $GrassY, $GrassW, $GrassH) EndFunc Link to comment Share on other sites More sharing options...
Malkey Posted June 19, 2008 Share Posted June 19, 2008 (edited) I was wondering if this could be shorter some how and if it can find empty spots and set a image of my choice.This be another way. expandcollapse popup#include <GUIConstants.au3> Global $array[6][6] = [[1, 0, 1, 1, 1, 0],[1, 0, 1, 1, 1, 0],[1, 0, 1, 0, 0, 1], _ [1, 0, 0, 0, 0, 0],[1, 0, 1, 1, 1, 0],[1, 0, 1, 0, 0, 1]] Global $hpic[36], $increment = 0 Global $pictures[6] = ["C:\Documents and Settings\mc.MAL\Desktop\grassuu8.bmp", _ "C:\Documents and Settings\mc.MAL\Desktop\dirtta2.bmp"] Local $message $GUI = GUICreate("Test", 600, 600) For $x = 0 To 5 For $y = 0 To 5 $hpic[$increment] = GUICtrlCreatePic($pictures[$array[$x][$y]], $x * 100, $y * 100, 100, 100) GUICtrlSetTip($hpic[$increment], "Position: $array[" & $x & "][" & $y & "] $hPic[" _ & $array[$x][$y] & "]" & @CRLF & "Pic = " & $pictures[$array[$x][$y]]) $increment += 1 Next Next For $x = 0 To 1 $message &= "Enter " & $x & " for " & $pictures[$x] & @CRLF Next GUISetState(@SW_SHOW) While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE Exit Case $GUI_EVENT_SECONDARYUP $id = _ControlGetHovered() $increment = InputBox("title", $message, "", "", 400, 150) If $increment <> "" Then GUICtrlSetImage($id, $pictures[$increment]) ;MsgBox(0,"",$increment) EndSwitch WEnd Func _ControlGetHovered() Local $iRet = DllCall("user32.dll", "int", "WindowFromPoint", _ "long", MouseGetPos(0), _ "long", MouseGetPos(1)) $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $iRet[0]) Return $iRet[0] EndFunc ;==>_ControlGetHovered The variables in the 6x6 $array represents the index of the $pictures array. There are only two images in the $pictures array, $pictures[0] and $pictures[1]. Therefore, 0 and 1 are the only valid data that can be entered in the $array array. Good luck, have fun. Edit: Added change image routine. Edited June 19, 2008 by Malkey Link to comment Share on other sites More sharing options...
JellyFish666 Posted June 19, 2008 Author Share Posted June 19, 2008 This be another way. expandcollapse popup#include <GUIConstants.au3> Global $array[6][6] = [[1, 0, 1, 1, 1, 0],[1, 0, 1, 1, 1, 0],[1, 0, 1, 0, 0, 1], _ [1, 0, 0, 0, 0, 0],[1, 0, 1, 1, 1, 0],[1, 0, 1, 0, 0, 1]] Global $hpic[36], $increment = 0 Global $pictures[6] = ["C:\Documents and Settings\mc.MAL\Desktop\grassuu8.bmp", _ "C:\Documents and Settings\mc.MAL\Desktop\dirtta2.bmp"] Local $message $GUI = GUICreate("Test", 600, 600) For $x = 0 To 5 For $y = 0 To 5 $hpic[$increment] = GUICtrlCreatePic($pictures[$array[$x][$y]], $x * 100, $y * 100, 100, 100) GUICtrlSetTip($hpic[$increment], "Position: $array[" & $x & "][" & $y & "] $hPic[" _ & $array[$x][$y] & "]" & @CRLF & "Pic = " & $pictures[$array[$x][$y]]) $increment += 1 Next Next For $x = 0 To 1 $message &= "Enter " & $x & " for " & $pictures[$x] & @CRLF Next GUISetState(@SW_SHOW) While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE Exit Case $GUI_EVENT_SECONDARYUP $id = _ControlGetHovered() $increment = InputBox("title", $message, "", "", 400, 150) If $increment <> "" Then GUICtrlSetImage($id, $pictures[$increment]) ;MsgBox(0,"",$increment) EndSwitch WEnd Func _ControlGetHovered() Local $iRet = DllCall("user32.dll", "int", "WindowFromPoint", _ "long", MouseGetPos(0), _ "long", MouseGetPos(1)) $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $iRet[0]) Return $iRet[0] EndFunc ;==>_ControlGetHovered The variables in the 6x6 $array represents the index of the $pictures array. There are only two images in the $pictures array, $pictures[0] and $pictures[1]. Therefore, 0 and 1 are the only valid data that can be entered in the $array array. Good luck, have fun. Edit: Added change image routine. Thanks, but I changed the picture paths and can't seem to get this script to work for some reason. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now