資源簡介
音樂,圖像,tk開始界面的插入,滿足作業或者自己練習的需要。定義函數,如蛇身食物等,之后進入main主函數中,圖片的插入pygame.image.load,音樂的插入分為兩種,一種為MP3格式的音頻的插入pygame.mixer.music.load,另一種為WAV格式的插入pygame.mixer.Sound。使用if fdrect.collidepoint(pos):來判斷是否發生蛇頭與食物的碰撞。使用if來實現游戲的重開和按鍵退出。在tkinter中運用到了label和button實現圖片得插入與按鈕的插入。(text.render(),())來完成文字的插入。
代碼片段和文件信息
import?pygame
import?random
import?copy
import?tkinter
from?tkinter?import?*
import?tkinter?as?tk
class?snake:
????def?__init__(self):
????????“““
????????init?the?snake
????????“““
????????self.poslist?=?[[100100]]
????def?position(self):
????????“““
????????return?the?all?of?the?snake‘s?point
????????“““
????????return?self.poslist
????def?gowhere(selfwhere):
????????“““
????????change?the?snake‘s?point?to?control?the?snake‘s?moving?direction
????????“““
????????count?=?len(self.poslist)
????????pos?=?count-1
????????while?pos?>?0:
????????????self.poslist[pos]?=?copy.deepcopy(self.poslist[pos-1])
????????????pos?-=?1
????????if?where?is?‘U‘:
????????????self.poslist[pos][1]?-=?10
????????????if?self.poslist[pos][1]?10:
????????????????
????????????????self.poslist[pos][1]?=?440
????????if?where?is?‘D‘:
????????????self.poslist[pos][1]?+=?10
????????????if?self.poslist[pos][1]?>?440:
????????????????self.poslist[pos][1]?=?10
????????if?where?is?‘L‘:
????????????self.poslist[pos][0]?-=?10
????????????if?self.poslist[pos][0]?10:
????????????????self.poslist[pos][0]?=?790
????????if?where?is?‘R‘:
????????????self.poslist[pos][0]?+=?10
????????????if?self.poslist[pos][0]?>?790:
????????????????self.poslist[pos][0]?=?10
????def?eatfood(selffoodpoint):
????????“““
????????eat?the?food?and?add?point?to?snake
????????“““
????????self.poslist.append(foodpoint)
class?food:
????def?__init__(self):
????????“““
????????init?the?food‘s?point
????????“““
????????self.x?=?random.randint(10790)
????????self.y?=?random.randint(10440)
????def?display(self):
????????“““
????????init?the?food‘s?point?and?return?the?point
????????“““
????????self.x?=?random.randint(10790)
????????self.y?=?random.randint(10440)
????????return?self.position()
????def?position(self):
????????“““
????????return?the?food‘s?point
????????“““
????????return?[self.xself.y]
def?main():
????moveup?=?False
????movedown?=?False
????moveleft?=?False
????moveright?=?True
????pygame.init()
????clock?=?pygame.time.Clock()
????width?=?800
????height?=?450
????i=0
????text?=?pygame.font.SysFont(“arial“?36)
????screen?=?pygame.display.set_mode([widthheight])
????bgp=pygame.image.load(‘timg.jpg‘).convert()
????restart?=?True
????#音樂的插入
????pygame.mixer.init()
????eat=pygame.mixer.Sound(‘7780.wav‘)
????eat.set_volume(1)
????gameover1=pygame.mixer.Sound(‘gameover1.wav‘)
????gameover1.set_volume(1)
????pygame.mixer.music.load(‘bgm.mp3‘)
????pygame.mixer.music.play(-10)
????pygame.mixer.music.set_volume(0.5)?
????while?restart:
????????sk?=?snake()
????????fd?=?food()
????????screentitle?=?pygame.display.set_caption(“eat?snake“)
????????sk.gowhere(‘R‘)
????????running?=?True
????????while?running:
????????????#?fill?the?background?is?white
????????????screen.blit(bgp(00))
????????????for?event?in?pygame.event.get():
????????????????if?event.type?==?pygame.QUIT:
????????????????????pygame.quit()
????????????????????exit(0)
????????????????#?judge?the?down?key
????????????????if?event.t
評論
共有 條評論