婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python實現簡單的貪吃蛇游戲

python實現簡單的貪吃蛇游戲

熱門標簽:西藏快速地圖標注地點 百應ai電銷機器人鄭州 如何在地圖標注文字 地圖標注推廣單頁 ai地圖標注 女王谷地圖標注 廈門crm外呼系統如何 長春人工智能電銷機器人官網 n400電話申請多少錢

本文實例為大家分享了python實現貪吃蛇游戲的具體代碼,加入按鈕、難度、音樂、得分功能,供大家參考,具體內容如下

貪吃蛇小游戲,可以顯示出得分,又背景音樂,難度選擇和開始重啟按鈕設置。

游戲實現效果如下:

后面有完整代碼和解析

import sys
import pygame
import random

class Button(object):#定義按鈕類
 def __init__(self,begin1,begin2,restart1,restart2,position,position2):
 self.gamebegin1=pygame.image.load(begin1).convert_alpha()#導入開始和重啟按鈕圖片
 self.gamebegin2=pygame.image.load(begin2).convert_alpha()
 self.gamerestart1=pygame.image.load(restart1).convert_alpha()
 self.gamerestart2=pygame.image.load(restart2).convert_alpha()
 self.position=position
 self.position2=position2
 
 def ifpress(self):
 point_x,point_y=pygame.mouse.get_pos()#找到鼠標光標所在位置
 x,y=self.position#指定的點擊按鈕位置
 w,h=self.gamebegin1.get_size()#定義按鈕尺寸
 x-=w/2
 y-=h/2
 if_x=x-w/2point_xx+w/2#判斷鼠標光標是否在按鈕上
 if_y=y-h/2point_yy+h/2
 return if_x and if_y

 def ispress(self):
 x,y=self.position
 w,h=self.gamebegin1.get_size()
 x-=w/2
 y-=h/2
 if self.ifpress():#如果鼠標光標在按鈕上,圖片顯示為gamebegin1,否則顯示為gamebegin2
  screen.blit(self.gamebegin1,(x-w/2+8,y-h/2+7))  
 else:
  screen.blit(self.gamebegin2,(x-w/2,y-h/2))
 #定義重啟按鈕,方法同上
 def ifrepress(self):
 point_x,point_y=pygame.mouse.get_pos()
 x,y=self.position2
 w,h=self.gamerestart1.get_size()
 x-=w/2
 y-=h/2
 if_x=x-w/2point_xx+w/2
 if_y=y-h/2point_yy+h/2
 return if_x and if_y

 def isrepress(self):
 x,y=self.position2
 w,h=self.gamerestart1.get_size()
 x-=w/2
 y-=h/2
 if self.ifrepress():
  screen.blit(self.gamerestart1,(x-w/2,y-h/2))  
 else:
  screen.blit(self.gamerestart2,(x-w/2,y-h/2))
  
def choice():#定義選擇難度
 screen.fill((0,0,0))#初始界面顏色設置為黑色
 Rect1=pygame.Rect(300,300,200,100)#設置按鈕尺寸
 Rect2=pygame.Rect(300,450,200,100)
 pygame.draw.rect(screen,(136,189,186),Rect1)#創建按鈕
 screen.blit(font.render('grade one:',-1,(255,255,255)),(300,300))
 pygame.draw.rect(screen,(136,189,186),Rect2)
 screen.blit(font.render('grade two:',-1,(255,255,255)),(300,450))
 pygame.display.flip()#顯示到屏幕上
 point_x,point_y=pygame.mouse.get_pos()#找到鼠標光標所在位置
 global a,b#定義全局變量
 if 300point_x500 and 300point_y400:#判斷光標是否在按鈕上
 if pygame.mouse.get_pressed()[0]:#判斷鼠標是否按下
  a=8#a表示沒秒執行8次
  b=1#b表示設定的一個數,與后面判斷執行時有關
 if 300point_x500 and 450point_y550:
 if pygame.mouse.get_pressed()[0]:
  a=12
  b=1
 pygame.display.update()#更新屏幕
 

def getResult():#游戲結束時出現得分結果和gameover
 final_text1='Game_Over'
 final_text2='Your final score is: '+str(score)
 ft1_font=pygame.font.SysFont('Arial',70)
 ft1_surf=font.render(final_text1,1,(242,3,36))
 screen.blit(ft1_surf,[screen.get_width()/2-ft1_surf.get_width()/2,100])
 pygame.display.flip()

def main():
 pygame.init()#初始化pygame
 clock=pygame.time.Clock()#定義時間
 pygame.font.init()#初始化字符
 #需要在其它定義中出現的參數,這里還需要定義全局變量一下
 global score,screen,font,button,status,x,y,direction,snackhead,snackbody,foodposition,state,a,b
 screen=pygame.display.set_mode((640,640))#設置屏幕尺寸
 screen.fill((0,0,0))#填充屏幕顏色
 #指明圖片路徑
 beginname1='D://picture//gamebegin1.png'
 beginname2='D://picture//gamebegin2.png'
 restartname1='D://picture//restart1.png'
 restartname2='D://picture//restart2.png'
 pygame.display.set_caption('sanckgame')
 font=pygame.font.SysFont('Arial',40)#定義字符種類和大小
 snackhead=[120,120]#定義初始蛇的頭部位置
 foodposition=[360,360]#定義初始食物位置
 snackbody=[[120,120],[100,120],[80,120]]#定義蛇全身位置 
 score=0
 x=300
 y=300
 state=0
 a=1
 b=0
 food_eat=1#食物被吃為0,否則為1
 direction='right'#定義初始運動方向
 re_direction=direction#re_direction為變化后的方向
 button = Button(beginname1,beginname2,restartname1,restartname2,(330,300),(600,320))#定義按鈕數值 
 pygame.display.update()

 
 while True:
  
 for event in pygame.event.get():#遍歷可能出現的事件

  if event.type == pygame.QUIT:#點擊關閉,程序關閉
  pygame.quit()
  sys.exit()
 button.ispress()#顯示按鈕
 pygame.display.update()
 if button.ifpress():
  if pygame.mouse.get_pressed()[0]:   
  break #點擊按鈕,結束這里的循環,進入游戲選擇難度界面
 while True:
 for event in pygame.event.get():

  if event.type == pygame.QUIT:
  pygame.quit()
  sys.exit()
 choice()#運行choice()
 if b==1:#如果點擊了按鈕,結束循環,進入游戲運行界面
  break
 pygame.mixer.init()#初始化音樂
 pygame.mixer.music.load('D://music//Above Everything - Capo Productions.ogg')#導入音樂 
 pygame.display.update()
 status=True
 screen=pygame.display.set_mode((640,640))
 screen.fill((0,0,0))
 while status:
 clock.tick(a)#運行速度
 
 for event in pygame.event.get():

  if event.type == pygame.QUIT:
  pygame.quit()
  sys.exit()
  
  elif event.type == pygame.KEYDOWN:#判斷鍵盤事件
  if event.key == pygame.K_RIGHT or event.key == ord('d'):
   re_direction='right'
  if event.key == pygame.K_LEFT or event.key == ord('a'):
   re_direction='left'
  if event.key == pygame.K_UP or event.key == ord('w'):
   re_direction='up'
  if event.key == pygame.K_DOWN or event.key == ord('s'):
   re_direction='down'
 #跳出判斷事件循環
 if re_direction=='right'and not direction =='left':
  direction=re_direction
 if re_direction=='left'and not direction =='right':
  direction=re_direction
 if re_direction=='up'and not direction =='down':
  direction=re_direction
 if re_direction=='down'and not direction =='up':
  direction=re_direction
 #頭部坐標變化 
 if direction=='left':
  snackhead[0]-=20
 if direction=='right':
  snackhead[0]+=20
 if direction=='down':
  snackhead[1]+=20  
 if direction=='up':
  snackhead[1]-=20
 snackbody.insert(0,list(snackhead))#每移動一次,把頭部新位置插入到最前面,形成新的頭部
 
 if snackhead[0]==foodposition[0] and snackhead[1]==foodposition[1]:#判斷蛇是否吃到了食物
  food_eat=0
  score+=1
  pygame.display.update()
 else:
  snackbody.pop()#沒吃到則將位置變化前的尾部剔除出去,設的長度不變
 pygame.display.update()
 if food_eat==0:#遲到食物后生成新的食物
  x=random.randint(1,31)
  y=random.randint(1,31)
  for position in snackbody:#判斷食物是否出現在蛇的身體處,出現則重新生成
  if not x == position[0] and not y == position[1]:
   state=1
  else:
   state=0
  if state ==1:
  foodposition=[int(x*20),int(y*20)]
  food_eat=1
  
 screen.fill((0,0,0))
 for position in snackbody:#畫出蛇的身體和食物
  rect2=pygame.Rect(position[0],position[1],20,20)
  pygame.draw.rect(screen,(166,188,199),rect2)
  rect1=pygame.Rect(foodposition[0],foodposition[1],20,20)
  pygame.draw.rect(screen,(169,111,102),rect1)
 screen.blit(font.render('Score:'+str(score),-1,(255,255,255)),(100,50))#顯示出得分
 pygame.display.update()
 #如果蛇撞到墻或自己的身體,則游戲結束
 if snackhead[0]0 or snackhead[0]>620:
  restart()
 if snackhead[1]0 or snackhead[1]>620:
  restart()
 for body in snackbody[1:]:
  if body[0]==snackhead[0]and body[1]==snackhead[1]:
  restart() 
 
 pygame.display.flip()
 pygame.display.update()
 if pygame.mixer.music.get_busy()==False:
  pygame.mixer.music.set_volume(0.3)
  pygame.mixer.music.play(-1)#音樂循環
 
def restart():#重新開始按鈕
  
 getResult()#顯示結果
 while True:
 for event in pygame.event.get():

  if event.type == pygame.QUIT:
  pygame.quit()
  sys.exit()
  
  button.isrepress()
  pygame.display.update()
  if button.ifrepress():
  pygame.display.update()
  if pygame.mouse.get_pressed()[0]:
   main()

main()

按鈕圖片如下,可以自己畫圖做,音樂最好用ogg格式的,否則可能出問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 五分鐘學會怎么用python做一個簡單的貪吃蛇
  • 用Python實現童年貪吃蛇小游戲功能的實例代碼
  • python語言實現貪吃蛇游戲
  • 150行python代碼實現貪吃蛇游戲
  • python實現貪吃蛇游戲源碼
  • 教你一步步利用python實現貪吃蛇游戲
  • python簡單貪吃蛇開發
  • python實現貪吃蛇游戲
  • python貪吃蛇游戲代碼
  • 只需要100行Python代碼就可以實現的貪吃蛇小游戲

標簽:黔東 亳州 渭南 綿陽 內江 拉薩 興安盟 廊坊

巨人網絡通訊聲明:本文標題《python實現簡單的貪吃蛇游戲》,本文關鍵詞  python,實現,簡單,的,貪吃,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現簡單的貪吃蛇游戲》相關的同類信息!
  • 本頁收集關于python實現簡單的貪吃蛇游戲的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    蜜桃av一区二区在线观看| 日韩一区二区三| 国产精品网站导航| 成人免费观看视频| 中文av一区二区| 色综合天天天天做夜夜夜夜做| 国产精品美女久久福利网站| 99国产一区二区三精品乱码| 中文在线免费一区三区高中清不卡| 成人性生交大合| 亚洲综合成人在线视频| 欧美日韩国产影片| 久久99精品国产.久久久久久| 日韩一区二区三区在线视频| 精品无人区卡一卡二卡三乱码免费卡 | 粉嫩aⅴ一区二区三区四区五区| 欧美激情综合五月色丁香| 国产ts人妖一区二区| 亚洲精品国产一区二区精华液 | 视频一区欧美精品| 精品国产乱码久久久久久蜜臀| 国产剧情在线观看一区二区| 亚洲欧洲精品一区二区三区不卡| 欧美曰成人黄网| 久久精品999| 亚洲欧美激情在线| 日韩欧美成人激情| 国产激情一区二区三区四区| 亚洲丝袜自拍清纯另类| 欧美日韩精品福利| 国产成人亚洲综合a∨猫咪| 亚洲精品中文在线| 日韩欧美的一区| 色综合久久88色综合天天免费| 五月天亚洲婷婷| 国产日产亚洲精品系列| 欧美日韩免费电影| 粉嫩嫩av羞羞动漫久久久| 香蕉影视欧美成人| 国产精品家庭影院| 日韩视频免费直播| 91国在线观看| 国产激情视频一区二区三区欧美| 亚洲国产精品一区二区www | 日韩精品一区二区三区视频| 99国产精品一区| 国产一区欧美二区| 首页综合国产亚洲丝袜| 国产精品毛片久久久久久久| 日韩一区二区麻豆国产| 色哟哟国产精品| 国产成人aaaa| 国产一区二区三区四区五区美女| 一区二区在线观看av| 日本一区二区三级电影在线观看| 欧美一级xxx| 欧美精品少妇一区二区三区| 91麻豆6部合集magnet| 国产成人免费在线观看| 久久福利视频一区二区| 日本在线不卡视频| 午夜视频一区在线观看| 亚洲色图丝袜美腿| 国产日韩影视精品| 国产亚洲精品aa午夜观看| 日韩一区二区视频| 欧美一区二区三区婷婷月色| 一本一本大道香蕉久在线精品| 高清久久久久久| 成人在线综合网| 国产成人亚洲综合色影视| 国产一区久久久| 久草在线在线精品观看| 久久精品久久久精品美女| 日本 国产 欧美色综合| 丝袜美腿亚洲综合| 视频一区视频二区在线观看| 爽爽淫人综合网网站| 日韩在线一二三区| 婷婷夜色潮精品综合在线| 亚洲一区二区精品3399| 亚洲精品综合在线| 一区二区三区 在线观看视频| 一区二区视频免费在线观看| 亚洲日本在线视频观看| 综合久久综合久久| 亚洲影院在线观看| 日韩精品欧美精品| 精品一二线国产| 成人精品国产免费网站| 99久久精品国产毛片| 91福利视频网站| 日韩无一区二区| 久久精品欧美一区二区三区麻豆 | 91免费版在线| 欧美视频一区在线| 日韩三级在线免费观看| 国产亚洲欧洲一区高清在线观看| 日本一区二区久久| 亚洲一区二区三区四区中文字幕 | 久久99热99| 国产成人精品免费看| 色综合天天做天天爱| 欧美精品自拍偷拍动漫精品| 欧美成人a∨高清免费观看| 国产精品乱码人人做人人爱| 美女一区二区在线观看| 青青草伊人久久| 国产成人小视频| 色国产综合视频| 欧美日韩黄色一区二区| 日韩视频一区二区三区在线播放 | 国产激情一区二区三区四区| 懂色av中文一区二区三区| 97精品国产露脸对白| 一本到三区不卡视频| 欧美亚洲日本国产| 日韩亚洲欧美中文三级| 26uuu精品一区二区在线观看| 国产欧美精品一区| 亚洲三级小视频| 国产美女一区二区三区| 91色视频在线| 7777精品伊人久久久大香线蕉完整版 | 国产一区激情在线| 99久久伊人精品| 4438x成人网最大色成网站| 欧美日韩电影在线播放| 欧美激情一区二区三区在线| 亚洲欧美日韩久久精品| 午夜免费欧美电影| 国产精品综合二区| 欧美日韩久久久久久| 国产精品免费视频观看| 五月天婷婷综合| 成人性生交大片免费看中文| 欧美视频在线不卡| 国产喂奶挤奶一区二区三区| 日韩不卡在线观看日韩不卡视频| 国产91精品入口| 欧美精品一级二级三级| 亚洲国产精品激情在线观看| 亚洲成人自拍一区| 91麻豆精品秘密| 久久色在线观看| 一区二区理论电影在线观看| 国产一二精品视频| 91精品国产色综合久久| 亚洲v日本v欧美v久久精品| 国产精品一区二区视频| 欧美一区二区视频在线观看2022| 国产精品久久久久影院| 九一九一国产精品| 欧美日韩在线三区| 中文字幕在线不卡一区| 蜜臀91精品一区二区三区| 欧美影院精品一区| 欧美精品一区二区三区蜜桃视频| 免费的成人av| 欧美日韩国产综合一区二区三区| 亚洲欧洲精品成人久久奇米网| 麻豆精品一区二区| 95精品视频在线| 亚洲色图一区二区三区| 国产福利91精品一区二区三区| 日韩欧美中文字幕公布| 日韩成人免费在线| 欧美日韩高清一区二区不卡| 亚洲理论在线观看| 日韩亚洲欧美一区| 亚洲激情在线播放| 欧美揉bbbbb揉bbbbb| 亚洲欧美偷拍卡通变态| www.亚洲精品| 日本一区二区三级电影在线观看| 国产在线播放一区三区四| 欧美一区二区三区日韩| 亚洲国产成人精品视频| 在线精品亚洲一区二区不卡| 亚洲欧洲中文日韩久久av乱码| 99久久国产综合精品女不卡| 国产精品拍天天在线| 韩国成人精品a∨在线观看| 精品少妇一区二区三区免费观看| 亚洲综合清纯丝袜自拍| 6080yy午夜一二三区久久| 日本午夜精品一区二区三区电影 | 在线观看免费成人| 亚洲激情在线激情| 欧美日韩中文字幕一区二区| 五月天国产精品| 91精品国产黑色紧身裤美女| 美女视频免费一区| 精品sm捆绑视频| 成人免费看黄yyy456| 国产精品免费久久| 91久久人澡人人添人人爽欧美| 日韩电影在线一区二区| 日韩视频免费观看高清完整版 | 久久久精品日韩欧美|