用户:小小MiO1查看:0 回复:0 评论:0 创建时间:2022-07-19T11:51:00
【作品展示】

【作品介绍】
半成品,p1用wasd+e p2上下左右键加空格
【作品源代码】
# 导入pygame并加载常量
import pygame
from pygame.locals import*
import random as r
pygame.init()
# 设置窗口的宽和高
WIDTH = 480
HEIGHT = 600
ck = pygame.display.set_mode((WIDTH, HEIGHT))
class zidan(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.y = y
self.rect.centerx = x
self.speedy = -10
def update(self):
self.rect.y += self.speedy
if self.rect.bottom <=0:
self.喵()
# 设置陨石
class yunshi(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load('img\img_meteorite.png')
self.rect = self.image.get_rect()
self.rect.x = r.randrange(WIDTH-self.rect.width)
self.rect.y = r.randint(-110, -40)
self.speedy = r.randint(1, 3)
self.speedx = r.randint(-2, 1)
def update(self):
self.rect.x += self.speedx
self.rect.y += self.speedy
if self.rect.top >= HEIGHT+10 or self.rect.left <= -30 or self.rect.right >= WIDTH+30:
self.rect.x = r.randrange(WIDTH-self.rect.width)
self.rect.y = r.randrange(-100, -40)
class Plane(pygame.sprite.Sprite):
# 飞机初始化(self后面不要调参数,因为在初始化里已经有了)
def __init__(self,image,rect,center,bottom):
pygame.sprite.Sprite.__init__(self)
#飞机图片导入
self.image = image
# 获取飞机的矩形坐标
self.rect = rect
# 飞机生成在背景的2/1
self.rect.centerx = center
# 飞机生成在背景距最底下还有10个像素的地方
self.rect.bottom = bottom
# 飞机的移动
def update(self):
# 设置飞机1秒可以跑多远(初始值为0,不然早跑了)
self.speedx = 0
self.speedy = 0
#获取你的按键
keys = pygame.key.get_pressed()
# 如果按的是左键就往左边走三个像素
if keys[pygame.K_LEFT]:
self.speedx = -3
# 如果按的是右键就往右边走三个像素
if keys[pygame.K_RIGHT]:
self.speedx = 3
# 如果按的是上键就往上边走三个像素
if keys[pygame.K_UP]:
self.speedy = -5
# 如果按的是下键就往下边走三个像素
if keys[pygame.K_DOWN]:
self.speedy = 5
# 该往哪个方向走就往哪个方向走
self.rect.left += self.speedx
self.rect.bottom += self.speedy
# 碰壁判断
if self.rect.left <= 0:
self.rect.left = 0
if self.rect.right >= WIDTH:
self.rect.right = WIDTH
if self.rect.top <= 0:
self.rect.top = 0
if self.rect.bottom >= HEIGHT:
self.rect.bottom = HEIGHT
def shoot(self):
zidan1 = zidan(self.rect.centerx,self.rect.top)
all_sprite.add(zidan1)
class Plane1(pygame.sprite.Sprite):
# 飞机初始化(self后面不要调参数,因为在初始化里已经有了)
def __init__(self, image, rect, center, bottom):
pygame.sprite.Sprite.__init__(self)
#飞机图片导入
self.image = image
# 获取飞机的矩形坐标
self.rect = rect
# 飞机生成在背景的2/1
self.rect.centerx = center
# 飞机生成在背景距最底下还有10个像素的地方
self.rect.bottom = bottom
# 飞机的移动
def update(self):
# 设置飞机1秒可以跑多远(初始值为0,不然早跑了)
self.speedx = 0
self.speedy = 0
#获取你的按键
keys = pygame.key.get_pressed()
# 如果按的是左键就往左边走三个像素
if keys[pygame.K_a]:
self.speedx = -3
# 如果按的是右键就往右边走三个像素
if keys[pygame.K_d]:
self.speedx = 3
# 如果按的是上键就往上边走三个像素
if keys[pygame.K_w]:
self.speedy = -5
# 如果按的是下键就往下边走三个像素
if keys[pygame.K_s]:
self.speedy = 5
# 该往哪个方向走就往哪个方向走
self.rect.left += self.speedx
self.rect.bottom += self.speedy
# 碰壁判断
if self.rect.left <= 0:
self.rect.left = 0
if self.rect.right >= WIDTH:
self.rect.right = WIDTH
if self.rect.top <= 0:
self.rect.top = 0
if self.rect.bottom >= HEIGHT:
self.rect.bottom = HEIGHT
def shoot(self):
zidan1 = zidan(self.rect.centerx, self.rect.top)
all_sprite.add(zidan1)
# 创建对象
img = pygame.image.load('img\img_plane.png')
plane = Plane(img, img.get_rect(), WIDTH/2-10, HEIGHT-10)
plane1 = Plane1(img, img.get_rect(), WIDTH/2+10, HEIGHT-10)
all_sprite = pygame.sprite.Group()
all_sprite.add(plane)
all_sprite.add(plane1)
for i in range(8):
met = yunshi()
all_sprite.add(met)
# 设置帧速率
clock = pygame.time.Clock()
FPS = 60
# 导入背景
beijin = pygame.image.load('img\img_bg.jpg')
kg = True
while kg:
# 开启帧速率
clock.tick(FPS)
ck.blit(beijin,(0,0))
all_sprite.update()
all_sprite.draw(ck)
pygame.display.flip()
# pygame卸载1
for event in pygame.event.get():
if event.type == pygame.QUIT:
kg = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
plane.shoot()
if event.key == pygame.K_e:
plane1.shoot()
if event.key == pygame.K_ESCAPE:
kg = False
# pygame卸载2
pygame.quit()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn