Infinito [yuotube - hacking - informatica - grafica - programmazione -netlog - contest - msn - hentay - autoit source - yuoporn]

Richiesta aiuto

« Older   Newer »
  Share  
Goku Metal
view post Posted on 22/2/2008, 14:12




Mi sapreste dire con quale programma posso creare minigiochi per pc e magari anche farmi una guida dell'utilizzo di quel programma che mi avete detto?
Vi ringrazio in anticipo per la risposta
 
Top
¤Uriel¤
view post Posted on 22/2/2008, 14:22




Puoi usare qualsiasi linguaggio C / C++ java
Anke con autoit puoi fare qualcosa...
 
Top
Goku Metal
view post Posted on 22/2/2008, 16:34




Scusa se ti rompo ma mi potresti fare una guida di come sviluppare il mini gioco o linkarmi una pagina web di come sviluppare il gioco?
Grazie
 
Top
¤Uriel¤
view post Posted on 22/2/2008, 16:49




Spiacente, non so fare giochi.
Ma non puoi sviluppare un gioco cosi', devi conoscere benissimo il linguaggio in cui lo sviluppi...
 
Top
Alienx89
view post Posted on 22/2/2008, 17:27




allora....

per fare giochi bisogna conoscere linguaggi di programmazione

e giochi sono fatti in c/c++ per quanto riguarda quelli dei pc
e non č facile dato che bisogna usare motori grafici e robe cosi che non so neanche io... all universita penso si veda qualcosa

oppure java per quelli per i cellulari ma anche li non č facile

io potrei essere in grado di fare giochi tipo scacchi battaglia navale in c#
ma con grafica di base....e fai conto che programmo da mesi in c#

...inizia a studiare i linguaggi di programmazione... comprati un bel libro sul c e inizia...


se vuoi fare giochini ci sn programmi che permettono di crearli tipo

rpg maker mi pare si chiama puoi fare giochini 2d di ruoolo...
 
Top
Goku Metal
view post Posted on 22/2/2008, 18:29




ok
Grazie a tutti
Mi siete stati di grande aiuto anche se non mi avete fatto una guida ma mia avete detto bene o male come devo fare per creare in c++ e le conoscenze che devo avere
Grazie
 
Top
¤Uriel¤
view post Posted on 22/2/2008, 18:40




Io ho trovato un PacMan in autoit xD
 
Top
Alienx89
view post Posted on 22/2/2008, 19:39




passamelo!
 
Top
Goku Metal
view post Posted on 22/2/2008, 20:14




Ma č per pc PacMan?
 
Top
¤Uriel¤
view post Posted on 22/2/2008, 20:51




Ovviamente non č mio č di I.Ren
SPOILER (click to view)
;by I.Ren
;
;Visit: hacking.2.0.forumcommunity.net
Global $LEVEL_DEMO_MODE = False
Global $CURRENTSPEED = 40
Global $ANIMODE = False
;~ Global $ANIMODE = True

;TODO
;fix fruit behavior
;fix graphic laggg
;fix occasional ghost leaving the screen
;find a better way for ghosts to chase pacman (can be complex)
;Opening page / scene and intermission cinimatics
;high score system
;one of those right click menus
;
;~ #include "pacman_vars.au3"
;~ #include "pacman_actions.au3"

HotKeySet("{ESC}","_exit")
HotKeySet("{UP}","moveup")
HotKeySet("{RIGHT}","moveright")
HotKeySet("{DOWN}","movedown")
HotKeySet("{LEFT}","moveleft")
HotKeySet("{SPACE}","pause")
Opt("GUICloseOnESC",1)
Opt("GUIOnEventMode", 1)
TrayTip("Autoit packman - Commands","Up,down,left,right arrow to move" & @crlf & 'Space to pause' & @crlf & 'Esc to exit',0)

;~ If Not FileExists("sounds\") Then DirCreate("sounds\")
;~ FileInstall("C:\p\sounds\extrapac.wav", "sounds\extrapac.wav")
;~ FileInstall("C:\p\sounds\fruiteat.wav", "sounds\fruiteat.wav")
;~ FileInstall("C:\p\sounds\pacchomp.wav", "sounds\pacchomp.wav")
;~ FileInstall("C:\p\sounds\killed.wav", "sounds\killed.wav")
;~ FileInstall("C:\p\sounds\interm.wav", "sounds\interm.wav")
;~ FileInstall("C:\p\sounds\GHOSTEATEN.wav", "sounds\GHOSTEATEN.wav")
;~ FileInstall("C:\p\sounds\GAMEBEGINNING.wav", "sounds\GAMEBEGINNING.wav")
;~ FileInstall("C:\p\sounds\loop_0-400.wav", "sounds\loop_0-400.wav")
;~ FileInstall("C:\p\sounds\loop_0-400b.wav", "sounds\loop_0-400b.wav")
;~ FileInstall("C:\p\sounds\loop_0-400c.wav", "sounds\loop_0-400c.wav")
;~ FileInstall("C:\p\sounds\loop_1-760.wav", "sounds\loop_1-760.wav")
;~ FileInstall("C:\p\sounds\loop_2-760.wav", "sounds\loop_2-760.wav")

;If Not FileExists()

Global Const $GUI_EVENT_CLOSE = -3
Global Const $GUI_EVENT_MINIMIZE = -4
Global Const $GUI_EVENT_RESTORE = -5
Global Const $GUI_EVENT_MAXIMIZE = -6
Global Const $GUI_EVENT_PRIMARYDOWN = -7
Global Const $GUI_EVENT_PRIMARYUP = -8
Global Const $GUI_EVENT_SECONDARYDOWN = -9
Global Const $GUI_EVENT_SECONDARYUP = -10
Global Const $GUI_EVENT_MOUSEMOVE = -11
Global Const $GUI_EVENT_RESIZED = -12
Global Const $GUI_EVENT_DROPPED = -13

Global Const $GUI_SHOW = 16
Global Const $GUI_HIDE = 32
Global Const $GUI_ENABLE = 64
Global Const $GUI_DISABLE = 128
Global Const $GUI_FOCUS = 256
Global Const $GUI_DEFBUTTON = 512

;;;;;;;;;;graphics
Global Const $GUI_GR_CLOSE = 1
Global Const $GUI_GR_LINE = 2
Global Const $GUI_GR_BEZIER = 4
Global Const $GUI_GR_MOVE = 6
Global Const $GUI_GR_COLOR = 8
Global Const $GUI_GR_RECT = 10
Global Const $GUI_GR_ELLIPSE = 12
Global Const $GUI_GR_PIE = 14
Global Const $GUI_GR_DOT = 16
Global Const $GUI_GR_PIXEL = 18
Global Const $GUI_GR_HINT = 20
Global Const $GUI_GR_REFRESH = 22
Global Const $GUI_GR_PENSIZE = 24
Global Const $GUI_GR_NOBKCOLOR = -2

Global Const $guiname = "Pacman in AutoIt"
If WinExists($guiname) Then
WinActivate($guiname)
Exit
EndIf
Global Const $BLINKY = 0
Global Const $PINKY = 1
Global Const $INKEY = 2
Global Const $CLYDE = 3

;; 0=x, 1=y, 2=state[ 0=dead, 1=blue, 2=normal, 3=chasing], 3=following a predefined path
;3 bodyid
;; default, copy, bodies
Global $Ghosts[4][2] = [ [116,120], [116,144], [100,144], [132,144] ]
Global $Ghostb[4][3][6]; 64 ghost bodies. bleh
Global $GISDEAD[4]=[0,0,0,0]
Global $GDIR[4] =[4,3,1,1]
Global $GISBLUE[4]=[0,0,0,0]
Global $GMODEL[4] =[0,0,0,0]
Global $GSTART[4] =[0,1,9,17]
Global $GCHASE[4] =[0,0,0,0]
Global $GCHASETIRED[4] = [0,0,0,0]

Global $GSTARTTIME = 1; time for ghosts to move in the ghost-house
Global $GHOSTSEATEN = 0
Global $WHITETIME = 0

Global $GBOTTOM = 0; toggle bottom crap
Global $GB = 0
Global $GVELS[5][2] = [ [0,0], [0,-1], [1,0], [0,1], [-1,0] ]; -- velocities

Global $eyearr[5] = [fastarr(0,0,4,4,0), fastarr(2,1,3,1,0), fastarr(3,3,5,5,0), fastarr(2,4,3,7,0), fastarr(1,3,1,5,0)]
Global $bottomarr[3] = [StringSplit("2,6,7,11,1,2,3,6,7,10,11,12",","),StringSplit("4,9,0,3,4,5,8,9,10,13",","),StringSplit("2,3,6,7,10,11,1,4,5,8,9,12",",")]
Global $CORNERX = fastarr(1,1,1,1,1)
Global $CORNERL[5] = ['',fastarr(1,0,1,1,0),fastarr(1,0,0,1,1),fastarr(1,1,0,0,1),fastarr(1,1,1,0,0)]
Global $CORNERT[5] = ['',fastarr(1,1,1,0,1),fastarr(1,1,1,1,0),fastarr(1,0,1,1,1),fastarr(1,1,0,1,1)]
Global $VELS[5] = [fastarr2(0,0), fastarr2(0,-1), fastarr2(1,0), fastarr2(0,1), fastarr2(-1,0)]
Global $DEFMOVES[5] = ['',fastarr(1,1,0,1,0),fastarr(1,0,1,0,1),fastarr(1,1,0,1,0),fastarr(1,0,1,0,1)]


Global $SCORE = 0
Global $SCORETOX = 10000
Global $GUYS = 2
Global $LEVEL = 1
Global $READYMSG

Global $FRUITPOS[2] = [116,168]
Global $FRUITID
Global $FRUITID2
Global $FRUITTIME = TimerInit()
Global $FRUITHOWMANY
Global $FRUITHAVE = False
Global $FRUITCURRENT = 0
Global $FRUITPOINTS[14] = [0,100,300,500,500,700,700,1000,1000,2000,2000,3000,3000,5000]

Global $GUIGUYS = 0

;;; 4 tragectories
;~ Global $trag[4][2] = [[0,-1],[1,0],[0,1],[-1,-1]]


Global $sounddll = DllOpen("winmm.dll")
Global $openchomp = "pacchomp.wav"

Global $dotdic1 = ObjCreate("Scripting.Dictionary")
Global $dotdic = ObjCreate("Scripting.Dictionary")
Global $dirdic = ObjCreate("Scripting.Dictionary")
Global $delayitems = ObjCreate("Scripting.Dictionary")
Global $delaytime = 5

Global $pac_set_arr = ''
Global $PACMOUTH = 0
Global $PACMOUTHC = 0
Global $PACBODY[5] = [0,135,45,315,225]
Global $PACNEXTMOVE = 4
Global $PACNOWMOVE = 4
Global $ONDOT = False
Global $PACMOVES[5] = [1,0,1,0,1]
Global $PACTRAG = $VELS[4]
Global $PACPOS[2] = [116,216]
Global $pacg[2]
Global $PACID

Global $loopfiles[5][2] = [ [17, "loop0_800.wav"], [17, "loop3_800.wav"], [17, "loop4_800.wav"], [37, "loop1_1670.wav"], [22, "loop2_1000.wav"] ]
Global $loopfile = 0
Global $defloopfile = 0
Global $loopc = $loopfiles[$loopfile][0]

;;MISC
Global $SOUNDTIMER; to keep chomp sounds from playing too fast
Global $ISPAUSED = False

Func fastarr($a,$b,$c,$d,$e)
Local $temp[5]=[$a,$b,$c,$d,$e]; array functionality must be the biggest challenge when making a new language.
Return $temp
EndFunc
Func fastarr2($a,$b)
Local $temp[2]=[$a,$b]
Return $temp
EndFunc

;GHOSTS
;ISCHASING- is chasing pacman. then 75 % chance to follow
;STATE - dead, blue, normal
; model - up down, left , right
Func game_initialize()
DllCall($sounddll, "int", "mciSendStringA", "str", "open " & FileGetShortName("sounds\pacchomp.wav") & " alias "& $openchomp, "str", "", "int", 65534, "hwnd", 0)
For $i = 0 to 4
DllCall($sounddll, "int", "mciSendStringA", "str", "open " & FileGetShortName("sounds\"& $loopfiles[$i][1] ) & " alias "& $loopfiles[$i][1], "str", "", "int", 65534, "hwnd", 0)
Next

Global $gui = GUICreate ( $guiname, 234, 300, -1, -1, 0x80000000+0x00800000 )
GUISetBkColor(0x000000)
GUISetFont (9, 700, -1, "Courier")
GUICtrlCreateLabel ("Score", 8, 4)
GUICtrlSetColor(-1, 0xF0F0F0)
Global $guiscore = GUICtrlCreateLabel("0",66,4,80,12)
GUICtrlSetColor(-1,0xffffff)
GUISetOnEvent( $GUI_EVENT_PRIMARYDOWN, "DragWindow" )
If $ANIMODE Then GUISetState()
makeoutline()
makeghosts()
makedots()
makefruit()
fixguys()
$READYMSG = GUICtrlCreateGraphic (93, 165, 46, 7)
GUICtrlSetGraphic(-1, 8,0xffff00)
Local $moves[2] = [6,2]
$yel = 1
$arr = StringSplit("5363335422243,2322262122222322243,23222523212322222331,223252232123234422,54257123242513,2133252321222529,2232612321562414",",")
$y = 0
$x = 1
GUICtrlSetGraphic (-1, 6, $x, $y)
for $ii = 1 to $arr[0]
$b = StringSplit($arr[$ii],"")
GUICtrlSetGraphic (-1, 6, $x, $y)
$yel = 1
For $i = 1 to $b[0]
$x += $b[$i]
GUICtrlSetGraphic (-1, $moves[$yel], $x, $y)
$yel = Not $yel
Next
$x = 0
$y += 1
Next

If Not $ANIMODE Then GUISetState()
; if @error!!!!!!!!!!!!!!!!!!!!
new_round(1)
IF $LEVEL_DEMO_MODE Then adddelay("endroundaction",4)
;~ endroundaction()

EndFunc
game_initialize()
Func repositionghosts()
Local $cGhosts[4][2] = [ [116,120], [116,144], [100,144], [132,144] ]
Local $cGDIR[4] = [4,3,1,1]
Local $cGSTART[4] =[0,1,9,17]
For $g = $BLINKY to $CLYDE
$Ghosts[$g][0] = $cGhosts[$g][0]
$Ghosts[$g][1] = $cGhosts[$g][1]
$GDIR[$g] = $cGDIR[$g]
$GSTART[$g] =$cGSTART[$g]
$GISDEAD[$G] = 0
$GISBLUE[$G] = 0
$GCHASE[$G] = 0
$GMODEL[$G] = $ghostb[$G][0][$GDIR[$G]]
GUICtrlSetPos( $GMODEL[$G], $Ghosts[$G][0]-7, $Ghosts[$G][1]-8)
Next
$GSTARTTIME = 1; time for ghosts to move in the ghost-house
$GHOSTSEATEN = 0
$WHITETIME = 0
EndFunc


Func new_round($ROUNDCHANGE)
If $ROUNDCHANGE Then
If $LEVEL > 1 Then reloaddots()
makefruit()
Else
ctrlhide($FRUITID)
adddelay("checkfruit", 40)
EndIf
changeloop(0)
repositionghosts()
$PACPOS[0] = 116
$PACPOS[1] = 216
$PACNEXTMOVE = 4
$PACNOWMOVE = 4
$PACMOUTH = 0
GUICtrlSetPos ( $PACBODY[0], 116-7, 216-7 )
$ONDOT = False
GUICtrlSetPos($READYMSG, 93, 165 )
If $LEVEL == 1 And $ROUNDCHANGE Then SoundPlay("sounds\GAMEBEGINNING.wav",1)
sleep(500); temp
ctrlhide($READYMSG)
EndFunc

;~ I guess we'll just make everything in this one function
Func makeoutline()
;; we have to make all ghosts and eyes and positions of pacman and hide them
Local $grarr[14]
$grarr[0] = "0,24,224,5,0-0,266,224,5,1;6,4,0;2,220,0;6,5,3;2,107,3;6,117,3;2,219,3;18,2,1;18,3,1;18,1,2;18,1,3;18,0,4;18,4,4;18,107,4;18,116,4;18,219,4;18,223,4;18,220,1;18,221,1;18,222,2;18,222,3"
$grarr[1] = "0,29,4,70,0-219,29,4,70,2;6,0,0;2,0,70;6,3,0;2,3,70"
$grarr[2] = "0,99,44,33,0-0,147,44,33,1-179,99,44,33,2-179,147,44,33,3;"& _
"6,5,1;2,42,1;6,4,4;2,40,4;6,40,5;2,40,29;6,43,3;2,43,31;6,0,29;2,40,29;6,0,32;2,42,32;"& _
"18,0,0;18,4,0;18,1,1;18,1,2;18,2,3;18,3,3;18,42,2;18,42,31"
$grarr[3] = "108,29,10,30,0;6,0,0;2,0,28;2,2,30;2,5,30;2,7,28;2,7,-1"
$grarr[4] = "0,181,20,86,0-203,181,20,86,2;6,0,0;2,0,86;6,3,0;2,3,37;2,5,39;2,17,39;2,19,41;2,19,44;2,17,46;2,5,46;2,3,48;2,3,86"
$grarr[5] = "60,76,31,55,0-132,76,31,55,2;"& _
"6,0,2;2,2,0;2,5,0;2,7,2;2,7,22;2,9,24;2,29,24;2,31,26;2,31,29;2,29,31;2,9,31;2,7,33;2,7,53;2,5,55;2,2,55;2,0,53;2,0,2"
$grarr[6] = "84,76,55,31,0-84,172,55,31,0-84,220,55,31,0;6,0,2;2,2,0;2,53,0;2,55,2;2,55,5;2,53,7;2,33,7;2,31,9;2,31,29;2,29,31;2,26,31;2,24,29;2,24,9;2,22,7;2,2,7;2,0,5;2,0,2"
$grarr[7] = "20,220,71,31,0-132,220,71,31,2;6,0,29;2,0,26;2,2,24;2,38,24;2,40,22;2,40,2;2,42,0;2,45,0;2,47,2;2,47,22;2,49,24;2,69,24;2,71,26;2,71,29;2,69,31;2,2,31;2,0,29"
$grarr[8] = "20,196,23,31,0-180,196,23,31,2;6,0,2;2,2,0;2,21,0;2,23,2;2,23,29;2,21,31;2,18,31;2,16,29;2,16,9;2,14,7;2,2,7;2,0,5;2,0,2"
$grarr[9] = "20,44,23,15,0-180,44,23,15,0;6,0,2;2,2,0;2,21,0;2,23,2;2,23,13;2,21,15;2,2,15;2,0,13;2,0,2"
$grarr[10] = "60,44,31,15,0-132,44,31,15,0;6,0,2;2,2,0;2,29,0;2,31,2;2,31,13;2,29,15;2,2,15;2,0,13;2,0,2"
$grarr[11] = "20,76,23,7,0-180,76,23,7,0;6,0,2;2,2,0;2,21,0;2,23,2;2,23,5;2,21,7;2,2,7;2,0,5;2,0,2"
$grarr[12] = "60,148,7,31,0-156,148,7,31,0-60,196,31,7,4-132,196,31,7,4;6,0,2;2,2,0;2,5,0;2,7,2;2,7,29;2,5,31;2,2,31;2,0,29;2,0,2"
$grarr[13] = "84,124,28,31,0-111,124,28,31,2;6,28,31;2,0,31;2,0,0;2,19,0;2,19,3;2,3,3;2,3,28;2,28,28"
For $arr in $grarr
$arr = StringSplit($arr,';')
$places = StringSplit( $arr[1], '-' )
$skip = True
For $p in $places
If $skip Then
$skip = False
ContinueLoop
EndIf
$x = StringSplit($p, ',')
$x[1] += 4
$x[2] += 5; Want the locations of the dots to be divisible by 8 for simplicity.
$hw = $x[3] / 2
$hh = $x[4] / 2
$gr = GUICtrlCreateGraphic ( $x[1],$x[2],$x[3],$x[4] )
$way = $x[5]
GUICtrlSetGraphic ( $gr, $GUI_GR_COLOR, 0x2121DE )
for $i = 2 to $arr[0]
$x = StringSplit( $arr[$i], ',' )
Switch $way
Case "0"; we can flip these upside down, over, and both - to reduce redundancy...
Case "1"
$x[3] = (($x[3] - $hh) * -1) + $hh; upside down
Case "2"
$x[2] = (($x[2] - $hw) * -1) + $hw; over
Case "3"
$x[3] = (($x[3] - $hh) * -1) + $hh; both
$x[2] = (($x[2] - $hw) * -1) + $hw
Case "4"
$t = $x[2]; NEW!! rotate 90 degrees
$x[2] = $x[3]
$x[3] = $t
EndSwitch
GUICtrlSetGraphic($gr, $x[1], $x[2], $x[3])
If $ANIMODE Then
GUICtrlSetGraphic(-1,$GUI_GR_REFRESH)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
sleep(1)
EndIf
Next
;~ GUICtrlSetGraphic(-1,$GUI_GR_CLOSE)
;~ GUICtrlSetGraphic(-1,$GUI_GR_REFRESH)
Next
Next
;;;;;patch
GUICtrlCreateGraphic( 111, 271, 9, 2 )
GUICtrlSetGraphic ( -1, $GUI_GR_COLOR, 0x000000 )
GUICtrlSetGraphic ( -1, 18, 0,1 )
GUICtrlSetGraphic ( -1, 18, 9,1 )
GUICtrlSetGraphic ( -1, 6, 0,2 )
GUICtrlSetGraphic ( -1, $GUI_GR_COLOR, 0x2121DE )
GUICtrlSetGraphic ( -1, 2, 10,2 )
GUICtrlCreateGraphic( 108,130,16,2 )
GUICtrlSetBkColor(-1,0xFFB8DE)
$carr = StringSplit("16,40;l1;56,40;t3;104,40;l2;128,40;l1;176,40;t3;216,40;l2;" & _
"16,72;t2;56,72;x;80,72;t3;104,72;t1;128,72;t1;152,72;t3;176,72;x;216,72;t4;" & _
"16,96;l4;56,96;t4;80,96;l4;104,96;l2;128,96;l1;152,96;l3;176,96;t2;216,96;l3;" & _
"80,120;l1;104,120;t1;128,120;t1;152,120;l2;" & _
"56,144;x;80,144;t4;152,144;t2;176,144;x;" & _
"80,168;t2;152,168;t4;" & _
"16,192;l1;56,192;x;80,192;t1;104,192;l2;128,192;l1;152,192;t1;176,192;x;216,192;l2;" & _
"16,216;l4;32,216;l2;56,216;t2;80,216;t3;104,216;t1;128,216;t1;152,216;t3;176,216;t4;200,216;l1;216,216;l3;" & _
"16,240;l1;32,240;t1;56,240;l3;80,240;l4;104,240;l2;128,240;l1;152,240;l3;176,240;l4;200,240;t1;216,240;l2;" & _
"16,264;l4;104,264;t1;128,264;t1;216,264;l3;", ";" )
With $dirdic
For $i = 1 to $carr[0]-1 step 2
.Add ( $carr[$i], CornerTypes ( $carr[$i+1] ) )
Next
EndWith
; make pacman models
For $i = 0 to 4
If $i Then
$t = $PACBODY[$i]
$PACBODY[$i] = GUICtrlCreateGraphic(0,-50, 14, 14)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0, 0xffff00)
GUICtrlSetGraphic(-1,$GUI_GR_PIE, 7,7, 7, $t, 270)
Else
;~ $PACBODY[$i] = GUICtrlCreateGraphic(116,216,0,0)
$PACBODY[$i] = GUICtrlCreateGraphic( $PACPOS[0]-7, $PACPOS[1]-7, 14, 14 )
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0,0xffff00)
GUICtrlSetGraphic(-1,$GUI_GR_PIE, 7,7, 7, 0, 360)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0xffff00,0xffff00)
GUICtrlSetGraphic(-1,$GUI_GR_DOT,7,7)
GUICtrlSetGraphic(-1,$GUI_GR_DOT,9,7)
GUICtrlSetGraphic(-1,$GUI_GR_DOT,12,7)
$PACID = $PACBODY[$i]
EndIf
Next
Global $deadpacs[8]
$st = 120
$sw = 300
For $i = 0 to 7
$deadpacs[$i] = GUICtrlCreateGraphic(0,-50, 14, 14)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0xffff00, 0xffff00)
GUICtrlSetGraphic(-1,$GUI_GR_PIE, 7,7, 6, $st, $sw)
$st +=20
$sw -=40
Next
;~ GUICtrlCreateLabel("Lives",10,284,30,15)
EndFunc
Func CornerTypes($str)
$t = stringsplit($str,"")
Switch $t[1]
Case "x"
Return $CORNERX
Case "l"
Return $CORNERL[$t[2]]
Case "t"
Return $CORNERT[$t[2]]
EndSwitch
EndFunc
Func makedots()
$posarr = StringSplit("1,0,12,14|3,0,1,5,6,11,12,14,15,20,21,25|1,0|2,0,1,5,6,8,9,17,18,20,21,25|"& _
"1,0,6,8,12,14,18,20|11,5,6,20,21|1,0,12,14|2,0,1,5,6,11,12,14,15,20,21,25|1,0,3,5,12,14,21,23|"& _
"2,2,3,5,6,8,9,17,18,20,21,23,24|1,0,6,8,12,14,18,20|2,0,1,11,12,14,15,25|1,0","|")
Local $a[8] = [0,0,0,1,-1,1,-1,0]
;16,56; -> location of pows
;16,216
;216,56
;216,216
; 26 / 29
$x = 16
$y = 40
For $pi = 1 to $posarr[0]
$pa = StringSplit( $posarr[$pi], "," )
For $yi = 1 to $pa[1]
$xstart = 2
$hasdot = False
$x = 16
For $xi = 0 to 25
If $xi = $pa[$xstart] Then
$hasdot = Not $hasdot
If $xstart < $pa[0] Then $xstart += 1
EndIf
If $hasdot Then
$id = GUICtrlCreateGraphic($x,$y,0,0)
;~ If $pi == 1 and $xi == 0 Then $FIRSTDOTID = $id
$dotdic1.Add($x &","& $y, $id)
GUICtrlSetGraphic ( $id, $GUI_GR_COLOR, 0xFFFFFF )
If ispower($x, $y) Then
GUICtrlSetGraphic ( $id, $GUI_GR_PENSIZE, 6 )
GUICtrlSetGraphic ( $id, $GUI_GR_COLOR, 0xFFFFFF )
GUICtrlSetGraphic ( $id, 6, -1,0 )
GUICtrlSetGraphic ( $id, 2, -1,0 )
Else
for $j = 0 to 6 step 2
GUICtrlSetGraphic ( $id, 18, $a[$j],$a[$j+1] )
Next
EndIf
If $ANIMODE Then
GUICtrlSetGraphic ( $id, $GUI_GR_REFRESH )
sleep(1)
EndIf
EndIf
$x += 8
Next
$y += 8
Next
Next
copydotdics()
;~ SoundPlay("sounds\GAMEBEGINNING.wav")

EndFunc
Func makeghosts()
Local $colors[4] = [ 0xFF0000, 0xFFB8DE, 0x00FFDE, 0xFFB847 ]
Local $blues[4] = [ 0x3333CC, 0xFFFFFF, 0xFFEEEE, 0xFF0000 ]
For $ghost = $BLINKY to $CLYDE
;;; 4 ghosts
For $i = 1 to 4; 4 eye positions
$ids = makebody($colors[$ghost])
For $ii = 0 to 1 ; 2 bottom wiggly things..
$Ghostb[$ghost][$ii][$i] = $ids[$ii]
makeeyes( $ids[$ii], $i )
Next
$id = GUICtrlCreateGraphic(0, -50, 14, 14); make eyes w no body
makeeyes ($id, $i)
$Ghostb[$ghost][2][$i] = $id
Next
;blue edible ghosts. blue /
For $i = 0 to 1; - 2 shades
$ids = makebody( $blues[$i] )
For $ii = 0 to 1; 2 bottoms
makeeyes( $ids[$ii], 0, $blues[$i+2] )
$Ghostb[$ghost][$ii][$i*5] = $ids[$ii]
Next
Next
Next
EndFunc
Func makebody( $color )
Local $arr[2]
for $i = 0 to 1
$arr[$i] = GUICtrlCreateGraphic(0, -50, 14, 14)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, $color,$color)
GUICtrlSetGraphic(-1,$GUI_GR_ELLIPSE, 0,0, 14, 15)
GUICtrlSetGraphic(-1,$GUI_GR_RECT, 0,10, 14, 4)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0x000000, 0x000000)
GUICtrlSetGraphic(-1,18, 0, 5)
GUICtrlSetGraphic(-1,18, 13, 5)
GUICtrlSetGraphic(-1,$GUI_GR_RECT, 5, 14, 4, 1)
makebottom($arr[$i], $i)
Next
Return $arr
EndFunc
Func makeeyes($id, $type, $color = 0x2121DE)
$a = $eyearr[$type]
If $type Then
$b = 6
GUICtrlSetGraphic($id, $GUI_GR_COLOR, 0xDEDEDE, 0xDEDEDE)
GUICtrlSetGraphic($id, $GUI_GR_ELLIPSE, $a[0], $a[1], 4, 5)
GUICtrlSetGraphic($id, $GUI_GR_ELLIPSE, $a[0]+$b, $a[1], 4, 5)
GUICtrlSetGraphic($id, $GUI_GR_COLOR, $color, $color)
Else
$b = 4
makebottom($id, 2, $color)
EndIf;0xFFCC99
GUICtrlSetGraphic($id,$GUI_GR_COLOR, $color, $color)
GUICtrlSetGraphic($id,$GUI_GR_ELLIPSE, $a[2], $a[3], 2, 2)
GUICtrlSetGraphic($id,$GUI_GR_ELLIPSE, $a[2]+$b, $a[3], 2, 2)
EndFunc
Func makebottom($id, $type, $color = 0x000000)
$a = $bottomarr[$type]
$y = Iif ($type == 2, 8, 12)
GUICtrlSetGraphic($id,$GUI_GR_COLOR, $color, $color)
For $i = 1 to $a[0]
If $a[$i] < 2 Then $y += 1
GUICtrlSetGraphic( $id, 18, $a[$i], $y)
Next
EndFunc;~ 0xFFB897
Func copydotdics()
$a = $dotdic1.keys
$b = $dotdic1.items
For $i = 0 to $dotdic1.count-1
$dotdic.add($a[$i], $b[$i])
Next
EndFunc
Func makefruit()
GUICtrlDelete($FRUITID)
$pos = 210
Switch $LEVEL
case 1
Local $carr[4] = [0x000000, 0xDE9747, 0xFF0000, 0xDEDEDE]
$arr = StringSplit("00120814061201110205110311020123110311032311220111042501211122022131220122112301223121012601012301213124010522312301062402","")
case 2
$pos -= 15
Local $carr[4] = [0x000000, 0x00FF00, 0xFF0000, 0xDEDEDE]
$arr = StringSplit("05310602133113030122152202251123312101213125212301233121312501283122010121312231240201290202223122312103032504052106","")
case 3,4
$pos -= 30
Local $carr[4] = [0x000000, 0x00FF00, 0xFFCC33, 0xCC9933]
$arr = StringSplit("071203053115010531011302022233230201243125012a2a2a2a012001012001032603","")
case 5,6
$pos -= 45
Local $carr[4] = [0x000000, 0x00FF00, 0xCC9933, 0xFFFFFF]
$arr = StringSplit("06210501130121011302152115011a1a1a193112193112011731120101100102180203120113","")
case 7,8
$pos -= 60
Local $carr[4] = [0x000000, 0xFFFF00, 0xFFFFFF, 0xFFFFFF]
$arr = StringSplit("001101091102001208140814071101130611011301051101140104110114020311011221120202110112211203152112040115", "")
case 9,10
$pos -= 75
Local $carr[4] = [0x000000, 0xFFFF00, 0xFF0000, 0x3333CC]
$arr = StringSplit("052106310323033101310225023101311122112111221131013114211431013217320101321101110111320202320111013203033101110131040511060511","")
case 11,12
$pos -= 90
Local $carr[4] = [0x000000, 0xFFFF00, 0x3333CC, 0xFFFFFF]
$arr = StringSplit("051205031202120302180202120115020211011602011201170101120117010110011201191201191a11253223110125322301","")
case Else
$pos -= 105
Local $carr[4] = [0x000000, 0xFFFF00, 0x3333CC, 0x3333CC]
$arr = StringSplit("0423050222032203022703022703022703041101110504110112040411011105041107041101110504110112040411011105051106","")
EndSwitch
Local $ids[2]
$ids[0] = GUICtrlCreateGraphic(0,-50, 12, 12)
$ids[1] = GUICtrlCreateGraphic($pos, 284, 12, 12)
;~ Cherries 100 1
;~ Strawberry 300 2
;~ Peach 500 3-4
;~ Apple 700 5-6
;~ Melon 1000 7-8
;~ Galaxian flagship 2000 9-10
;~ Bell 3000 11-12
;~ Key 5000 13 and up
;~ 1. Stage Cherry 100 pts.
;~ 2. Stage Strawberry 200 pts.
;~ 3. Stage Orange 500 pts.
;~ 4. Stage Orange 500 pts.
;~ 5. Stage Apple 700 pts.
;~ 6. Stage Apple 700 pts.
;~ 7. Stage Grape 1000 pts.
;~ 8. Stage Grape 1000 pts.
;~ 9. Stage Ice compot 2000 pts.
;~ 10. Stage Ice compot 2000 pts.
;~ 11. Stage Stewed fruit 3000 pts
;~ 12. Stage Stewed fruit 3000 pts.
;~ 13. Stage Key 5000 pts.
;cherry
;strawberry
;orange
;pear
;banana
For $idi = 0 to 1
$x = 0
$y = 0
For $ii = 1 to $arr[0]-1 Step 2
GUICtrlSetGraphic( $ids[$idi], 8, $carr[$arr[$ii]])
$times = $arr[$ii+1]
If $times == "0" Then
$times = "10"
ElseIf $times == "a" Then
$times = "12"
EndIf
For $i = 1 to $times
If $arr[$ii] Then GUICtrlSetGraphic( $ids[$idi], 18, $x, $y )
$x +=1
If $x >= 12 Then
$x = 0
$y += 1
ExitLoop
EndIf
Next
Next
Next
$FRUITID = $ids[0]
adddelay("checkfruit",10)
;;temp
GUICtrlSetGraphic( $ids[1], $GUI_GR_REFRESH )
$FRUITHAVE = True
EndFunc
Func fixguys()
If $GUIGUYS Then GUICtrlDelete($GUIGUYS)
$GUIGUYS = GUICtrlCreateGraphic(10,281,100,14)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0, 0xffff00)
$x = 5
For $i = 1 to $guys
GUICtrlSetGraphic(-1,$GUI_GR_PIE, $x,7, 7, 45, 270)
$x += 16
Next
GUICtrlSetGraphic(-1,$GUI_GR_REFRESH)
EndFunc
Func reloaddots();; after new level
copydotdics()
;~ With $dotdic
$a = $dotdic.keys
$b = $dotdic.Items
For $i = 0 to $dotdic.count - 1
$s = StringSplit($a[$i],",")
GUICtrlSetPos ( $b[$i], $s[1], $s[2] )
Next
;~ EndWith
EndFunc
Func ispower($x,$y)
Switch $x
Case 16,216
Switch $y
Case 56,216
Return 1
EndSwitch
EndSwitch

EndFunc
Func Iif($x,$y,$z)
If $x Then Return $y
Return $z
EndFunc


;;; @@@@@@ ACTIONS @@@@@@ ;;;
;;; @@@@@@ GHOSTS @@@@@@ :::


Func GhostStartActs()
;~ If Not $GSTARTTIME Then Return
;~ For $g =
EndFunc

Func gchangebody($g, $dir, $id, $x=0, $y=0)
$GDIR[$g] = $dir
ctrlhide($GMODEL[$g])
;~ If Not $id Then $id =
$GMODEL[$g] = $id
If $x Then
GUICtrlSetPos($id, $x-7, $y-7)
EndIf
EndFunc
Func gmovebody($g,$dir,$x,$y)
$GDIR[$g] = $dir
GUICtrlSetPos($GMODEL[$g], $x-7, $y-7)
EndFunc
Func fastadd($a)
Return $a[0]+$a[1]+$a[2]+$a[3]
EndFunc

Func getbody($g)
If $GISBLUE[$g] Then
$eyes = $WHITETIME*5
Else
$eyes = $GDIR[$g]
EndIf
Return $ghostb[$g][$GBOTTOM][$eyes]
EndFunc

Func moveghost($g)
$speed = Iif($GISBLUE[$g],2,4)
$x = $ghosts[$g][0] + $GVELS[$GDIR[$g]][0]*$speed
$y = $ghosts[$g][1] + $GVELS[$GDIR[$g]][1]*$speed
If $y == 144 Then
If $x > 234 Then
$x = -8
ElseIf $x < -10 Then
$x = 232
EndIf
EndIf
$ghosts[$g][0] = $x
$ghosts[$g][1] = $y
$xystr = $x &","& $y
$xdir = oppositedir($GDIR[$g])
$dir = 0
If $GISDEAD[$g] Then
If $GISBLUE[$g] Then $GISBLUE[$g] = 0
If $x == 116 Then
If $y == 120 Then
gchangebody($g, 3, $ghostb[$g][2][3], $x, $y)
ElseIf $y == 144 Then
;; time to revive ghost! CHOING!
gchangebody($g, 1, $ghostb[$g][$GBOTTOM][1], $x, $y)
$GISDEAD[$g] = 0
Else
GUICtrlSetPos($GMODEL[$g], $x-7, $y-7)
EndIf
ElseIf $dirdic.Exists($xystr) Then
$darr = $dirdic.Item($xystr)
$w = fastadd($darr)
Dim $dist, $closest
If $w Then
$dist = Abs($x - 116) + Abs( $y - 120)
$closest = 1000
EndIf
For $d = 1 to 4
If $darr[$d] And $d <> $xdir Then
If $w == 2 Then
$dir = $d
ExitLoop
Else
$temp = Abs(($x + $GVELS[$d][0])-116) + Abs(($y + $GVELS[$d][1])-120)
If $temp < $closest Then
$dir = $d
$closest = $temp ; problem solved .. but I think there's a better way..
EndIf
EndIf
EndIf
Next
If $GDIR[$g] == $dir Then
gmovebody($g,$dir,$x,$y)
Else
gchangebody($g, $dir, $Ghostb[$g][2][$dir], $x, $y)
EndIf
Else
GUICtrlSetPos($GMODEL[$g], $x-7, $y-7)
EndIf
return
ElseIf $dirdic.Exists($xystr) Then
$darr = $dirdic.Item($xystr)
If $GCHASE[$g] Then
$dir = $PACNOWMOVE
$GCHASETIRED[$g] =- 1
If Not $GCHASETIRED[$g] Then $GCHASE[$g] = 0
Else
$dir = Random(1,4,1)
EndIf
While Not $darr[$dir] Or $dir == $xdir
$dir += 1
If $dir > 4 Then $dir = 1
WEnd
ElseIf $x == 116 Then
If $y == 120 Then
If $GDIR[$g] == 1 Then $dir = Random(1,2,1)*2
EndIf
EndIf
If $GSTARTTIME Then
;~ MsgBox(0,0,0)
If $GSTART[$g] Then; he's still in the pen
If $x == 116 Then
If $y == 120 Then; he's out. let's go!
$dir = Random(1,2,1)*2
$GSTART[$g] = 0
Else
$dir = 1
EndIf
ElseIf $GSTART[$g] == 1 Then
If $y == 144 Then $dir = iif($g == 2, 2, 4)
ElseIf $y == 140 Then
$dir = 3
$GSTART[$g] -= 1; they have to hit their heads 8 or 16 times..
ElseIf $y == 148 Then
$dir = 1
Else
$dir = $GDIR[$g]
EndIf
EndIf
If Not $GSTART[$CLYDE] Then $GSTARTTIME = 0
EndIf
If Not $dir Then $dir = $GDIR[$g]
If $GB Then; we might not have to swap graphics, just move one
If $GISBLUE[$g] or $dir == $GDIR[$g] Then
gmovebody($g,$dir,$x,$y)
Else
gchangebody($g, $dir, getbody($g), $x, $y)
EndIf
Else
gchangebody($g, $dir, getbody($g), $x, $y)
EndIf
EndFunc


Func checkghosts()
For $g = $BLINKY to $CLYDE
If Not $GISDEAD[$g] Then
If $GISBLUE[$g] Then
If checkprox( fastarr2($ghosts[$g][0],$ghosts[$g][1]), $PACPOS, 8 ) Then
$GISDEAD[$g] = 1
If Not Mod($ghosts[$g][0] + $ghosts[$g][1], 4) Then $GISBLUE[$g] = 0
gchangebody($g, $GDIR[$g], $ghostb[$g][2][$GDIR[$g]], $ghosts[$g][0],$ghosts[$g][1] )
$GHOSTSEATEN += 1
addpoints( 100 * 2 ^ $GHOSTSEATEN, "sounds\GHOSTEATEN.wav" )
EndIf
Else
$garr = fastarr2($ghosts[$g][0],$ghosts[$g][1])
If checkprox($garr, $PACPOS, 22) Then
$GCHASE[$g] = 1
$GCHASETIRED[$g] = 10
If checkprox( $garr, $PACPOS, 8 ) Then deathaction()
EndIf
EndIf
EndIf
moveghost($g)
Next
EndFunc
Func checkprox($xy1, $xy2, $d)
If Abs($xy1[0] - $xy2[0]) < $d Then
If Abs($xy1[1] - $xy2[1]) < $d Then
Return 1
EndIf
EndIf
EndFunc


Func togwhite($e=10)
$e = Number($e)
If Not $e Then
$GHOSTEATTIME = 0
for $g = $BLINKY to $CLYDE
$GISBLUE[$g] = 0
Next
Return
EndIf
$WHITETIME = Not $WHITETIME
adddelay("togwhite," & $e-1 ,1)
EndFunc

Func poweraction()
$GHOSTEATTIME = 1
$GHOSTSEATEN = 0
For $g = $BLINKY To $CLYDE
If not $GISDEAD[$g] Then $GISBLUE[$g] = 1
Next
changeloop(3)
If $delayitems.exists("togwhite") Then $delayitems.Remove("togwhite")
adddelay("togwhite", 40 - Round($LEVEL * 1.5, 0) )
SoundPlay("sounds\GHOSTEATEN.wav")
$SOUNDTIMER = TimerInit()+1500000
EndFunc

;~ Global $loopfiles[5][2] = [ [10, "loop_0-400.wav"], [10, "loop_0-400b.wav"], [10, "loop_0-400c.wav"], [19, "loop_1-760.wav"], [19, "loop_2-760.wav"] ]
;~ Global $loopfile = 0
;~ Global $defloopfile = 0
;~ Global $loopc = $loopfiles[$loopfile][0]


Func changeloop($e)
DllCall($sounddll, "int", "mciSendStringA", "str", "stop "& $loopfiles[$loopfile][1], "str", "", "int", 65534, "hwnd", 0)
$loopfile = $e
$loopc = 1
EndFunc
Func playloop()
If $loopc > 0 Then
$loopc -= 1
Else
$loopc = $loopfiles[$loopfile][0]
DllCall($sounddll, "int", "mciSendStringA", "str", "seek "& $loopfiles[$loopfile][1]&" to start", "str", "", "int", 65534, "hwnd", 0)
DllCall($sounddll, "int", "mciSendStringA", "str", "play "& $loopfiles[$loopfile][1], "str", "", "int", 65534, "hwnd", 0)
EndIf
EndFunc



;;; @@@@@@@@@@@@@@@@@@@@ ;;;
;;; @@@@@ PACMAN @@@@@ ;;;
;;; @@@@@@@@@@@@@@@@@@@@ ;;;

Func extraguyaction()
$GUYS += 1
fixguys()
; add graphic for xtra guy
SoundPlay("sounds\extrapac.wav")
$SCORETOX += 20000
EndFunc

Func deathaction()
$GUYS -= 1
fixguys()
sleep(1000)
ctrlhide($PACID)
for $g = $BLINKY to $CLYDE
ctrlhide($GMODEL[$g])
Next
SoundPlay("sounds\killed.wav")
$x = $PACPOS[0]-7
$y = $PACPOS[1]-7
For $i = 0 to 7
GUICtrlSetPos($deadpacs[$i],$x,$y)
Sleep(60)
If not $i then sleep(70)
ctrlhide($deadpacs[$i])
Next
sleep(250)
new_round(0)
EndFunc

Func fruitaction()
If Not $FRUITHAVE Then Return
$FRUITHAVE = False
ctrlhide( $FRUITID )
addpoints($FRUITPOINTS[$LEVEL], "sounds\fruiteat.wav" )
adddelay("checkfruit",40)
$FRUITTIME = TimerInit()
;~ Global $FRUITPOS[2] = [116,168]
;~ Global $FRUITID
;~ Global $FRUITHOWMANY
;~ Global $FRUITHAVE = False
;~ Global $FRUITCURRENT = 0
;~ Global $FRUITPOINTS[13] = [100,300,500,500,700,700,1000,1000,2000,2000,3000,3000,5000]
;~ $delayitems.Add("checkfruit", 200)
EndFunc

;; this is where we check to see if we should place fruit or remove fruit
Func checkfruit()
If $FRUITHAVE Then
EndIf

$FRUITHAVE = True
GUICtrlSetPos($FRUITID, $FRUITPOS[0]-6, $FRUITPOS[1]-6)
adddelay("checkfruit",40)
EndFunc


;;; @@@@@@@@@@@@@@@@@@@@ ;;;
;;; @@@@@ GAMEPLAY @@@@@ ;;;
;;; @@@@@@@@@@@@@@@@@@@@ ;;;

Func endroundaction()
$dotdic.removeall
for $G = $BLINKY to $CLYDE
ctrlhide($GMODEL[$G])
Next
ctrlhide($PACID)
sleep(700)
;~ $pos = WinGetPos($guiname)
;~ $roundgui = GUICreate("autoit_pacman_round", 234, 300, $pos[1], $pos[0], 0x80000000, BitOr(0x00080000,0x00000040),$gui)
$roundgui = GUICreate("autoit_pacman_round", 234, 300, 0, -30, 0x80000000, BitOr(0x00080000,0x00000040),$gui)
GUISetFont (14, 700, -1, "Courier New")
GUISetBkColor(0x000000)
GUISetState()
$LEVEL += 1
For $i = 0 to 10
WinSetTrans("autoit_pacman_round", "", 255 - $i*15)
sleep(100)
Next
$x1 = -25
$x2 = 235
$l1 = GUICtrlCreateLabel("Round",$x1, 150 )
GUICtrlSetColor(-1, 0xffff00)
$l2 = GUICtrlCreateLabel($LEVEL&"!",$x2,150)
GUICtrlSetColor(-1, 0xffffff)
SoundPlay("sounds\interm.wav")
For $i = 0 to 7
$x1 += 12
$x2 -= 12
GUICtrlSetPos($l1, $x1, 150)
GUICtrlSetPos($l2, $x2, 150)
sleep (50)
Next
sleep(1000)
GUIDelete($roundgui)
new_round(1)
IF $LEVEL_DEMO_MODE Then adddelay("endroundaction",4)
EndFunc

Func addpoints($points, $soundfile = "")
$SCORE += $points
GUICtrlSetData($guiscore, $SCORE)
If $soundfile <> "" Then
ctrlhide($PACID)
$temp = GUICtrlCreateLabel($points, $PACPOS[0]-8, $PACPOS[1]-5,30,12,0x0200)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1,8,600,-1,"Comic Sans" )
$delayitems.Add( "ctrldel,"& $temp, 5)
SoundPlay($soundfile,1)
GUICtrlSetPos( $PACID, $PACPOS[0]-7, $PACPOS[1]-7)
EndIf
If $SCORE >= $SCORETOX Then extraguyaction()
EndFunc


Func CheckDots($x,$y)
If $x == 116 Then; fruit
If $y == 168 Then
fruitaction()
Return
EndIf
EndIf
If Not Mod($x,8) == 0 Then Return
If Not Mod($y,8) == 0 Then Return
If $y == 144 Then; tunnel
If $x == -8 Then
$PACPOS[0] = 232
ElseIf $x == 232 Then
$PACPOS[0] = -8
EndIf
EndIf
$xystr = $x &","& $y
If $dotdic.Exists($xystr) Then; dots
$id = $dotdic.item($xystr)
$dotdic.Remove($xystr)
GUICtrlSetPos($id,0,-50)
If ispower($x,$y) Then
poweraction()
addpoints(50)
Else
If TimerDiff( $SOUNDTIMER ) > 667 Then
DllCall($sounddll, "int", "mciSendStringA", "str", "seek "& $openchomp &" to start", "str", "", "int", 65534, "hwnd", 0)
DllCall($sounddll, "int", "mciSendStringA", "str", "play "& $openchomp, "str", "", "int", 65534, "hwnd", 0)
$SOUNDTIMER = TimerInit()
EndIf
addpoints(10)
EndIf
If not $dotdic.Count Then endroundaction()
EndIf
If $dirdic.Exists($xystr) Then
$tomove = False
$ONDOT = True
;~ $lastmoves = $PACMOVES
$PACMOVES = $dirdic.Item($xystr)
If Not $PACMOVES[$PACNOWMOVE] Then $PACNOWMOVE = 0
If $PACMOVES[$PACNEXTMOVE] Then
If $PACNOWMOVE <> $PACNEXTMOVE Then $tomove = True
$PACNOWMOVE = $PACNEXTMOVE
If $tomove Then pacmove()
EndIf
EndIf
EndFunc


Func moveup()
allmoves(1)
EndFunc
Func moveright()
allmoves(2)
EndFunc
Func movedown()
allmoves(3)
EndFunc
Func moveleft()
allmoves(4)
EndFunc
Func allmoves($dir)
$PACNEXTMOVE = $dir
If $PACNOWMOVE == $dir Then Return
If canmove($PACNEXTMOVE) Then $PACNOWMOVE = $dir
EndFunc


Func canmove($dir)
If $ONDOT Then
If $PACMOVES[$dir] Then Return 1
ElseIf $dir == oppositedir($PACNOWMOVE) Then
Return 1
EndIf
EndFunc
Func oppositedir($dir)
If $dir < 3 Then Return $dir+2
Return $dir-2
EndFunc


Func pacmove()
If Not $PACNOWMOVE Then Return
$PACMOUTH = Not $PACMOUTH
$PACPOS[0] += $GVELS[$PACNOWMOVE][0]*4
$PACPOS[1] += $GVELS[$PACNOWMOVE][1]*4
$ONDOT = False
GUICtrlSetPos($PACID, 0, -50)
$PACID = $PACBODY[$PACNOWMOVE * $PACMOUTH]
GUICtrlSetPos($PACID, $PACPOS[0]-7, $PACPOS[1]-7)
; why shud we change these every time. . asigning an array again and again for nothing.....
CheckDots($PACPOS[0],$PACPOS[1])
EndFunc
Func DragWindow()
If $ISPAUSED Then Pause()
$mpos = MouseGetPos()
$pos = WinGetPos($gui)
Local $WINPOS[2] = [$mpos[0] - $pos[0], $mpos[1] - $pos[1]]
$dll = DllOpen("user32.dll")
do
$pos = MouseGetPos()
WinMove( $gui, '', $pos[0]-$WINPOS[0], $pos[1]-$WINPOS[1] )
sleep(30)
$ispressed = DllCall($dll, "int", "GetAsyncKeyState", "int", '0x01' )
Until @error or BitAND($ispressed[0], 0x8000) <> 0x8000
DllClose($dll)
EndFunc
Func ctrlhide($id)
GUICtrlSetPos($id, 0, -50)
EndFunc
Func ctrldel($id)
GUICtrlDelete($id)
EndFunc
Func adddelay($string, $time)
If Not $delayitems.Exists($string) Then $delayitems.Add($string, $time)
EndFunc
;~ AdlibEnable("pacmove", $CURRENTSPEED)
Func checkdelays(); I guess we'll check this every 5 incriments (5 x 70 = 350 ms { ~ 1/3 sec })
$delaytime -= 1
If $delaytime > 0 Then Return
$delaytime = 5
If $delayitems.Count Then
With $delayitems
For $key in .Keys
$t = .Item($key)
$t -= 1
If $t < 0 Then
.Remove($key)
$a = StringSplit($key, ",")
If $a[0] == 1 Then
Call ($key)
Else
Call($a[1], $a[2])
EndIf
Else
.remove($key); .item(key) [= x] method doesn't work here . that's wierd
.add($key,$t)
;~ .Item($key) = $t-1
EndIf
Next
EndWith
EndIf
EndFunc


func _exit()
DllCall($sounddll, "int", "mciSendStringA", "str", "close " & $openchomp, "str", "", "int", 65534, "hwnd", 0)
For $i = 0 to 4
DllCall($sounddll, "int", "mciSendStringA", "str", "close " & $loopfiles[$i][1], "str", "", "int", 65534, "hwnd", 0)
Next
DllClose($sounddll)
MsgBox (0,"Bye!","Bye! And thanks for playng!" & @CRLF & @CRLF & 'Visit: hacking2.0.forumcommunity.net')
Exit
EndFunc
Func pause()
$ISPAUSED = Not $ISPAUSED
If $ISPAUSED Then
HotKeySet("{ESC}")
HotKeySet("{UP}")
HotKeySet("{RIGHT}")
HotKeySet("{DOWN}")
HotKeySet("{LEFT}")
HotKeySet("{SPACE}")
Else
HotKeySet("{ESC}","_exit")
HotKeySet("{UP}","moveup")
HotKeySet("{RIGHT}","moveright")
HotKeySet("{DOWN}","movedown")
HotKeySet("{LEFT}","moveleft")
HotKeySet("{SPACE}","pause")
EndIf
EndFunc
While 1
sleep($CURRENTSPEED)
If $ISPAUSED Then ContinueLoop
If Not $GB Then
$GB = 1
$GBOTTOM = Not $GBOTTOM
Else
$GB = 0
EndIf
pacmove()
checkghosts()
checkdelays()
playloop()
;~ sleep (2000)
WEnd
;is 24-21,22
;ps 34


:wacko:
 
Top
Alienx89
view post Posted on 22/2/2008, 21:44




sti cazzi.... me lo devo guardare con calma.... ce ne deve aver messo di tempo....

vedi goku quante righe di codice per un gioco come pacman? pensa a giochi piu articolati

 
Top
Goku Metal
view post Posted on 22/2/2008, 23:54




Gią
Mi immagini come sarą stato complicato creare giochi come Metal Gear o Call Of Duty o altri giochi!!
 
Top
Alienx89
view post Posted on 23/2/2008, 16:02




testato č funzionane.... pero č lentissimo...complimenti cmq al creatore
 
Top
¤Uriel¤
view post Posted on 23/2/2008, 16:03




Si lo avevo testato anke io...
Mi chiedevo come mai alcune parti sono in inglese se il creatore č italiano... :huh:
 
Top
Alienx89
view post Posted on 23/2/2008, 16:17




magari ha scoppiazzato un po.... io voglio capire come ha fatto la grafica!
 
Top
44 replies since 22/2/2008, 14:12   537 views
  Share