最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年09月24日 16:37:03   作者:顧木子吖  
下面這篇文章主要給大家介紹了關(guān)于如何利用python寫(xiě)一個(gè)簡(jiǎn)單的由經(jīng)典躲避類益智小游戲修改的保護(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)文章

  • Python 根據(jù)相鄰關(guān)系還原數(shù)組的兩種方式(單向構(gòu)造和雙向構(gòu)造)

    Python 根據(jù)相鄰關(guān)系還原數(shù)組的兩種方式(單向構(gòu)造和雙向構(gòu)造)

    本文主要介紹了Python 根據(jù)相鄰關(guān)系還原數(shù)組的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • python操作字典類型的常用方法(推薦)

    python操作字典類型的常用方法(推薦)

    下面小編就為大家?guī)?lái)一篇python操作字典類型的常用方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • python小技巧——將變量保存在本地及讀取

    python小技巧——將變量保存在本地及讀取

    這篇文章主要介紹了python小技巧——如何將變量保存在本地及讀取,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • python庫(kù)TextDistance量化文本之間的相似度算法探究

    python庫(kù)TextDistance量化文本之間的相似度算法探究

    這篇文章主要為大家介紹了python庫(kù)TextDistance量化文本之間的相似度算法探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 通過(guò)代碼簡(jiǎn)單了解django model序列化作用

    通過(guò)代碼簡(jiǎn)單了解django model序列化作用

    這篇文章主要介紹了通過(guò)代碼簡(jiǎn)單了解django model序列化作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 用python做個(gè)代碼版的小仙女蹦迪視頻

    用python做個(gè)代碼版的小仙女蹦迪視頻

    這篇文章主要介紹了怎么樣用python做個(gè)代碼版的小仙女蹦迪視頻,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 詳解Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn)

    詳解Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn)

    這篇文章主要介紹了Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python實(shí)現(xiàn)定時(shí)壓縮指定文件夾發(fā)送郵件

    python實(shí)現(xiàn)定時(shí)壓縮指定文件夾發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)壓縮指定文件夾發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • ansible作為python模塊庫(kù)使用的方法實(shí)例

    ansible作為python模塊庫(kù)使用的方法實(shí)例

    ansible是一個(gè)python package,是個(gè)完全的unpack and play軟件,對(duì)客戶端唯一的要求是有ssh有python,并且裝了python-simplejson包,部署上簡(jiǎn)單到發(fā)指。下面這篇文章就給大家主要介紹了ansible作為python模塊庫(kù)使用的方法實(shí)例,需要的朋友可以參考借鑒。
    2017-01-01
  • 用Python將IP地址在整型和字符串之間輕松轉(zhuǎn)換

    用Python將IP地址在整型和字符串之間輕松轉(zhuǎn)換

    這篇文章主要給大家介紹了利用Python將IP在整型和字符串之間輕松轉(zhuǎn)換的相關(guān)資料,文中還跟大家分享了Python下利用正則表達(dá)式來(lái)匹配校驗(yàn)一個(gè)字符串是否為ip地址的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03

最新評(píng)論

洪雅县| 民丰县| 邮箱| 定远县| 建水县| 宁陵县| 五台县| 全南县| 徐闻县| 织金县| 巴林左旗| 兴文县| 克拉玛依市| 郑州市| 大英县| 靖边县| 乐业县| 高密市| 永嘉县| 焉耆| 德阳市| 上犹县| 墨江| 汉源县| 大田县| 三江| 丹凤县| 江西省| 略阳县| 甘南县| 梓潼县| 巴林右旗| 永登县| 密山市| 崇左市| 交口县| 防城港市| 富川| 卢氏县| 堆龙德庆县| 呈贡县|