摘要:導語各位戲精大家好我是木木子,這個中秋已經結束了,你們都帶著對象回家了碼中秋那幾天朋友圈簡直是大型秀恩愛現場。
各位戲精大家好!我是木木子,這個中秋已經結束了,你們都帶著對象回家了碼?
中秋那幾天朋友圈簡直是大型秀恩愛現場。
又是一年中秋夜,依舊憑實力單身!呼吁大家記得保護下單身狗啊喂!
?
作為一條人畜無害可可愛愛的單身狗
每年的假期幾乎都被傷的體無完膚,今年我們不僅要好好生存,還要勇敢報復,讓情侶們知道:
單身狗不是這么好欺負的~單身狗們報仇吧!今天帶大家寫一款賊有趣的單身狗小游戲~
?
?
首先準備好圖片素材等:
bgm音樂必備:
import pygameclass Sound(): def __init__(self): pygame.mixer.music.load("../sound/baab.mp3") pygame.mixer.music.play()
?先上效果圖嘿嘿嘿 看好哈:
游戲界面——
程序運行——
(1)設置滾動的背景:
#地圖滾動import pygameimport randomclass GameBackground(object): # 初始化地圖 def __init__(self, scene): # 加載相同張圖片資源,做交替實現地圖滾動 self.image1 = pygame.image.load("../image/background.png") self.image2 = pygame.image.load("../image/background.png") # 保存場景對象 self.main_scene = scene # 輔助移動地圖 self.x1 = 0 self.x2 = 1280 self.snowflag=False # 計算地圖圖片繪制坐標 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 # 雪花的橫坐標 self.y = 0 # 雪花的縱坐標 self.vx = 0 # 雪花的水平速度 self.vy = 0 self.x = random.randint(0,1280) # 初始化雪花橫坐標 self.y = random.randint(0,390) #初始化雪花縱坐標 def getsnowpos(self): return self.x,self.y # 返回雪花坐標位置
(2)單身狗不能碰到情侶檢測碰撞:
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)主函數:
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個雪花 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) #碰撞檢測 collidetest.dogs_cpdogs(dogs,cpdogs) collidetest.dog_cpdog(dog,cpdog2s) #背景 background.action() background.draw() #分數 # scor.beginpage() collidetest.score+=1 scor.displayScore(collidetest.score) #時間控制 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: # 每個雪花位置的變換 # if random.randint(0,1): 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) 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()
效果圖:游戲規則躲避情侶狗,一直奔跑加分!
好啦!單身狗大戰即將開始,come on。
哈哈哈哈 這游戲蠻有趣的撒!你們的支持是我最大的動力,記得三連哦~木啊!
完整的源碼+素材老規矩源碼基地見: 點擊藍色字體即可免費領取啦!
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/120981.html
摘要:導語哈嘍大家好,我是木木子。首先準備好相應的圖片這里準備的。 導語 哈嘍!大家好,我是木木子。 今日游戲更新系列來啦,是不是很想知道今天的游戲是什么類型的?立馬安排上—— 隨著年紀的不斷上升,我們開始丟三落四,忘東忘西,記憶力越來越差了! 這不止大人隨著年紀增大記憶力退卻,其實很多小孩子也...
摘要:導語我的世界是一款自由度極高的游戲,每個新存檔的開啟,就像是作為造物主的玩家在虛擬空間開辟了一個全新的宇宙。主題我的世界版本圖片效果圖如下。 導語 《我的世界》是一款自由度極高的游戲,每個新存檔的開啟,就像是作為造物主的玩家在虛擬空間開辟了一個全新的宇宙。 ? 方塊連接世界,云游大好河山。 ...
摘要:源碼很簡單鍵盤按,然后輸入表白網頁生成器打開網站,填入要表白的內容生成好的網頁百度傳情其實百度很早就有個傳情功能,直接百度輸入表白即可。 又到520,一個狂虐單身狗的日子,看看知乎的熱門話題:showImg(https://segmentfault.com/img/remote/1460000019264481); 這里給大家提供幾個虐狗的新姿勢。 69 表白從 69 開始,給對方發個...
摘要:來來來,跟著木木子一起開始玩泡泡龍游戲吧正文一準備中游戲規則游戲玩法是玩家從下方中央的彈珠發射臺射出彩珠,等于個同色珠相連則會消失。直到完全消除界面上的同款泡泡即可勝利,還可以跟小小伙伴兒比拼,看誰用的彩球越少。 導語 Python版的消除類的游戲還是很多的,木木子之前也是推過不少~ ?源碼...
閱讀 2505·2021-11-24 10:29
閱讀 2646·2021-09-24 09:48
閱讀 5753·2021-09-22 15:56
閱讀 3165·2021-09-06 15:00
閱讀 2678·2019-08-30 15:54
閱讀 751·2019-08-30 13:48
閱讀 2928·2019-08-30 11:17
閱讀 3431·2019-08-29 11:20