91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python+Pygame如何實現簡單的射擊小游戲

發布時間:2022-04-27 10:36:29 來源:億速云 閱讀:346 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Python+Pygame如何實現簡單的射擊小游戲”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python+Pygame如何實現簡單的射擊小游戲”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、運行環境

1)環境安裝

Python3、 Pycharm 、Pygame模塊部分自帶模塊就不展示啦。

第三方庫的安裝:pip install pygame 或者

帶鏡像源 pip install -i https://pypi.douban.com/simple/ +模塊名  

2)素材(圖片、音樂等)

Python+Pygame如何實現簡單的射擊小游戲

二、代碼展示

主程序

import pygame,os,random
from pygame.locals import *
from pygame.sprite import *
def load_image(name):
    fullname=os.path.join(os.path.join(os.path.split(os.path.abspath(__file__))[0],"filedata"),name)
    image=pygame.image.load(fullname)
    return image
def load_sound(name):
    fullname=os.path.join(os.path.join(os.path.split(os.path.abspath(__file__))[0],"filedata"),name)
    sound=pygame.mixer.Sound(fullname)
    return sound
WIDTH=700
HEIGHT=600
class Explosion(Sprite):
    def __init__(self,screen,posrect):
        super(Explosion,self).__init__()
        self.screen=screen
        self.posrect=posrect
        self.image=load_image("explosion.png")
        self.rect=self.image.get_rect()
        self.rect=self.posrect
        self.rates=0
    def update(self):
        self.rates+=1
        if self.rates>=40:
            self.kill()
class Enemy(Sprite):
    def __init__(self,screen):
        super(Enemy,self).__init__()
        self.screen=screen
        self.screenrect=self.screen.get_rect()
        self.image=load_image("eatingfood.png")
        self.rect=self.image.get_rect()
        self.rect.center=(random.uniform(50,WIDTH-50),
                          random.uniform(50,HEIGHT-50))
        self.xspeed=random.uniform(1,2)
        self.yspeed=random.uniform(1,2)
        if random.choice([True,False]):
            self.xspeed=-self.xspeed
        if random.choice([True,False]):
            self.yspeed=-self.yspeed
    def update(self):
        self.rect.centerx+=self.xspeed
        self.rect.centery+=self.yspeed
        if self.rect.top>self.screenrect.height or self.rect.bottom<0:
            self.kill()
        elif self.rect.left>self.screenrect.width or self.rect.right<0:
            self.kill()
def initmain():
    pygame.init()
    screen=pygame.display.set_mode((WIDTH,HEIGHT))
    pygame.display.set_caption("")
    gameFont=pygame.font.SysFont("宋體",26,True)
    rates=0
    score=0
    fpstime=pygame.time.Clock()
    cursor=load_image("aimcursor.png")
    cursorrect=cursor.get_rect()
    pygame.mouse.set_visible(False)
    enemys=Group()
    explosions=Group()
    sou=load_sound("sou.mp3")
    duang=load_sound("duang.mp3")
    while True:
        fpstime.tick(70)
        screen.fill((128,128,128))
        screen.blit(gameFont.render("Score: "+str(score),True,(0,0,0)),(2,2))
        rates+=1
        enemys.draw(screen)
        enemys.update()
        explosions.draw(screen)
        explosions.update()
        if rates%25==0:
            enemys.add(Enemy(screen))
        cursorrect.center=pygame.mouse.get_pos()
        screen.blit(cursor,cursorrect)
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                __import__("sys").exit()
            elif event.type==MOUSEBUTTONDOWN and event.button==1:
                cld=[]
                for sf in enemys:
                    if sf.rect.collidepoint(event.pos):
                        sf.kill()
                        score+=int(abs(sf.xspeed)+abs(sf.yspeed))
                        explosions.add(Explosion(screen,sf.rect.center))
                        cld.append(True)
                    else:
                        cld.append(False)
                if not any(cld):
                    sou.play()
                else:
                    duang.play()
        pygame.display.flip()
if __name__=="__main__":
    initmain()

三、效果展示

都是靜態的截圖展示,科能效果不是很好!動態的展示我就沒錄制視頻了哈,大家拿代碼自己玩兒哦~

1)游戲界面

Python+Pygame如何實現簡單的射擊小游戲

2)擊中效果

Python+Pygame如何實現簡單的射擊小游戲

3)+3分

Python+Pygame如何實現簡單的射擊小游戲

讀到這里,這篇“Python+Pygame如何實現簡單的射擊小游戲”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延津县| 邻水| 富锦市| 毕节市| 阿拉善右旗| 黔东| 务川| 墨脱县| 沅陵县| 灌云县| 鲁甸县| 宝坻区| 惠水县| 桓仁| 井陉县| 廉江市| 孟村| 普洱| 哈巴河县| 康保县| 鲜城| 东乌珠穆沁旗| 曲松县| 开阳县| 石门县| 辽阳县| 大石桥市| 山东| 桑日县| 邛崃市| 平湖市| 高尔夫| 类乌齐县| 定日县| 平度市| 健康| 周口市| 古浪县| 洪雅县| 晋中市| 长乐市|