基于Python實(shí)現(xiàn)射擊小游戲的制作
1.游戲畫(huà)面
1.1開(kāi)始

1.2射擊怪物

2.涉及知識(shí)點(diǎn)
1.sprites
2.pygame混音器
3.圖章
4.python基礎(chǔ)語(yǔ)法
3.代碼
3.1發(fā)射聲
from sprites import *
try:
import pygame
pygame.mixer.init()
fire_sound = pygame.mixer.Sound("audio/發(fā)射聲.wav")
cricket_sound = pygame.mixer.Sound('audio/cricket.wav')
except:
import sys
input("本程序需要pygame混音器支持以便配音,請(qǐng)先在cmd下用pip install pygame安裝此模塊。")
3.2背景
width,height = 480,360
screen = Screen()
screen.bgpic('res/ghosthouse.jpg')
screen.setup(width,height)
batimages = ['res/bat1.png','res/bat2.png']
batindex = 0
bat = Sprite(visible=False,pos=(-50-width//2,100))
bat.dx = 3
bat.dy = 0
bat.alive = True
bat.show()3.3射擊效果
def bat_alt_costume():
global batindex
batindex = 1 - batindex
bat.shape(batimages[batindex])
screen.ontimer(bat_alt_costume,90)
bat_alt_costume()
hole = Sprite(shape='res/Bullet_Hole.png',visible=False)
m1 = Mouse(1) # 鼠標(biāo)左鍵
m3 = Mouse(3) # 鼠標(biāo)右鍵
clock = Clock() # 時(shí)鐘對(duì)象
start_stamp = False
while True:
bat.move(bat.dx,bat.dy)
# 掉到地面就蓋圖章,留下尸體
if bat.ycor() < random.randint(-200,-100):
bat.dx = 0
bat.dy = 0
bat.setheading(random.randint(1,360))
bat.stamp()
bat.reborn(-500-width//2,100,3,0,delay=2)
bat.alive = True
bat.setheading(0)
# 蝙蝠碰到鼠標(biāo)指針并且按下了鼠標(biāo)左鍵
if bat.collide_mouse() and m1.down() and bat.alive:
bat.dy = -10 # 開(kāi)始往下掉
bat.alive = False
try: cricket_sound.play()
except:pass
# 到了最右邊就到最左邊去重新開(kāi)始
if bat.xcor() > width//2 :
bat.reborn(-500-width//2,100,3,0,delay=2)
bat.alive = True
bat.setheading(0)
hole.goto(mouse_position())
# 發(fā)射子彈,用蓋圖章留下彈洞,為防連續(xù)發(fā)射用了start_stamp變量
if m1.down() and not start_stamp:
hole.stamp()
start_stamp = True
try: fire_sound.play()
except: pass
# 松開(kāi)按鍵后
if not m1.down():start_stamp = False
clock.tick(60)
4.經(jīng)驗(yàn)總結(jié)
利用python各種游戲庫(kù)可以做任何小游戲
到此這篇關(guān)于基于Python實(shí)現(xiàn)射擊小游戲的制作的文章就介紹到這了,更多相關(guān)Python射擊游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)愛(ài)奇藝登陸密碼RSA加密的方法示例詳解
這篇文章主要介紹了python實(shí)現(xiàn)愛(ài)奇藝登陸的密碼RSA加密的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Python爬蟲(chóng)利用cookie實(shí)現(xiàn)模擬登陸實(shí)例詳解
這篇文章主要介紹了Python爬蟲(chóng)利用cookie實(shí)現(xiàn)模擬登陸實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-01-01
Python循環(huán)語(yǔ)句之break與continue的用法
這篇文章主要介紹了Python循環(huán)語(yǔ)句之break與continue的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10
Python Numpy實(shí)現(xiàn)計(jì)算矩陣的均值和標(biāo)準(zhǔn)差詳解
NumPy(Numerical Python)是Python的一種開(kāi)源的數(shù)值計(jì)算擴(kuò)展。這種工具可用來(lái)存儲(chǔ)和處理大型矩陣,比Python自身的嵌套列表結(jié)構(gòu)要高效的多。本文主要介紹用NumPy實(shí)現(xiàn)計(jì)算矩陣的均值和標(biāo)準(zhǔn)差,感興趣的小伙伴可以了解一下2021-11-11
解決python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了在python2中unicode()函數(shù)在python3中報(bào)錯(cuò)的解決方案,希望給大家做個(gè)參考,下次出現(xiàn)這個(gè)問(wèn)題的時(shí)候,也知道如何應(yīng)對(duì)2021-05-05
Python中條件判斷語(yǔ)句的簡(jiǎn)單使用方法
這篇文章主要介紹了Python中條件判斷語(yǔ)句的簡(jiǎn)單使用方法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08
python實(shí)現(xiàn)獲取客戶機(jī)上指定文件并傳輸?shù)椒?wù)器的方法
這篇文章主要介紹了python實(shí)現(xiàn)獲取客戶機(jī)上指定文件并傳輸?shù)椒?wù)器的方法,涉及Python實(shí)現(xiàn)C/S架構(gòu)程序與socket程序的使用技巧,需要的朋友可以參考下2015-03-03
python實(shí)現(xiàn)定時(shí)任務(wù)的八種方式總結(jié)
在日常工作中,我們常常會(huì)用到需要周期性執(zhí)行的任務(wù),下面這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)定時(shí)任務(wù)的八種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01

