【python 】pygame制作简单的游戏移动操作

效果演示:

【python 】pygame制作简单的游戏移动操作演示

完整操作视频:

【python 】pygame制作简单的游戏移动操作完全操作

1.创建游戏窗体

##main.py
import pygame,sys
class Game:
    def __init__(self):
        pygame.init()
        ##title
        pygame.display.set_caption('game')
        ##windows size
        pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
    def run(self):
        while 1:
            ##退出
            for event in pygame.event.get():
                if event.type==pygame.QUIT:
                    pygame.quit()
                    sys.exit()
            pygame.display.update()

if __name__ == '__main__':
    game=Game()
    game.run()

2.分割默认的数值到配置文件

2.1创建配置文件config.py

在这里插入图片描述

2.2 导包替换默认值

在这里插入图片描述

3.创建地图

3.1地图类
##map.py
import pygame
class Map:
    def __init__(self):
        self.display=pygame.display.get_surface()

    def run(self,dt):
        self.display.fill('green')
  
3.2实例地图,运行方法

在这里插入图片描述

4.创建角色类

4.1生成类继承pygame精灵类,定义一个(30X30)红色的的方块,设置中心坐标点
##character.py
import pygame

class Character(pygame.sprite.Sprite):
    def __init__(self,pos,group):
        super(Character, self).__init__(group)

        self.image=pygame.Surface((30,30))
        self.image.fill('red')
        self.rect=self.image.get_rect(center=pos)

4.2 在地图里面导入并应用

在这里插入图片描述

5.实现键盘方向输入操作

5.1 增加方法

在这里插入图片描述

6.实现移动

6.1 mian.py添加刷新率属性

在这里插入图片描述

6.2将刷新率应用到各项,并角色添加移动方法

在这里插入图片描述
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/910490a7f3d34bb2aa8d43691c66dcb9.png

6.3添加方向向量

![在这里插入图片描述](https://img-blog.csdnimg.cn/789886242cde4db3893e348de42dac92.png在这里插入图片描述

6.4实现移动方法

在这里插入图片描述

6.5修复对角移动比上下左右快的bug

在这里插入图片描述

7.待续…

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的用pygame制作的小游戏的代码示例,它是一个简单的随机移动的小球游戏: ```python import pygame import random # 初始化pygame pygame.init() # 创建窗口 screen = pygame.display.set_mode((500, 500)) # 创建小球 class Ball(): def __init__(self): self.x = random.randint(0, 500) self.y = random.randint(0, 500) self.radius = random.randint(10, 50) self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) self.speed_x = random.randint(-5, 5) self.speed_y = random.randint(-5, 5) def move(self): self.x += self.speed_x self.y += self.speed_y # 小球碰到边缘反弹 if self.x + self.radius > 500 or self.x - self.radius < 0: self.speed_x = -self.speed_x if self.y + self.radius > 500 or self.y - self.radius < 0: self.speed_y = -self.speed_y def draw(self): pygame.draw.circle(screen, self.color, (self.x, self.y), self.radius) # 创建多个小球 balls = [] for i in range(10): balls.append(Ball()) # 游戏循环 while True: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() # 填充背景色 screen.fill((255, 255, 255)) # 移动和绘制小球 for ball in balls: ball.move() ball.draw() # 刷新屏幕 pygame.display.update() ``` 这个游戏创建了一个Ball类来表示小球,使用随机的位置、半径、颜色和速度创建了多个小球。在游戏循环中,处理了退出事件、填充了背景色、移动和绘制了小球,并刷新了屏幕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值