rush4hire Posted February 23, 2007 Share Posted February 23, 2007 This might not seem so spectacular, but I'm proud of it so I posted it.. Here is a simple graphic and it will be represented in just letters in small font.. but the thing to note is we have a small amount of data to start with, there are no external files. The functions make 4 graphics out of one, and if you wanted, you could get 8, but you'd have to figure out how to rotate it at a 45 degree angle.. Which I might do later.. The initial graphic can be gained with a pixel mapping method. So my next move is to use the GuiCtrlCreateGraphic functions to make a similar graphics with color Where each color can be represented with a single character, and we'll just have a square map to start with and spin it around.. It would make more sense to use an gif, I know, but I can't figure out how to put an animated gif in my gui .. lol .. and I've already invested too much time here to go back! expandcollapse popup$begin = TimerInit() $newchar = "" $grspeed = 200 ; ms pause between changing pics $guifont = "Courier New" ;~ $guifont = "Webdings" ; we start with a small graphic which can be created with an Global $grtxto[4] $grtxto[0] = "" & _ " @@@@@ "& @CRLF & _ " @@@@@@@@@ "& @CRLF & _ " @@@ "& @CRLF & _ " @@@ "& @CRLF & _ " @@ "& @CRLF & _ " @@"& @CRLF & _ " @@"& @CRLF & _ " @@"& @CRLF & _ " @@"& @CRLF & _ "@@@@@ @@"& @CRLF & _ "@@@@ @@ "& @CRLF & _ "@@@ @@@ "& @CRLF & _ "@@@@@ @@@ "& @CRLF & _ "@ @@@@@@@@@ "& @CRLF & _ " @@@@@ " If $newchar <> "" Then $grtxto[0] = StringReplace($grtxto[0], "@", $newchar) $grtxto[1] = RotateLeft($grtxto[0]) $grtxto[2] = _StringRev($grtxto[0]) $grtxto[3] = _StringRev($grtxto[1]) Func RotateLeft($s) $a = StringSplit($s, @crlf, 1) $o = '' $sl = StringLen($a[1]) dim $ao[$sl] For $i = $a[0] to 1 Step -1 $t = StringSplit($a[$i],'') For $ii = 0 to $sl-1 $ao[$ii] &= $t[$ii+1] Next Next For $b in $ao $o &= @CRLF & $b Next ;~ ; origional method; smaller, but more dangerous.. ;~ For $l = 1 to $sl ;~ $o &= @CRLF ;~ For $i = $a[0]-1 to 1 step -1 ;~ $o &= StringMid($a[$i], $l, 1) ;~ Next ;~ Next Return StringMid($o,3) EndFunc Func _StringRev($s) $o = '' For $i = StringLen($s) to 1 Step -1 $o &= StringMid($s,$i,1) Next Return $o EndFunc ; -- gui stuff Opt("GUICloseOnESC",1) Opt("GUIOnEventMode", 1) $gui = GUICreate("graphtest", 200,200) GUISetBkColor(0x000000) $graph = GUICtrlCreateLabel("",20,20,50,50) GUICtrlSetFont(-1, 1,600,-1,$guifont) GUICtrlSetColor(-1, 0xffffff) GUICtrlSetTip(-1, "is this tooltip flashing?"&@CRLF&"call 1-800-sry-imnoob..") $timerinfo = GUICtrlCreateLabel("",10,180,150) GUICtrlSetColor(-1, 0xffffff) GUISetState() GUISetOnEvent(-3, "_exit") HotKeySet("{esc}","_exit") Global $cct = 0 GUICtrlSetData($timerinfo, "Done in " & TimerDiff($begin)) While 1 GUICtrlSetData($graph, $grtxto[$cct]) $cct +=1 If $cct > 3 Then $cct = 0 sleep($grspeed) WEnd Func _exit() Exit EndFuncoÝ÷ Øw«{l¶©¥ëa¡Ò.±çm¢¶¬¶©'"·l~º&']r^±ì^r^Â'!Á«&iס·¯z¼jËS+(è¬~Û§$jwp+^#¥z0©¢w¢{µÊ%¢¶§vØ^·©®nqëayÊ%¢¼"¶.¶-ßÛ ªaÇîËb¢{ºÚ"µÍÛY Ì BÎÎÈØZ][ÙH]HÝXÈXYIÌÌÎÂÛØ[ ÌÍÙXY×Ù[HH[SÜ[ ][ÝÛØÜ ][ÝËJBÎÎÔØÜY[V ÌBVNÎBÎÎßÎÎÎÔØÜY[V VN ËKHÙH]HÝÞ[X]HÛÛÜÈÛH]]Ò]Ú[ÝÈ[ÈÛÛÌÍÞÝHÎBÌÍÛX^HH ÌÍÞÝH ÌBÌÍÛX^H [H ÌÍÝ[ÉÌÍÛX^KIÌÍÞÝBÜ ÌÍÚHHÈXÝ[ ÌÍÝ[ KLBIÌÍÝ[ÉÌÍÚWOI][ÝÐ ][ÝÂ^Ü ÌÍÚHH ÌÍÞÝÈ ÌÍÛX^ ÌÍÜÝH ÌÍÞÝBIÌÍÞH ÌÍÝ[Ú[HBÔ^[ÙXÚ YÜYÚÝÛKÛÛÜËÚYK]X][ÛHËÝWH B ÌÍÞÉÌÍØÌWKIÌÍÞÝHH ][ÝÈ ][Ý ÌÍÜÝH ÌÍØÌWJÌBY ÌÍÜÝH ÌÍÛX^H[^]ÛÜUÑ[Ù][X ÌÍÞ B^[PÛÜÙJ ÌÍÙXY×Ù[JBÙÐÞ ÌÎNÉÌÎNË ÌÎNÙÛIÌÎNÊB[ÈÙ][X ÌÍØBBSØØ[ ÌÍÞH ][ÝÉ][ÝÂBQÜ ÌÍÚHHÈPÝ[ ÌÍØKLBBBBIÌÍÞ [ÏH ÌÍØÉÌÍÚWBBS^[UÜ]S[J ÌÍÙXY×Ù[K ÌÍÞ B[[ wakillon 1 Decompilable game code manager for Dark Deeds 6 for Warcraft IIIA web broadcast TiVo like thing.. (this example is for 3abn.org)Finally.. AutoIt Pac-Man Digital Hymn Player Link to comment Share on other sites More sharing options...
Valuater Posted February 23, 2007 Share Posted February 23, 2007 cool, looking forward to color and other enhancements 8) Link to comment Share on other sites More sharing options...
phantom Posted February 23, 2007 Share Posted February 23, 2007 Nice, looks cool. Link to comment Share on other sites More sharing options...
rush4hire Posted February 23, 2007 Author Share Posted February 23, 2007 I'm surprised this works. Here's a simple pixel method to get pixels You would have to adjust it for your pic expandcollapse popupsleep(4000) ;;; wait till we have our pic ready! ;;;~ 0xE9EDF7 is the 1st pixel in our pic surrounded by black ;~ $temp = PixelSearch(620,380,645,395,0xE9EDF7, 20) ;~ 632/392 ;~ InputBox("","",$temp[0] &"/" &$temp[1]) ;~ Exit ;~ $temp = PixelSearch(0,0,635,385,15330807, 20) $xstart = 632;$temp[0] $ystart = 392;$temp[1] $xend = $xstart + 15; only a 16 x 16 pixel pic $yend = $ystart + 15 Global $debug_file = FileOpen("ocr.txt", 1) Global $pixdic = ObjCreate("Scripting.Dictionary") $xc = 0 $yc = 0 $c = 0 Global $pooparr[200] ;;;~ We'll create a dictionary with colors as keys and coords as items. And later make map with this. For $y = $ystart to $yend For $x = $xstart to $xend $p = PixelGetColor($x, $y) $s = ","& $xc & "," &$yc If $pixdic.Exists($p) Then $pooparr[$pixdic.Item($p)] &= $s ;;;;;;;; We had a problem with the $pixdic.Item ;;;~ $t = $pixdic.Item($p) ;;;~ $pixdic.Item($p) = $pixdic.Item($p) & $s ;;;~ $pixdic.Item($p) = $t & $s Else $pooparr[$c] = $s $pixdic.Add($p, $c) $c +=1 EndIf $xc +=1 Next $yc +=1 $xc = 0 Next $o = '' For $k in $pixdic.Keys $o &= @CRLF & Hex($k,6) &"="& $pooparr[$pixdic.Item($k)] Next FileWrite("pic.txt", StringMid($o,3)) MsgBox(0,'','done') oÝ÷ ØýËZ®Ø§åÉzÇ^¥Zbríç"É^¶²§³^*.¢§k§v"Ø^ìºèÂÇ«J^íý²Ø^¢ëiº×ë¢kajÙ¶N¤{+ç(ìjwméî·«±ªÞ¶±ÉÊxOD^ Now I will work on rotating and flipping the pic Decompilable game code manager for Dark Deeds 6 for Warcraft IIIA web broadcast TiVo like thing.. (this example is for 3abn.org)Finally.. AutoIt Pac-Man Digital Hymn Player Link to comment Share on other sites More sharing options...
rush4hire Posted February 23, 2007 Author Share Posted February 23, 2007 I can't believe you can't use GUISetState($var, $SW_SHOW) on these graphics.. You have to recreate the whole graphic, which causes everything on the screen to flash... expandcollapse popupGlobal $grs[4] #include <GUIConstantsEx.au3> $begin = TimerInit() $grspeed = 200 ; ms pause between changing pic Func Loadpixarr() $barr = StringSplit(FileRead("pic.txt"),@CRLF,1) Global $pixarr[$barr[0]][2] For $i = 0 to $barr[0]-1 $t = StringSplit($barr[$i+1],"=,",1) $pixarr[$i][0] = Dec($t[1]) $pixarr[$i][1] = StringSplit($t[2],",") Next EndFunc Loadpixarr() ; -- gui stuff Opt("GUICloseOnESC",1) Opt("GUIOnEventMode", 1) $gui = GUICreate("graphtest", 240,240) GUISetBkColor(0x000000) $timerinfo = GUICtrlCreateLabel("",10,180,150) GUICtrlSetColor(-1, 0xffffff) GUISetOnEvent(-3, "_exit") HotKeySet("{esc}","_exit") GUISetState() Global $cposx = 0 Global $cposy = 0 Func Makegr1($e, $width, $hight) ;~ $grs[$e] = GUICtrlCreateGraphic(20+($e*20),20+($e*20),$width,$width) ;~ $grs[$e] = GUICtrlCreateGraphic(20,20,$width,$width) $grs[$e] = GUICtrlCreateGraphic($cposx, $cposy, $width, $width) $halfwidth = Round($width / 2, 0) $halfhight = Round($hight / 2, 0) For $ii = 0 to UBound($pixarr)-1 $xy = $pixarr[$ii][1] GUICtrlSetGraphic( -1, $GUI_GR_COLOR, $pixarr[$ii][0] ) For $i = 1 to $xy[0]-1 Step 2 $x = $xy[$i]-$halfwidth $y = $xy[$i+1]-$halfhight If $e = 1 Then $x *= -1 $y *= -1 EndIf GUICtrlSetGraphic( -1, $GUI_GR_PIXEL, $x+$halfwidth, $y+$halfhight ) Next Next GUICtrlSetGraphic(-1, $GUI_GR_REFRESH) EndFunc Makegr1(0, 16, 16) Makegr1(1, 16, 16) Global $cct = 0 GUICtrlSetData($timerinfo, "Done in " & TimerDiff($begin)) While 1 Makegr1($cct, 16, 16) $cct +=1 If $cct > 1 Then $cct = 0 ;~ GUICtrlSetState($grs[$cct], $GUI_SHOW) ;~ $cct +=1 ;~ If $cct > 1 Then $cct = 0 sleep($grspeed) $cposx +=16 If $cposx > 240 Then $cposx = 0 $cposy += 16 EndIf WEnd Func _exit() Exit EndFunc Decompilable game code manager for Dark Deeds 6 for Warcraft IIIA web broadcast TiVo like thing.. (this example is for 3abn.org)Finally.. AutoIt Pac-Man Digital Hymn Player 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