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

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

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

導(dǎo)語

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

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

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

圖片

作為一條人畜無害可可愛愛的單身狗

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

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

圖片

正文

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

bgm音樂必備:

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")
        # 保存場景對象
        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)單身狗不能碰到情侶檢測碰撞:

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)
        #碰撞檢測
            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)即將開始,come on。

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

圖片

到此這篇關(guān)于Pygame實(shí)戰(zhàn)練習(xí)之保護(hù)單身狗游戲的文章就介紹到這了,更多相關(guān)Pygame 保護(hù)單身狗游戲內(nèi)容請搜索腳本之家以前的文章或繼續(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ù)組的兩種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • python操作字典類型的常用方法(推薦)

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

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

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

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

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

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

    通過代碼簡單了解django model序列化作用

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

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

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

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

    這篇文章主要介紹了Python數(shù)據(jù)分析--Pandas知識點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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模塊庫使用的方法實(shí)例

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

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

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

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

最新評論

永春县| 高安市| 固始县| 冕宁县| 舞阳县| 五莲县| 五大连池市| 扶沟县| 巴彦淖尔市| 资兴市| 怀仁县| 穆棱市| 铜鼓县| 寻乌县| 建水县| 青神县| 绥阳县| 易门县| 琼海市| 澜沧| 巴里| 肃宁县| 平湖市| 南丰县| 无锡市| 新民市| 黄大仙区| 法库县| 阿巴嘎旗| 商南县| 南阳市| 图木舒克市| 内丘县| 应城市| 巴楚县| 东城区| 双峰县| 定襄县| 井研县| 原平市| 寿宁县|