摘要:導(dǎo)語(yǔ)各位戲精大家好我是木木子,這個(gè)中秋已經(jīng)結(jié)束了,你們都帶著對(duì)象回家了碼中秋那幾天朋友圈簡(jiǎn)直是大型秀恩愛現(xiàn)場(chǎng)。
各位戲精大家好!我是木木子,這個(gè)中秋已經(jīng)結(jié)束了,你們都帶著對(duì)象回家了碼?
中秋那幾天朋友圈簡(jiǎn)直是大型秀恩愛現(xiàn)場(chǎng)。
又是一年中秋夜,依舊憑實(shí)力單身!呼吁大家記得保護(hù)下單身狗啊喂!
?
作為一條人畜無(wú)害可可愛愛的單身狗
每年的假期幾乎都被傷的體無(wú)完膚,今年我們不僅要好好生存,還要勇敢報(bào)復(fù),讓情侶們知道:
單身狗不是這么好欺負(fù)的~單身狗們報(bào)仇吧!今天帶大家寫一款賊有趣的單身狗小游戲~
?
?
首先準(zhǔn)備好圖片素材等:
bgm音樂(lè)必備:
import pygameclass Sound(): def __init__(self): pygame.mixer.music.load("../sound/baab.mp3") pygame.mixer.music.play()
?先上效果圖嘿嘿嘿 看好哈:
游戲界面——
程序運(yùn)行——
(1)設(shè)置滾動(dòng)的背景:
#地圖滾動(dòng)import pygameimport randomclass GameBackground(object): # 初始化地圖 def __init__(self, scene): # 加載相同張圖片資源,做交替實(shí)現(xiàn)地圖滾動(dòng) self.image1 = pygame.image.load("../image/background.png") self.image2 = pygame.image.load("../image/background.png") # 保存場(chǎng)景對(duì)象 self.main_scene = scene # 輔助移動(dòng)地圖 self.x1 = 0 self.x2 = 1280 self.snowflag=False # 計(jì)算地圖圖片繪制坐標(biāo) def action(self): self.x1 = self.x1 - 1 self.x2 = self.x2 - 1 if self.x1 <= -1279: self.x1 = 1279 if self.x2 <= -1279: self.x2 = 1279 # 繪制地圖的兩張圖片 def draw(self): self.main_scene.blit(self.image1, (self.x1,0)) self.main_scene.blit(self.image2, (self.x2,0))class Snow(): # 雪花的豎直速度 def __init__(self): self.x = 0 # 雪花的橫坐標(biāo) self.y = 0 # 雪花的縱坐標(biāo) self.vx = 0 # 雪花的水平速度 self.vy = 0 self.x = random.randint(0,1280) # 初始化雪花橫坐標(biāo) self.y = random.randint(0,390) #初始化雪花縱坐標(biāo) def getsnowpos(self): return self.x,self.y # 返回雪花坐標(biāo)位置
(2)單身狗不能碰到情侶檢測(cè)碰撞:
import pygameclass Collide(): def __init__(self): self.gamestatus=True self.snowflag=False self.dogflag=0 self.score=0 self.scoreup=200 self.gameover=False self.count=0 def dogs_cpdogs(self,dogs,cpdogs): boooooooooooooooool=pygame.sprite.groupcollide(dogs,cpdogs,False,True) if boooooooooooooooool: self.score += self.scoreup print(self.score) def dog_cpdog(self,dog,cpdog2s): booooooool=pygame.sprite.spritecollide(dog,cpdog2s,True) if booooooool: self.snowflag = True self.count += 1 if self.count>=3: self.gameover=True
?(3)主函數(shù):
import pygameimport sys,osimport randomfrom background import GameBackground,Snowfrom dog import MySpritefrom cpdog import Monster,MySprite2from pygame.sprite import Groupfrom collidedetection import Collidefrom sound import Soundfrom score import Fontffrom crydog import MySpritecpygame.init()screen=pygame.display.set_mode((1280,390))fpsset=pygame.time.Clock()bgcolor=(255,240,30)background=GameBackground(screen)dog=MySprite() dog.load("../image/dog.png", 82, 62, 3)dog.X = 0dog.Y = 285dogs = pygame.sprite.Group()dogs.add(dog)cpdogs=Group()lasttimecreat=0collidetest=Collide()sound=Sound()cpdog2s = pygame.sprite.Group()snowlist = []for i in range(0, 50): # 建立50個(gè)雪花 snow=Snow() snowlist.append(snow)scor=Fontf(screen)onoff = Truecrydog=Nonewhile 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # player ctrl if event.type==pygame.KEYDOWN: if event.key==pygame.K_RIGHT: dog.movieRight=True if event.key == pygame.K_LEFT: dog.movieLeft=True if event.key==pygame.K_SPACE: if not dog.jumping: dog.jumping=True dog.vUP = -14 if event.type == pygame.KEYUP: if event.key == pygame.K_RIGHT: dog.movieRight=False if event.key==pygame.K_LEFT: dog.movieLeft=False if event.type==pygame.MOUSEBUTTONDOWN: mousex,mousey=pygame.mouse.get_pos() if mousex>=540 and mousex<=540 + scor.text_width: if mousey>=180 and mousey<=180 + scor.text_height: onoff = False if dog.jumping: if dog.vUP < 0: dog.vUP += 0.6 elif dog.vUP >= 0: dog.vUP += 0.8 dog.Y += dog.vUP if dog.Y >= 290: dog.jumping = False dog.Y = 290 dog.vUP = 0.0 if not collidetest.gameover: if onoff: scor.beginpage() print(onoff) else: print(onoff) #碰撞檢測(cè) collidetest.dogs_cpdogs(dogs,cpdogs) collidetest.dog_cpdog(dog,cpdog2s) #背景 background.action() background.draw() #分?jǐn)?shù) # scor.beginpage() collidetest.score+=1 scor.displayScore(collidetest.score) #時(shí)間控制 ticks = pygame.time.get_ticks() #player繪制 dogs.update(ticks) dogs.draw(screen) cpdog2s.update(ticks) cpdog2s.draw(screen) if ticks >lasttimecreat + random.randint(1000,20000): #生成障礙物 cp = Monster(screen) cpdogs.add(cp) cpdog2 = MySprite2() cpdog2.load("../image/cpdogs.png", 113, 62, 3) cpdog2.X = 1280 cpdog2.Y = 285 cpdog2s.add(cpdog2) lasttimecreat=ticks for m in cpdogs: m.draw_monster() if m.rect.x <=640: del m cpdogs.update() #snow if collidetest.snowflag: for snow in snowlist: # 每個(gè)雪花位置的變換 # if random.randint(0,1): snow.vx = random.randint(-3,3) # 雪花的橫向速度 snow.vy = 1 # 雪花的豎直速度 snow.x += snow.vx # 雪花的橫軸移動(dòng)位置 snow.y += snow.vy # 雪花的縱軸移動(dòng)位置 if snow.y > 500: snow.y = 0 pygame.draw.circle(screen,[255,255,255],snow.getsnowpos(),1) else: if collidetest.snowflag: background.action() background.draw() for snow in snowlist: snow.vx = random.randint(-3, 3) snow.vy = 1 snow.x += snow.vx snow.y += snow.vy if snow.y > 500: snow.y = 0 pygame.draw.circle(screen, [255, 255, 255], snow.getsnowpos(), 1) if not crydog: crydog=MySpritec() crydog.load("../image/crydog.png", 82, 62,3) crydog.X = 100 crydog.Y = 285 crydogs=Group() crydogs.add(crydog) ticks = pygame.time.get_ticks() # player繪制 crydogs.update(ticks) crydogs.draw(screen) scor.gameoverrrrrrrrr() if crydog.X>1280: sys.exit() fpsset.tick(60) pygame.display.update()
效果圖:游戲規(guī)則躲避情侶狗,一直奔跑加分!
好啦!單身狗大戰(zhàn)即將開始,come on。
哈哈哈哈 這游戲蠻有趣的撒!你們的支持是我最大的動(dòng)力,記得三連哦~木??!
完整的源碼+素材老規(guī)矩源碼基地見: 點(diǎn)擊藍(lán)色字體即可免費(fèi)領(lǐng)取啦!
?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/120981.html
摘要:導(dǎo)語(yǔ)哈嘍大家好,我是木木子。首先準(zhǔn)備好相應(yīng)的圖片這里準(zhǔn)備的。 導(dǎo)語(yǔ) 哈嘍!大家好,我是木木子。 今日游戲更新系列來(lái)啦,是不是很想知道今天的游戲是什么類型的?立馬安排上—— 隨著年紀(jì)的不斷上升,我們開始丟三落四,忘東忘西,記憶力越來(lái)越差了! 這不止大人隨著年紀(jì)增大記憶力退卻,其實(shí)很多小孩子也...
摘要:導(dǎo)語(yǔ)我的世界是一款自由度極高的游戲,每個(gè)新存檔的開啟,就像是作為造物主的玩家在虛擬空間開辟了一個(gè)全新的宇宙。主題我的世界版本圖片效果圖如下。 導(dǎo)語(yǔ) 《我的世界》是一款自由度極高的游戲,每個(gè)新存檔的開啟,就像是作為造物主的玩家在虛擬空間開辟了一個(gè)全新的宇宙。 ? 方塊連接世界,云游大好河山。 ...
摘要:源碼很簡(jiǎn)單鍵盤按,然后輸入表白網(wǎng)頁(yè)生成器打開網(wǎng)站,填入要表白的內(nèi)容生成好的網(wǎng)頁(yè)百度傳情其實(shí)百度很早就有個(gè)傳情功能,直接百度輸入表白即可。 又到520,一個(gè)狂虐單身狗的日子,看看知乎的熱門話題:showImg(https://segmentfault.com/img/remote/1460000019264481); 這里給大家提供幾個(gè)虐狗的新姿勢(shì)。 69 表白從 69 開始,給對(duì)方發(fā)個(gè)...
摘要:來(lái)來(lái)來(lái),跟著木木子一起開始玩泡泡龍游戲吧正文一準(zhǔn)備中游戲規(guī)則游戲玩法是玩家從下方中央的彈珠發(fā)射臺(tái)射出彩珠,等于個(gè)同色珠相連則會(huì)消失。直到完全消除界面上的同款泡泡即可勝利,還可以跟小小伙伴兒比拼,看誰(shuí)用的彩球越少。 導(dǎo)語(yǔ) Python版的消除類的游戲還是很多的,木木子之前也是推過(guò)不少~ ?源碼...
閱讀 2528·2021-11-24 10:29
閱讀 2669·2021-09-24 09:48
閱讀 5775·2021-09-22 15:56
閱讀 3182·2021-09-06 15:00
閱讀 2702·2019-08-30 15:54
閱讀 768·2019-08-30 13:48
閱讀 2961·2019-08-30 11:17
閱讀 3452·2019-08-29 11:20