利用python制作自己的小游戏,超简教程

懒得客套,直接步入主题

首先,利用python来做游戏需要用到python中的pygame模块,这个我们在终端cmd中安装

输入:pip install pygame 安装好后我们进入pycharm查询我们有的模块(打开路径:文件-设置)

利用python制作自己的小游戏,超简教程

可以看到我们软件包中有pygame,安装好后我们在python中输入

#调用模块
import pygame

然后我们开始搭建场景

def start():
    #游戏页面大小
    screen = pygame.display.set_mode((1200, 700), 0, 32)
    #游戏名称
    pygame.display.set_caption('靓富打僵尸')
    #调用背景 load后面是你的背景文件路径
    background = pygame.image.load("./daoju/background.png").convert()
    # 循环每个事件
    while True:
        screen.blit(background, (0, 0))
        # 这个不用管,功能为刷新页面
        pygame.display.update()
if __name__ == '__main__':
    start()

我们运行试试

利用python制作自己的小游戏,超简教程

接下来我们导入人物这部分,在调用模块中导入pygame.locals模块(这个模块的作用是使用各种常量,人物行走就会用到)

#在首行调用模块中添加
from pygame.locals import *

在while循环中添加检测鼠标和键盘事件

        # 判断是否退出
        for event in pygame.event.get():
            if event.type == QUIT:
                print("exit")
                exit()
            elif event.type == KEYDOWN:
                keys_pressed = pygame.key.get_pressed()
                # 调用键盘,其中K_a中的a可以为任何数(看个人喜好)而后面的left为向左移动
                if event.key == K_a or event.key == K_LEFT:
                    print('left')
                # 一样
                elif event.key == K_d or event.key == K_RIGHT:
                    print('right')
                elif event.key == K_w or event.key == K_UP:
                    print('up')
                elif event.key == K_s or event.key == K_DOWN:
                    print('down')
               # 这个为射击参数,对接玩家子弹参数
                elif event.key == K_j:
                    print('j')

运行如下

利用python制作自己的小游戏,超简教程

我们现在做人物的相关参数

新建个python文件 名为plane

import pygame

#定义玩家的相关数据
class HeroPlane(object) :
   def __init__(self, screen) :
        # 玩家默认位置
       self.x = 50
       self.y = 445
        # 窗口与玩家
       self.screen = screen
       self.image_name = "./rwu/hero.gif"
       self.image = pygame.image.load(self.image_name).convert()
    #定义行走变量
   def display(self):
       self.screen.blit(self.image, (self.x, self.y))
       # 移动的速度   xy为方向根据自己游戏画面调
   def move_left(self):
       self.x -= 10
   def move_right(self):
       self.x += 10
   def move_up(self):
       self.y -= 10
   def move_down(self):
       self.y += 10

然后我们回到zhuyemian文件中

调用模块的地方中输入调用plane文件

#调用模块
import pygame
import time
from pygame.locals import *
#调用plane文件
from plane import *

回到 def start(): 中创建一个人物对象

    #创建人物对象
    hero_plane = HeroPlane(screen)

然后我们在while键盘参数中对接我们人物的各个参数

    # 循环每个事件
    while True:
        screen.blit(background, (0, 0))
        # 这个不用管,功能为刷新页面
        pygame.display.update()
        #连接plane(新添加)
        hero_plane.display()
        # 判断是否退出
        for event in pygame.event.get():
            if event.type == QUIT:
                print("exit")
                exit()
            elif event.type == KEYDOWN:
                keys_pressed = pygame.key.get_pressed()
                # 调用键盘,其中K_a中的a可以为任何数(看个人喜好)而后面的left为向左移动
                if event.key == K_a or event.key == K_LEFT:
                    print('left')
                    #(新添加)
                    hero_plane.move_left()
                # 一样
                elif event.key == K_d or event.key == K_RIGHT:
                    print('right')
#(新添加)
                    hero_plane.move_right()
                elif event.key == K_w or event.key == K_UP:
                    print('up')
#(新添加)
                    hero_plane.move_up()
                elif event.key == K_s or event.key == K_DOWN:
                    print('down')
#(新添加)
                    hero_plane.move_down()
               # 这个为射击参数,对接玩家子弹参数
                elif event.key == K_j:
                    print('j')
#(新添加)
        pygame.display.update()

运行的时候会有人物闪烁的问题

导入import time 然后再def start 中添加

clock = pygame.time.Clock()

再在while循环中添加刷新帧率

#刷新帧率 60 为60帧
clock.tick(60)

我们运行看看

利用python制作自己的小游戏,超简教程

完美实现人物移动

大家总说来日方长,殊不知世事无常,珍惜当下,做自己想做的事

好啦,第一篇就讲完啦,后续更新子弹和敌人模块(不是不想一次写完,真的太累了这篇有4000字左右,这个游戏我早在一个月前左右就写好了,现在回去看,有些有啥作用我自己都忘记了)

有不懂的评论或者私信

觉得对你有帮助的小伙伴评论下,我就喜欢别人认可我做的东西

Original: https://blog.csdn.net/m0_46540496/article/details/121378903
Author: 「已注销」
Title: 利用python制作自己的小游戏,超简教程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/730132/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • URLLC超低时延解决方案和关键技术

    【摘 要】介绍了5G URLLC超低时延解决方案架构,提出了URLLC超低时延的边缘计算、最优路径协同、用户面加速、端到端时延监控等关键技术,并分析了5G应用对超低时延的具体要求,…

    Python 2023年10月8日
    030
  • 带你从0到1开发AI图像分类应用

    摘要:通过一个垃圾分类应用的开发示例,介绍AI Gallery在AI应用开发流程中的作用。 现如今,人工智能(AI)技术在计算机领域内,得到了越来越广泛的重视,并在各行各业中得到应…

    Python 2023年10月24日
    044
  • Scrapy 基本使用总结

    一、Scrapy框架安装 二、创建Scrapy项目 三、创建爬虫文件 四、运行spider文件 五、各个组件功能 1、spider目录下的文件 2、settIngs.py配置文件 …

    Python 2023年10月3日
    037
  • Django channel 使用说明 — 以聊天室为例(2)

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

    Python 2023年8月6日
    054
  • 用python开发一个益智游戏,没事就锻炼锻炼自己的方向感

    兄弟们,爬虫爬多了,对身体不好,也要考虑劳逸结合,偶尔换换口味。 今天来感受一下用python来开发一款益智游戏,来吃够! ; 准备一下 软件环境,咱们还是用python和pych…

    Python 2023年11月9日
    042
  • Django管理后台

    目录 第一种注册model的方法 认识后台管理页面 第二种注册model的方法 ModelAdmin的常用属性 利用actions丰富动作工具栏 利用list_display修改显…

    Python 2023年8月3日
    054
  • Pytest学习-yield后置

    Pytest学习-yield后置 原创 我的事说来话长2022-08-05 20:12:29博主文章分类:Pytest ©著作权 文章标签 pytest 文章分类 Python 后…

    Python 2023年5月24日
    080
  • Django admin实现TextField字段changelist页面换行、空格正常显示

    问题背景 在Django后台的使用admin view绑定model后,可以很方便的通过网页对底层的数据表进行增删查改操作。在实际工作中有一些数据字段会存储了json或者其他包含换…

    Python 2023年5月24日
    0100
  • 【Pandas 数据分析 1】快速入门

    本专栏将详细介绍 Python 常用库 Pandas 的用法 1.1 读取数据 1.2 查看数据 1.3 验证数据 1.4 建立索引 1.5 数据选取 1.6 排序 1.7 分组聚…

    Python 2023年8月21日
    037
  • python用django来进行wed开发

    1.建立虚拟环境 在该文件夹下,目录里运行cmd ,输入python -m venv ll_env(治理venv 是一个模块,使用它创建一个名为ll_env的虚拟环境) 2.激活虚…

    Python 2023年8月5日
    047
  • VS2022永久配置OpenCV4.6.0的方法

    OpenCV环境永久配置方法 1、visual studio 2022的下载 2、OpenCV的下载 进入OpenCV官网Home – OpenCV,下载完解压安装后是…

    Python 2023年9月27日
    062
  • Redis字符串、hash、列表方法使用以及Redis管道与Django集成Redis

    目录标题 一、Redis字符串操作 二、Redis-hash操作 三、Redis列表操作 四、Redis管道 五、Redis其他操作 六、Django中集成Redis 七、Cele…

    Python 2023年8月6日
    044
  • 链表的基本操作

    任务描述本关任务:给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在指…

    Python 2023年10月8日
    042
  • pandas 数据处理汇总

    文章目录 * – 数据处理 – + 导入输出文件 + 查询数据 + 增加列 + 筛选列 + 删除列 + 删除行 + 删除空值行 + 插入行 + 修改列名 +…

    Python 2023年8月6日
    049
  • pytest:如何调用 pytest

    指定要运行的测试 pytest 支持多种从命令行运行和选择测试的方法。 模块中运行测试( .py文件 ) pytest sample_class_test.py 在目录中运行测试 …

    Python 2023年9月12日
    053
  • Scrapy分布式爬虫实战(一):Scrapy基础知识

    是一个非常优秀的爬虫框架,通过 框架,可以非常轻松地实现强大的爬虫系统,我们只需要将精力放在抓取规则以及如何处理抓取的数据上即可,本章介绍 的基础架构、安装以及 Scrapy Sh…

    Python 2023年10月1日
    043
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球