【游戏客户端】大话slg玩法架构(全)
大家好,我是Lampard家杰~~ 今天我们继续给大家分享SLG玩法的实现架构,关于SLG玩法的介绍可以参考这篇上一篇文章:【游戏客户端】制作率土之滨Like玩法
PS:和之前一样,本文也只是分享实现思路,并不会贴具体的代码和资源哟
(一)架构总览
SLG玩法的实现思路可以划分为四个部分,分别是滚动容器基类的搭建,背景大地图的实现,建筑的生成与刷新,以及玩法优化预加载相关
OK,那么我们一步步开始与大家细细分享~~~
(二)滚动基类的实现
(1)scrollview滚动容器
首先和大家说明一下,这款SLG是一个纯界面玩法,策划大佬希望它可以像背包一样随时打开关闭,且不影响原先的游戏流程
因此在预演的时候我们有两套思路,第一是利用本身就自带滚动逻辑的scrollview实现滑动功能,然后把点击事件的监听放置在建筑上;第二是自己实现一个触摸层,滚动和点击的逻辑写在这个触摸层上,建筑仅作为显示用途
后面由于考虑到scrollview支持多方向滑动,且玩法本身的点击事件都是发生在与建筑交互的过程,因此我们采取了第一种做法
(2)尺寸与大小
关于这个容器有两个尺寸大小需要我们设置的,其一是显示的尺寸(也就是应用实机的分辨率),由于玩法需要铺满整个屏幕,因此我们需要对SV的尺寸通过setSize的接口来设置成实际的size
然后第二个就是InnerContainer的尺寸,此时肯定有部分同学不知道这InnerContainer是啥东西,遇事不决问GPT同学
Q : 什么是InnerContainer ?
A:在 Cocos2d-x 游戏引擎中,InnerContainer 是 ScrollView 控件的一个内部容器,用于容纳 ScrollView 中的子节点。ScrollView 是一个可滚动的视图容器,InnerContainer 则是这个滚动视图的内部容器,负责承载实际的滚动内容,并响应用户的滚动操作。
简单来说这个SV就好像一个望远镜,我们透过镜头可以看到前面有两棵树,而InnerContainer则是整片树林,我们可以通过调整镜头的位置来观看树林的全貌
那么这片树林究竟有多大呢?这取决于策划和美术大佬的设计啦,假设这是一个十行十列的大地图,一个地图的大小为1000像素&#