import pygame, random # 加载库
from pygame.locals import *
pygame.init()
pygame.display.set_caption("星际探险")
canvas = pygame.display.set_mode((700, 500))
bg=pygame.image.load("bg.png")
bg=pygame.transform.scale(bg,(700,500))
score=0
i=0
class Enemy(pygame.sprite.Sprite):
i=i+1
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load("enemy6.png")
self.image=pygame.transform.scale(self.image,(100,100))
self.rect=self.image.get_rect()
self.rect.center=(0,0)
self.x=[100,200,300,400,500]
self.y=[100,200,300,400,500]
self.speed=[1,0]
def xianshi(self):
canvas.blit(self.image,self.rect)
def move(self):
self.rect=self.rect.move(self.speed)
if self.rect.left<=0 or self.rect.right < 0 or self.rect.right >= 700:
self.speed[0]=-self.speed[0]
hesu=25
Hej=pygame.sprite.Group()
for i in range(5):
for j in range(5):
het=Enemy()
het.rect.center=(het.x[i],het.y[j])
Hej.add(het)
class Hero(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load("hero.png")
self.image=pygame.transform.scale(self.image,(30,100))
self.rect=self.image.get_rect()
self.rect.center=(100,100)
def xianshi(self):
canvas.blit(self.image,self.rect)
xnb=Hero() #实现了从类到对象的转变
class Zd(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load("zd.png")
self.image=pygame.transform.scale(self.image,(20,40))
self.rect=self.image.get_rect()
self.rect.center=(100,100)
self.speedx=0
self.speedy=-30
self.speed=[self.speedx,self.speedy]
def xianshi(self):
canvas.blit(self.image,self.rect)
def move(self):
self.rect=self.rect.move(self.speed)
ZJ=pygame.sprite.Group()
def handleEvent(): # 点叉叉关闭游戏界面
for event in pygame.event.get():
if event.type == QUIT:
quit()
i=0
score=0
while True:
i=i+1
canvas.fill((255, 255, 255))
canvas.blit(bg,(0,0))
xnb.xianshi()
xnb.rect.center=pygame.mouse.get_pos()
# xnb.rect.left,xnb.rect.top=pygame.mouse.get_pos()
key=pygame.key.get_pressed()
if key[K_SPACE]:
zd=Zd()
zd.rect.center = xnb.rect.center
if i%30==0:
ZJ.add(zd)
for z in ZJ:
z.xianshi()
z.move()
for h in Hej:
h.xianshi()
h.move()
if pygame.sprite.groupcollide(ZJ,Hej,1,1):
hesu-=1
score+=1
print("您的分数:"+str(score))
print("剩下河豚:"+str(hesu))
handleEvent()
pygame.display.update()
python
Chinese Red Guest2024-12-24 22:44
相关推荐
acanab几秒前
VScode python插件阿蒙Amon2 分钟前
C#每日面试题-Array和ArrayList的区别SmartRadio19 分钟前
ESP32添加修改蓝牙名称和获取蓝牙连接状态的AT命令-完整UART BLE服务功能后的完整`main.c`代码且去填词33 分钟前
Go 语言的“反叛”——为什么少即是多?知乎的哥廷根数学学派1 小时前
基于生成对抗U-Net混合架构的隧道衬砌缺陷地质雷达数据智能反演与成像方法(以模拟信号为例,Pytorch)WangYaolove13141 小时前
Python基于大数据的电影市场预测分析(源码+文档)知乎的哥廷根数学学派1 小时前
基于自适应多尺度小波核编码与注意力增强的脉冲神经网络机械故障诊断(Pytorch)yeziyfx2 小时前
kotlin中 ?:的用法charlie1145141912 小时前
嵌入式的现代C++教程——constexpr与设计技巧古城小栈2 小时前
Rust 网络请求库:reqwest