亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Pygame實(shí)戰(zhàn)練習(xí)之保護(hù)單身狗游戲

 更新時(shí)間:2021年09月24日 16:37:03   作者:顧木子吖  
下面這篇文章主要給大家介紹了關(guān)于如何利用python寫(xiě)一個(gè)簡(jiǎn)單的由經(jīng)典躲避類(lèi)益智小游戲修改的保護(hù)單身狗游戲的相關(guān)資料,需要的朋友可以參考下

導(dǎo)語(yǔ)

各位戲精大家好!我是木木子,這個(gè)中秋已經(jīng)結(jié)束了,你們都帶著對(duì)象回家了碼?

中秋那幾天朋友圈簡(jiǎn)直是大型秀恩愛(ài)現(xiàn)場(chǎng)。

又是一年中秋夜,依舊憑實(shí)力單身!呼吁大家記得保護(hù)下單身狗啊喂!

圖片

作為一條人畜無(wú)害可可愛(ài)愛(ài)的單身狗

每年的假期幾乎都被傷的體無(wú)完膚,今年我們不僅要好好生存,還要勇敢報(bào)復(fù),讓情侶們知道:

單身狗不是這么好欺負(fù)的~單身狗們報(bào)仇吧!今天帶大家寫(xiě)一款賊有趣的單身狗小游戲~

圖片

正文

首先準(zhǔn)備好圖片素材等:

bgm音樂(lè)必備:

import pygame
 
class Sound():
    def __init__(self):
        pygame.mixer.music.load('../sound/baab.mp3')
        pygame.mixer.music.play()

​先上效果圖嘿嘿嘿 看好哈:

游戲界面——

程序運(yùn)行——

(1)設(shè)置滾動(dòng)的背景:

#地圖滾動(dòng)
import pygame
import random
 
class 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 pygame
 
 
class 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 pygame
import sys,os
import random
from background import GameBackground,Snow
from dog import MySprite
from cpdog import Monster,MySprite2
from pygame.sprite import Group
from collidedetection import Collide
from sound import Sound
from score import Fontf
from crydog import MySpritec
 
 
pygame.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 = 0
dog.Y = 285
dogs = pygame.sprite.Group()
dogs.add(dog)
cpdogs=Group()
lasttimecreat=0
collidetest=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 = True
crydog=None
 
 
while 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ī)則躲避情侶狗,一直奔跑加分!

​總結(jié)

好啦!單身狗大戰(zhàn)即將開(kāi)始,come on。

哈哈哈哈 這游戲蠻有趣的撒!你們的支持是我最大的動(dòng)力,記得三連哦~木??!

圖片

到此這篇關(guān)于Pygame實(shí)戰(zhàn)練習(xí)之保護(hù)單身狗游戲的文章就介紹到這了,更多相關(guān)Pygame 保護(hù)單身狗游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3?最常用的三種裝飾器語(yǔ)法匯總

    python3?最常用的三種裝飾器語(yǔ)法匯總

    這篇文章主要介紹了python3?最常用的三種裝飾器語(yǔ)法總結(jié),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 基于pycharm的beautifulsoup4庫(kù)使用方法教程

    基于pycharm的beautifulsoup4庫(kù)使用方法教程

    這篇文章主要介紹了基于pycharm的beautifulsoup4庫(kù)使用方法教程,對(duì)正在學(xué)習(xí)或者工作的你有一點(diǎn)的參考價(jià)值,需要的朋友可以參加一下
    2022-01-01
  • pytorch判斷是否cuda 判斷變量類(lèi)型方式

    pytorch判斷是否cuda 判斷變量類(lèi)型方式

    這篇文章主要介紹了pytorch判斷是否cuda 判斷變量類(lèi)型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python科學(xué)計(jì)算包numpy用法實(shí)例詳解

    Python科學(xué)計(jì)算包numpy用法實(shí)例詳解

    這篇文章主要介紹了Python科學(xué)計(jì)算包numpy用法,結(jié)合實(shí)例形式詳細(xì)分析了Python基于科學(xué)計(jì)算包numpy在數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理及科學(xué)計(jì)算等方面的相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • Python利用matplotlib繪制散點(diǎn)圖的新手教程

    Python利用matplotlib繪制散點(diǎn)圖的新手教程

    這篇文章主要給大家介紹了關(guān)于Python利用matplotlib繪制散點(diǎn)圖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python創(chuàng)建n行m列數(shù)組示例

    python創(chuàng)建n行m列數(shù)組示例

    今天小編就為大家分享一篇python創(chuàng)建n行m列數(shù)組示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python: line=f.readlines()消除line中\(zhòng)n的方法

    python: line=f.readlines()消除line中\(zhòng)n的方法

    這篇文章主要介紹了python: line=f.readlines()消除line中\(zhòng)n的方法,需要的朋友可以參考下
    2018-03-03
  • 很酷的python表白工具 你喜歡我嗎

    很酷的python表白工具 你喜歡我嗎

    這篇文章主要為大家分享了一款很酷的python表白工具,可以發(fā)給女生表白用,界面簡(jiǎn)單,實(shí)用性強(qiáng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python?if?判斷語(yǔ)句詳解

    Python?if?判斷語(yǔ)句詳解

    這篇文章主要介紹了Python?if?判斷語(yǔ)句,包括流程控制,順序結(jié)構(gòu)和分支結(jié)構(gòu),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • python基礎(chǔ)之基本運(yùn)算符

    python基礎(chǔ)之基本運(yùn)算符

    這篇文章主要介紹了python基本運(yùn)算符,實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下
    2021-10-10

最新評(píng)論