python

复制代码
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()
相关推荐
dialect_3 小时前
KMP算法
开发语言·c++·算法
总要学点什么4 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
前端精髓4 小时前
结构化输出with_structured_output(抽卡)
python·langchain
尹人入圣5 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
开开心心_Every6 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c6 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
Nuanyt6 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌6 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
2601_967987376 小时前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
超级架构师7 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core