精心配音的一个pygame射击小作品。以下是部分代码预览:
"""pygame雪地打蝙蝠射击游戏.py,在冰天雪地中,蝙蝠竟然不冬眠全部飞出来了,这是不合情理的,请按左右方向键头操作大炮朝天空打死这些不冬眠的奇怪蝙蝠."""
__author__ = "李兴球"
__date__ = "2018年6月"
__company__ = "风火轮编程"
import time
import pygame
from random import randint
from pygame.locals import *
class Sprite():
def __init__(self,framesRight,framesLeft,x,y,w,h,sound = None):
self.frames_right = framesRight
self.frames_left = framesLeft
self.costume_amounts = len(self.frames_left) # 造型数量
self.costume_index=0 # 造型索引号
pass
self.sound = sound # 声音
def next_costume(self):
"""切换造型"""
def move(self):
"""移动更新"""
def draw(self):
if self.xspeed>0:
screen.blit(self.frames_right[self.costume_index],self.rect)
else:
screen.blit(self.frames_left[self.costume_index],self.rect)
"""大炮类的建立"""
class Canon():
pass # 大炮类的代码最简单,如果看懂了全部代码,相信读者可以自行写出代码
"""炮弹类"""
class Bomb():
pass
pygame.init()
screen_width,screen_height=480,360
screen = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption("雪地打蝙蝠--作者:李兴球_风火轮少儿编程")
背景 = pygame.image.load("slopes.png")
frame0 = pygame.image.load("bat1-a.png")
frame1 = pygame.image.load("bat1-b.png")
framesRight = [frame0,frame1]
framesLeft = [pygame.transform.flip(f,True,False) for f in framesRight]
font = pygame.font.Font("c:/windows/fonts/msyh.ttf",30)
textImage =font.render(" ",True,(0,25,255))
(tx,ty,tw,th) = textImage.get_rect()
textpos=(screen_width//2 - tw //2,screen_height//2 - th/2 -100)
pygame.mixer.init()
吱声 = pygame.mixer.Sound("Cricket.wav")
炮声 = pygame.mixer.Sound("榴弹炮.wav")
pygame.mixer.music.load("Melee- Menu.wav")
pygame.mixer.music.play(-1,0)
# 新建一些蝙蝠bat
bat0 = Sprite(framesRight,framesLeft,100,20,40,40,吱声)
bat1 = Sprite(framesRight,framesLeft,130,40,40,40,吱声)
bat2 = Sprite(framesRight,framesLeft,40,80,40,40,吱声)
bat3 = Sprite(framesRight,framesLeft,160,120,40,40,吱声)
bat4 = Sprite(framesRight,framesLeft,320,160,40,40,吱声)
bats = [bat0,bat1,bat2,bat3,bat4 ]
大炮 = Canon("大炮.png",(200,300))
炮弹发射中= False
发射间隔 = 100
running = True
while running:
# 时不时地生成一只蝙蝠
if randint(0,1000) ==0:
randx = randint(0,screen_width)
randy = randint(0,100)
bats.append(Sprite(framesRight,framesLeft,randx,randy,40,40,吱声))
for event in pygame.event.get():
if event.type==QUIT:running = False
pass
screen.blit(背景,(0,0))
[bat.draw() for bat in bats if bat.delete==0]
大炮.draw()
if '炮弹' in locals(): 炮弹.draw()
screen.blit(textImage,textpos)
pygame.display.update()
[bats.remove(bat) for bat in bats if bat.delete==1]
pygame.quit()
print("游戏结束,谢谢")
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

