手敲Cocos简易地图编辑器:人生地图是一本不断修改的书,每一次编辑都是为了克服新的阻挡
引言
本系列是《8年主程手把手打造Cocos独立游戏开发框架》,欢迎大家关注分享收藏订阅。
在上一篇文章,笔者给大家讲解了在Cocos独立游戏开发框架中,如何自定义实现Tile地图管理器,成功地在游戏中优化加载一张特大的地图。接下来笔者为大家讲解一下游戏中地图编辑器的思路,以及它的简单实现。
本文源码和源工程在文末获取,小伙伴们自行前往。
什么是地图编辑器?
游戏中的地图编辑器是一种软件工具或功能,通常由游戏开发者,用于创建、编辑和定制游戏中的地图或关卡。地图编辑器允许玩家或设计者通过添加、移动、调整和删除游戏中的元素来自定义游戏地图,包括地形、建筑、道路、角色生成点、敌人和物品的放置位置等。
地图编辑器的主要功能
- 地形编辑:允许用户绘制、编辑和调整游戏地图的地形,如山脉、河流、森林、草地等。
- 物品和资源放置:允许用户放置和编辑游戏中的各种物品、资源和道具,例如武器、药品、宝藏等。
- 角色和敌人生成:允许用户设置玩家角色的初始位置和敌人的生成点,以及它们的行为和属性。
- 地图细节:允许用户增加地图细节,如装饰物、建筑物、环境效果、天气等,以提高地图的视觉吸引力和氛围。
- 地图导出和分享:通常,地图编辑器允许用户保存和导出他们创建的地图,以便与其他玩家共享,或者在游戏中进行测试和游玩。
- 阻挡编辑:一些禁止前往的地方需要描画阻挡。
地图编辑器的实现思路
1.打开上一节的地图工程
打开我们上一篇文章的Map工程,PS:笔者所有文章在文末都会附有源码的获取方式,大家可以自行前往获取。
2.创建MapEditor脚本
MapEditor目前包含了编辑地图阻挡信息和生成并下载对应配置文件的功能,思路非常清晰,有需要的话大家可以自行实现其他功能,例如放置怪物、道具等等其他功能。
根据地图信息将阻挡信息描绘出来:
描绘主要使用cc.Graphics
组件,该组件主要是用于绘制一些点、线、面,在地图编辑器上非常适合:
地图编辑器中的鼠标操作,左键用于画阻挡,右键用于取消阻挡,长按滑动可以连续绘制或者取消阻挡。
注意我们需要用event.stopPropagation()
阻断事件传递,避免连续绘制的时候拖动地图:
监听键盘事件,i键可以开启和关闭地图编辑器,w键可以保存当前阻挡信息并且下载(需要用浏览器运行程序)
3.编写测试代码
创建一个MapEditor地图编辑器和mapEditorNode节点,通过地图数据初始化地图编辑器:
地图数据笔者主要用了上一份工程现成的,大家可以自行实现读取和加载指定地图的地图数据:
4.测试结果演示
测试成功!按键i可以开启和关闭地图编辑器,按键w保存并下载地图数据。鼠标左键可以画阻挡,右键可以消除阻挡。地图编辑器关闭状态下才可以滑动地图。
总结
地图编辑器通常出现在各种类型的游戏中,包括沙盒游戏、策略游戏、角色扮演游戏和射击游戏等。它们为玩家提供了更大的自由度和创造性,使他们能够为游戏世界添加自己的想法和内容,从而丰富了游戏的体验和可玩性。
本文的重点内容主要有以下几点,不知道小伙伴们是否已经理解:
- 本系列是《8年主程手把手打造Cocos独立游戏开发框架》,欢迎大家关注分享收藏订阅。
- 什么是地图编辑器。
- 地图编辑器的主要功能。
- 地图编辑器的实现思路。
- 源码通过关注“亿元程序员”发送"Editor"获取。
AD:笔者已经上线的小游戏《填色之旅》《贪吃蛇掌机经典》《重力迷宫球》大家可以自行点击搜索体验。
感兴趣的小伙伴记得关注"亿元程序员"哦,一位有着8年游戏行业经验的主程。学习游戏开发不迷路。感谢您的关注,希望能给到您帮助, 也希望通过您能帮助到大家。
喜欢的可以点个赞、点个在看哦!请把该文章分享给你觉得有需要的其他小伙伴。谢谢。
相关文章:

手敲Cocos简易地图编辑器:人生地图是一本不断修改的书,每一次编辑都是为了克服新的阻挡
引言 本系列是《8年主程手把手打造Cocos独立游戏开发框架》,欢迎大家关注分享收藏订阅。 在上一篇文章,笔者给大家讲解了在Cocos独立游戏开发框架中,如何自定义实现Tile地图管理器,成功地在游戏中优化加载一张特大的地图。接下来…...
MySQL——修改数据库和表的字符编码
修改编码: (1)先停止服务 (2)修改my.ini文件 (3)重新启动服务说明: 如果是在修改my.ini之前建的库和表,那么库和表的编码还是原来的Latin1,要么删了重建,要么…...

中国人民大学与加拿大女王大学金融硕士——人生总要逼自己一把
我们每个人都是一个独特而丰富的个体,身上蕴藏着各种潜力和可能性。要不断去开发自己的潜能,不断学习和提升自己的知识和技能,保持对新知识和趋势的敏感。想要在职场上走得更远,就要逼自己一把,在职继续攻读硕士学位是…...

SAP MM学习笔记 - 错误 ME092 - Material mainly procured internally(原则上该物料只能内部调达)
购买依赖,购买发注的时候,会出一些错误或警告,碰到的时候,能解决的话,咱们就记录一下。 比如 Msg 番号 ME092 该品目原则上是内部调达。 如下图,本次出这个错误的原因是,ME51N做购买依赖&…...

【EI会议征稿】2023年智能科学与计算机工程国际学术会议(ISCE 2023)
2023年智能科学与计算机工程国际学术会议(ISCE 2023) 2023 International Conference on Intelligence Scicence andComputer Engineering 2023年11月3-5日 中国-西双版纳 迄今为止,人工智能研究在一些特殊领域取得了一定的实质性进展。然…...

Java多线程编程
目录 1、一个线程的生命周期 2、创建一个进程 2.1 Thread 方法 2.2 通过Runnable接口 2.3 通过继承Thread类本身 2.4 通过Callable和 Future创建进程 2.5 创建线程的三种方式的对比 3、线程的状态 4、线程同步 4.1 同步代码块 4.2 同步方法 5、使用wait和notify 6…...

Windows wsl2安装Ubuntu
wsl(Windows Subsystem for Linux)即适用于Windows的Linux子系统,是一个实现在Windows 10 / 11上运行原生Linux的技术。 wsl2 为其迭代版本,可以更好的在Windows上运行Linux子系统。 这里以 Windows 11 安装Ubuntu作为示例。 开启…...
csp-j模拟赛1总结
文章目录 T1T2T3结语 尾声 快csp考试了得多刷题啊… 题海战术,启动(玩OI玩的) 咳咳,进入正题. T1 T1 水题,小学数学即可搞定,话不多说,上代码: #include <iostream> using namespace std; int main(){int n,t;cin>>n>>t;bool y0;unsigned long long int nu…...

有哪些做流程图的软件?分享一些制作方法和注意事项
流程图是一种常用的图表,可以用于表示各种工作流程、系统架构、决策流程等。在现代工作生活中,制作流程图已经成为了必备的技能之一。本文将介绍一些常用的做流程图的工具,并分享一些制作方法和注意事项。 做流程图的工具 1.迅捷画图&#x…...

人工智能AI 全栈体系(一)
第一章 神经网络是如何实现的 这些年人工智能蓬勃发展,在语音识别、图像识别、自然语言处理等多个领域得到了很好的应用。推动这波人工智能浪潮的无疑是深度学习。所谓的深度学习实际上就是多层神经网络,至少到目前为止,深度学习基本上是用神…...

权限、认证与授权
权限、认证与授权 1、权限概述 (1)什么是权限 权限管理,一般指根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和…...

JAVA 的四种访问权限
在Java编程中,访问权限是非常重要的概念,因为它可以保证代码的安全性和封装性。访问权限有四种,分别是public、protected、default和private。 private:如果一个类的方法或者变量被private修饰,那么这个类的方法或者变…...

【个人博客系统网站】注册与登录 · 加盐加密验密算法 · 上传头像
【JavaEE】进阶 个人博客系统(3) 文章目录 【JavaEE】进阶 个人博客系统(3)1. 加盐加密验密算法原理1.1 md5加密1.2 md5验密1.3 md5缺漏1.4 加盐加密1.5 后端的盐值拼接约定1.6 代码实现1.6.1 加密1.6.2 验密1.6.3 测试 2. 博客…...

[H5动画制作系列] Sprite及Text Demo
参考代码: sprite.js: var canvas, stage, container; canvas document.getElementById("mainView"); function init() {stage new createjs.Stage(canvas);createjs.Touch.enable(stage);var loader new createjs.LoadQueue(false);loader.addEventListener(&q…...
目标检测YOLO实战应用案例100讲-毫米波辐射图像去模糊重建与目标检测
目录 前言 毫米波辐射图像去模糊重建研究现状 基于传统算法的图像去模糊重建...
Android10 SystemUI系列(一)概述
一、前言 由于笔者之前负责过SystemUI,之前没有抽空把很多东西整理出来,趁着最近不太忙,就慢慢动手梳理一下,顺便把自己遇到的问题也整理一下,当然自己之前主要看的是android11 之后的源码。这次主要是Android10 的源码,当然原理大差不差,也算是自己沉淀一下了 二、Sy…...

SpringMVC的常用注解,参数传递以及页面跳转的使用
目录 slf4j 常用注解 RequestMapping RequestParam RequestBody PathVariable 参数传递 首先在pom.xml配置文件中导入SLF4J的依赖 基础类型String 复杂类型 RequestParam PathVariable RequestBody 增删改查 返回值 void返回值 String返回值 modelString …...

Java“牵手”易贝商品列表数据,关键词搜索易贝商品数据接口,易贝API申请指南
ebay商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取ebay商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问ebay商城的网页来获取商品详情信息。以下是两种常用方法的介绍&…...

java中HashMap如何根据value的值去获取key是多少
在Java中,HashMap是一种基于键值对存储数据的数据结构。HashMap并没有直接提供根据value获取key的方法。但你可以通过遍历HashMap的entrySet,找到对应的value,然后获取其对应的key。 以下是一个示例代码: public <K, V> K…...
Python|OpenCV-色彩空间之RGB轨迹调试板(5)
前言 本文是该专栏的第5篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 通常情况下,在处理图像需求的时候,需要掌握多个色彩空间的知识点。现实中,我们肉眼可以看到多种颜色,色彩是人的眼睛对于不同频率的光线的不同感受,其既是客观存在的,也是主观感知的。…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...