Advertisement
Sinduadjie

pacman.py

Nov 19th, 2014
643
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #game pacman2
  2. #sindu adjie 19-11-2014
  3. #forpys60 group indonesia
  4. #belajar bikin game..
  5. #tidak ada perubahan yg berarti cuma efisiensi script aja.. Dari script sebelum nya
  6.  
  7. from appuifw import app,Canvas,e32
  8. from graphics import Image
  9. from random import randint as rd
  10. from audio import say
  11. run=1
  12. def quit():
  13.   global run
  14.   run=0
  15.  
  16. app.exit_key_handler=quit
  17. app.screen='full'
  18. app.body=cv=Canvas()
  19. X,Y=cv.size
  20. im=Image.new((X,Y))
  21. jum,x,y,sw=0,0,0,1
  22. kx,ky,w=[],[],[]
  23.  
  24. def radian(d):
  25.   return d*3.14/180.0
  26.  
  27. class ubah:
  28.   skor,sw,rn=0,1,1
  29. s=ubah()
  30.  
  31. def acak():
  32.   global jum
  33.   jum=rd(1,10)
  34.   for i in range (jum):
  35.     kx.append(rd(10,X))
  36.     ky.append(rd(10,Y))
  37.     w.append(rd(0xff,0xffffff))
  38.  
  39. def gambar():
  40.   global kx,ky,jum
  41.   for i in range(len(kx)):
  42.       if abs(kx[i]-(x+12.5)
  43.              )<6 and abs(ky[i]-(y+12.5))<6:
  44.          del kx[i], ky[i], w[i]; jum-=1
  45.          s.skor+=1; say('aha')  
  46.          break
  47.   if len(kx)==0: acak()
  48.   im.text((10,20),u'skor: %s'%s.skor,0xffffff)
  49.   for i in range(jum):
  50.     im.point((kx[i],ky[i]),w[i],width=10)
  51.  
  52.   im.pieslice((x,y,x+25,y+25),radian(agl+s.rn),radian(-agl+s.rn),fill=0xff0000)
  53.  
  54. def jalan():
  55.   global x,y
  56.   if s.sw==0:x-=1
  57.   if s.sw==1:x+=1
  58.   if s.sw==2:y-=1
  59.   if s.sw==3:y+=1
  60.   if x>X:x=0
  61.   if x<0:x=X
  62.   if y>Y:y=0
  63.   if y<0:y=Y
  64.  
  65. def kiri():s.sw=0;s.rn=180
  66. def kanan():s.sw=1;s.rn=0
  67. def atas():s.sw=2;s.rn=90
  68. def bawah():s.sw=3;s.rn=270
  69.  
  70. cv.bind(0xf807,kiri)
  71. cv.bind(0xf808,kanan)
  72. cv.bind(0xf809,atas)
  73. cv.bind(0xf80a,bawah)
  74.  
  75. acak()
  76. agl=0
  77. while run:
  78.   agl+=3
  79.   if agl>60:agl=0
  80.   im.clear(0x3b3b3b)
  81.   jalan();gambar()
  82.   cv.blit(im)
  83.   e32.ao_sleep(0.01)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement