pygame 编写的小游戏

pygame 编写的小游戏
1.导入pygame及其他模块

import sys
import threading
import pygame

2建立使用类-人`

class ClassPeople:
    colunm=0
    row=0
    speed=[0.1,0.1]
    ball=pygame.image.load('D:\\图片\\黄色.PNG')
    ballrect=ball.get_rect()
    def __init__(self, c,r,s,s1):
        self.colunm=c
        self.row=r
        self.ball=pygame.image.load(s)
        self.speed=s1
        self.ballrect=self.ball.get_rect()
        self.ballrect.left=r
        self.ballrect.top=c
    def PeopleMove(self):
        # global ballrect
        # self.ballrect = self.ballrect.move(self.speed)
        self.ballrect.left=self.ballrect.left+self.speed[0]
        self.ballrect.top=self.ballrect.top+self.speed[1]
        if self.ballrect.left < 0 or self.ballrect.right > width:
            self.speed[0] = -self.speed[0]
        if self.ballrect.top < 0 or self.ballrect.bottom > height:
            self.speed[1] = -self.speed[1]

3.建立实用类-狗`

class ClassDOG:
    colunm=0
    row=0
    speed=[0.1,0.1]
    ball=pygame.image.load('D:\\图片\\黄色.PNG')
    ballrect=ball.get_rect()
    def __init__(self, c,r,s,s1):
        self.colunm=c
        self.row=r
        self.ball=pygame.image.load(s)
        self.speed=s1
        self.ballrect=self.ball.get_rect()
        self.ballrect.left=r
        self.ballrect.top=c
    def DOGMove(self):
        #global ballrect
        #self.ballrect = self.ballrect.move(self.speed)
        self.ballrect.left=self.ballrect.left+self.speed[0]
        self.ballrect.top=self.ballrect.top+self.speed[1]
        if self.ballrect.left < 0 or self.ballrect.right > width:
            self.speed[0] = -self.speed[0]
        if self.ballrect.top < 0 or self.ballrect.bottom > height:
            self.speed[1] = -self.speed[1]

4.将两个类实例化

#实列化人   
numpeople =[]
for item in range(10):
    numpeople.append(ClassPeople(item*50+100,999+item*4,'D:\\图片\\绿色.PNG',[1+item*0.5,1+item*0.1]))
for item in range(10):
    print(numpeople[item])
    print('---------'+str(numpeople[item].colunm))    
#实例化狗

numDOG =[]
for item in range(10):
    numDOG.append(ClassDOG(item*50+1,1,'D:\\图片\\黄色.PNG',[1.5+item*0.5,1.0+item*0.1]))
for item in range(10):
    print(numDOG[item])
    print('---------'+str(numDOG[item].colunm))

5.调用类中move函数。使用for_in_循环来实现多个同类的位置移动

def gamepeople():
    for item in range(len(numpeople)):
        numpeople[item].PeopleMove()   
def gamedog():
    for item in range(10):
        numDOG[item].DOGMove()

6.类的消失。当人类和狗类左上角的位置坐标在±5内,就讲人类从numpeople =[]
移除。

def dis( num ):
    dispeople=[]
    for item in range(num):
        for ite in range(10):
            a=numpeople[item].ballrect.left-numDOG[ite].ballrect.left
            b=numpeople[item].ballrect.top-numDOG[ite].ballrect.top
            if a<5 and a>-5 and b<5 and b>-5:
                if dispeople.count(numpeople[item])==0:
                    dispeople.append(numpeople[item])                          
    for item in range(len(dispeople)):
        numpeople.remove( dispeople[item])    
    print(dispeople)

7.主函数代码

def main(a):   
    a+=1
    thread=[]
    thred_my=threading.Thread(target=gamepeople())
    thred_my1 = threading.Thread(target=gamedog())
    thred_my.start()
    thred_my1.start()

    screen.fill(color)
    for item in range(len(numpeople)):  
        screen.blit(numpeople[item].ball, numpeople[item].ballrect)
    for item in range(10):  
        screen.blit(numDOG[item].ball, numDOG[item].ballrect)
    pygame.display.flip()
    dis( len(numpeople))
    print(len(numpeople))
    if len(numpeople)==0:#a>1800 or 
        event.type=pygame.QUIT#停止游戏
    print(a)
    return(a)在这里插入代码片

8.pygame初始化及参数设置

a=0
pygame.init()
size=width,height=1080,960
screen=pygame.display.set_mode(size)
color=(100,100,2)
clock=pygame.time.Clock()
while True:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            sys.exit()
    a=main(a)
pygame.quit()

9.效果图
在这里插入图片描述

Pygame是一种用于制作2D游戏的Python模块。通过Pygame,您可以使用Python编写游戏并使用Python中的其他功能(如列表、字典等)进行处理。在Pygame中,您可以使用图像、声音和键盘输入等多种元素来创建游戏。 制作马里奥小游戏的步骤如下: 1. 导入Pygame模块 2. 设置游戏窗口大小 3. 加载游戏所需的图像和声音资源 4. 设计游戏角色(如马里奥、敌人、障碍物等) 5. 编写角色的移动和碰撞检测函数 6. 编写游戏主循环,处理游戏事件、更新角色位置、绘制角色等 7. 设置游戏结束条件,并在游戏结束时显示相关信息 以下是一个简单的马里奥小游戏代码示例(仅供参考): ``` import pygame # 初始化Pygame模块 pygame.init() # 设置游戏窗口大小 win_width = 640 win_height = 480 win = pygame.display.set_mode((win_width, win_height)) # 加载游戏所需的图像和声音资源 bg_img = pygame.image.load("background.jpg") mario_img = pygame.image.load("mario.png") jump_sound = pygame.mixer.Sound("jump.wav") # 定义马里奥的初始位置和速度 mario_x = 50 mario_y = 350 mario_speed_x = 5 mario_speed_y = 0 # 定义游戏结束标志和得分 game_over = False score = 0 # 游戏主循环 while not game_over: # 处理游戏事件 for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True elif event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: # 处理马里奥跳跃事件 mario_speed_y = -10 jump_sound.play() # 更新马里奥位置和速度 mario_x += mario_speed_x mario_y += mario_speed_y mario_speed_y += 1 # 检测马里奥是否碰到窗口边缘或地面 if mario_x < 0 or mario_x > win_width or mario_y > win_height: game_over = True # 绘制游戏元素 win.blit(bg_img, (0, 0)) win.blit(mario_img, (mario_x, mario_y)) pygame.display.update() # 显示游戏结束信息并退出游戏 font = pygame.font.SysFont(None, 36) text = font.render("Game Over! Score: " + str(score), True, (255, 255, 255)) win.blit(text, ((win_width - text.get_width()) // 2, (win_height - text.get_height()) // 2)) pygame.display.update() pygame.time.wait(3000) pygame.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a7660331a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值