吃豆人开发—Day1可行性分析

news/2024/5/18 14:45:19 标签: c语言, 游戏程序, 游戏策划

目录

技术

EasyX:

文件流:

随机生成:

核心功能

移动:

扣血机制:

获胜机制:

关卡设计:

游戏开始菜单设计:

游戏内暂停菜单设计:

技能设计(可选):

复活设计(可选):

数据设计:

迷宫设计:

游戏初始化设计:

胜利判断:

失败判断:

怪物移动算法:

玩家移动算法:

难度设计:

扣血算法:

触碰宝石设计:

提示设计:

设置设计:


 

这个项目是我和朋友们一起开发的,在此声明一下。

我发现CSDN没有很完整的吃豆人游戏开发流程讲解,所以在此我将完整记录每日开发进度,希望给学完C语言的朋友们一些练习的项目。

技术

EasyX:

计划使用EasyX制作游戏界面和安放各种元素贴图

文件流:

计划使用文件流做出排行榜功能

随机生成:

目前考虑使用随机生成技术用来制作大地图以及怪物的行动轨迹

核心功能

移动:

被键盘输入而控制的玩家移动

根据随机生成的怪物移动

扣血机制:

当玩家与怪物产生触碰时,玩家减少生命值

获胜机制:

玩家拾取到足够数量的宝石碎片

玩家到达出口点

关卡设计:

地图较小建议手动设计地图,地图较大建议随机生成

获胜所需的宝石较多建议铺满全局,较少建议随机生成

当玩家达到获胜条件下进入出口时,将会进入下一关(建议设计成手动而非自动)

游戏开始菜单设计:

开始新游戏、继续游戏、游戏设置(音量调节、难度选择、操作键位)、排行榜、退出游戏(是否退出)

游戏内暂停菜单设计:

继续游戏、游戏设置、重新开始、保存游戏、回到主菜单

技能设计(可选):

玩家技能躲避防御为主

怪物技能追击为主

复活设计(可选):

玩家死亡后并不会结束游戏

玩家在规定复活次数下获胜也算作胜利(有多次复活建议扣分)

玩家死亡后会继承上次死亡时所拥有的所有宝石(当复活次数只有1次时也可折半)

数据设计:

迷宫设计:

Int labyrinth[ROW][COL];

不同的数值代表不同的元素(需在后期同意决定)

游戏初始化设计:

void initgame();

srand(time(NULL));

固定玩家的生成点

固定或者随机怪物的生成点(建议一开始距离玩家较远)

随机宝石的生成点

固定出口点位

胜利判断:

可与失败组成一个函数

Int is_win(传入坐标,已获得的宝石数,复活次数*生命值)

如果前两条达成,后一条没达成,返回1(胜利)

当玩家拥有足够多的宝石数量且位于出口点则获胜

或者玩家拥有超级多的宝石数量(比如全部)也可获胜

或者位于出口点就可获胜,得分由宝石数量决定

失败判断:

同上,仅仅达成最后一条,返回-1(失败)

若都不是,返回0(游戏尚未结束)

当玩家无复活次数且此时玩家的生命值归于0则失败

怪物移动算法:

void monsterMove(传入地图指针,传入怪物当前坐标)

根据随机处理对怪物坐标进行+1或-1处理

对怪物的移动进行随机处理,对随机数进行模4处理,0,1,2,3代表不同方向

预计方向倘若没有墙体,则进行移动,否则返回上一步重新设置随机数

需要设置帧率,以避免怪物移动过快

玩家移动算法:

void playerMove(地图指针,当前坐标)

根据conic.h和_kbhit()和_getch()判断输入的按键

玩家通过键盘输入wasd或者WASD或者上左下右键判断移动方向

难度设计:

可通过结构体指针修改玩家结构体和怪物结构体

可选择降低玩家基础属性(比如生命值)

可选择增加怪物基础属性(比如数量,移动速度,技能)

可选择提高游戏获胜条件

扣血算法:

当玩家的坐标p.x和p.y等于怪物的坐标m.x和m.y

或者像素点p.x位于怪物的左右边界内,p.y位于怪物的上下边界内

当玩家所处点位与怪物重合时,玩家生命值减少

或者判断玩家的上下左右四个像素点位于怪物矩形内部,则扣血

触碰宝石设计:

当玩家的坐标labyrinth[p.x,p.y]==宝石属性时,得分增加,修改宝石属性

当玩家触碰宝石时,将宝石的属性修改成空地的属性,然后得分增加

当怪物触碰宝石时,使用EasyX先画宝石后画怪物来覆盖掉宝石

提示设计:

分别建立打印函数或者输出IMAGE img图片

获胜条件达成提示

受伤提示

残血提示(屏幕周围泛红光)

胜利提示

失败提示

设置设计:

多媒体接口头文件:mmsystem.h

加载静态库:#pragma comment(lib,”winmm.lib”)

播放音乐:mciSendString(open,”....”);

FILE fp=fopen(“.....”,‘w’)

音量调节

难度选择

操作键位

排行榜

保存游戏


http://www.niftyadmin.cn/n/5115348.html

相关文章

ES(elasticsearch) - kibana导出csv

前言 主要记录使用Kibana导出查询结果的csv文件,以及相关的导出配置 1.条件过滤 Discover -> 选择索引模式 -> 选择要显示字段 -> 输入你的查询条件 -> 选择时间范围 -> 点击保存 2.下载 management> Kibana > Reporting 中下载 3.常见问题…

【Java集合类面试八】、 介绍一下HashMap底层的实现原理

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官: 介绍一下HashMap底层的…

雅可比行列式:它究竟是如何工作的?

雅可比行列式:它究竟是如何工作的? 一、说明 关于雅各比,如果你熟悉任何多变量微积分,你可能听说过这个术语。老实说,我第一次了解雅可比矩阵时,我根本不明白它是如何工作的,但是知道雅可比矩阵…

手写SVG图片

有时候QT中可能会需要一些简单的SVG图片,但是网上的质量参差不齐,想要满意的SVG图片,我们可以尝试直接手写的方法. 新建文本文档,将以下代码复制进去,修改后缀名为.svg,保存 <?xml version"1.0" encoding"utf-8"?> <svg xmlns"http://www…

订水商城H5实战教程-02系统登录

目录 1 创建数据源2 创建自定义应用3 创建全局变量4 实现登录功能5 控制弹窗是否显示6 最终的效果 上一篇我们分析了订水商城的功能&#xff0c;功能分析好了之后&#xff0c;就需要开发功能。用户登录商城的第一步就是进行登录&#xff0c;登录的时候需要同意用户协议&#xf…

报错:The supplied javaHome seems to be invalid. I cannot find the java executable

AS 升级遇到的问题 问题 升级 Android Studio&#xff0c;碰到无法检测到 java The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: D:\Program Files\Android\Android Studio\jre\bin\java.exe 然后去网上找解决思路。 终于…

k8s简介以及各个组件

Kubernetes 概述 1、K8S 是什么&#xff1f; K8S 的全称为 Kubernetes (K12345678S)&#xff0c;PS&#xff1a;“嘛&#xff0c;写全称也太累了吧&#xff0c;不如整个缩写”。 作用&#xff1a; 用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用…

【保姆级教程】:docker搭建MongoDB三节点副本集

容器可以理解为一个进程&#xff0c;镜像是把环境&#xff0c;组件等都配置好&#xff0c;运行成容器的&#xff0c;容器里面运行服务&#xff0c;也可以说是一个进程。镜像是模板&#xff0c;镜像是实例。 一个镜像可以创建多个实例。也就是多个容器&#xff0c;容器之间相互…