用户:
十四个查看:0 回复:0 评论:0 创建时间:2023-06-03T16:57:58
【作品展示】

【作品介绍】
欢迎来玩游戏
【作品源代码】
import pygame
from pygame.locals import *
import random as r
import pygame.mixer as pm
#===设置一些出始画属性和方法===================
pygame.init()
pm.init()
pm.music.load('mic\\BGmusic.mp3')
pm.music.play(loops=-1)
shootSound = pygame.mixer.Sound('mic\\shoot.ogg')
hitSound = pygame.mixer.Sound('mic\\hit.wav')
FPS = 60
WIDTH, HEIGHT = 480, 600
#飞机fj =
class Plane(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self. image = pygame.image.load('img\\img_plane.png')
self.rect = self. image.get_rect()
self.rect.centerx = WIDTH // 2
self.rect.bottom = HEIGHT -50
self.shootCD = 0.1#mbuh
self.shootTime = 0
def update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] or keys[pygame.K_a]:
if self.rect.left > 0:
self.rect.left -= 5
else:
self.rect.left = 0
if keys[pygame.K_RIGHT] or keys[pygame.K_a]:
if self.rect.right < WIDTH:
self.rect.centerx += 5
else:
self.rect.right = WIDTH
if keys[pygame.K_SPACE]:
if self.shootTime >= self.shootCD:
self.shoot()
#self.shoot()
self.shootTime = 0
else:
self. shootTime += 1/FPS
def shoot(self):
bullet = Bullet(self.rect.centerx - 10, self.rect.top)
allSprites.add(bullet)
allBulltes.add(bullet)
bullet = Bullet(self.rect.centerx + 10, self.rect.top)
allSprites.add(bullet)
allBulltes.add(bullet)
shootSound.play()
#====ysl=====================================
class Meteorite(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self. image = pygame.image.load('img\\img_meteorite_{:02d}.png'.format(r.randint(1,8)))
self.rect = self. image.get_rect()
self.rect.centerx = r.randint(0,WIDTH)
self.rect.bottom = -50
self.speedX = r.randint(-5,5)
self.speedY = r.randint(1,5)
def update(self):
self.rect.centerx += self.speedX
self.rect.centery += self.speedY
if self.rect.right < 0 or self.rect.top > HEIGHT or self.rect.left > WIDTH:
self.__init__()
#====zdl===============
class Bullet(pygame.sprite.Sprite):
def __init__(self,x,y):
pygame.sprite.Sprite.__init__(self)
self. image = pygame.image.load('img\\img_bullet.png')
self.rect = self. image.get_rect()
self.rect.centerx = x
self.rect.bottom = y
def update(self):
self.rect.y -= 8
#===设置背(景和
bg = pygame.image.load('img\\img_bg.jpg')
screen = pygame.display.set_mode((WIDTH, HEIGHT))
#===识立画对像==========================
allSprites = pygame.sprite.Group()
allMeteorites = pygame.sprite.Group()
allBulltes = pygame.sprite.Group()
plane = Plane()
allSprites.add(plane)
for i in range(10):
meteorite = Meteorite()
allSprites.add(meteorite)
allMeteorites.add(meteorite)
#===游戏主循环开始==================
clock = pygame.time.Clock()
running = True
while running:
clock.tick(FPS)
screen.blit(bg,(0,0))
allSprites.draw(screen)
allSprites.update()
hit1 = pygame.sprite.groupcollide(allMeteorites,allBulltes,True, True)
for i in hit1:
meteorite = Meteorite()
allSprites.add(meteorite)
allMeteorites.add(meteorite)
hit2 = pygame.sprite.spritecollide(plane, allMeteorites, True)
if hit2:
running = False
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
pygame.quit()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn