【游戏客户端】大话slg玩法架构(一)滚动基类

【游戏客户端】大话slg玩法架构(一)滚动基类

      大家好,我是Lampard家杰~~ 今天我们兑现诺言,给大家分享SLG玩法的实现j架构,关于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像素,那么这个InnerContainer的大小就是10000 * 10000了

      我们可以通过setInnerContainerSize的接口设置其大小

(3)跳转与滚动

      那此时们需要实现跳转和滚动功能就很简单了,比如说我们想跳转到第二列第一行的地图块位置(2,1),按上述的地图尺寸假设值,那么只需要设置innerContainer的位置为(- 2 * 1000, - 1 * 1000)即可

    为什么是负数呢?是因为SV实际是不动的,而0.0是innerContainer的左下角位置,因此我们SV“镜框”不动的情况下,想看右上方的内容,那只能让"树林“往坐下角移动了

    因此我们就可以很简单的包装一个jumpTo接口实现跳转功能

-- 界面跳转至某一地图块
function jumpTo(Idx, Idy)......local PanelPosX = -Idx * 地块长度local PanelPosY = -Idy * 地块高度self.SV:getInnerContainer():setPosition(PanelPosX, PanelPosY)......
end

      而滚动就更简单了~~比如说需要从(1.1)滚动至(1. 2),我们掐指一算发现只需要把    innerContainer往左移动1000像素,那么我们就可以启用一个计时器,让innerContainer每帧移动1000 / 移动需要的帧数即可

 

      好啦~~滚动基类的介绍大概就到这里,下一篇文章会介绍这个背景地图的实现

      感谢阅读,记得点赞和关注!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习统计学基础 - 最大似然估计

最大似然估计(Maximum Likelihood Estimation, MLE)是一种常用的参数估计方法,其基本原理是通过最大化观测数据出现的概率来寻找最优的参数估计值。具体来说,最大似然估计的核心思想是利用已知的样本结果,反推最有可能…

binutils ifunc 流程图

上图是x86 binutils 的流程图。 函数说明_bfd_x86_elf_link_hash_table_createInit local STT_GNU_IFUNC symbol hash.elf_x86_64_check_relocsAdd support for handling STT_GNU_IFUNC symbols_bfd_elf_x86_get_local_sym_hashFind and/or create a hash entry for local sym…

Leetcode—97. 交错字符串【中等】

2024每日刷题&#xff08;140&#xff09; Leetcode—97. 交错字符串 2d动规实现代码 class Solution { public:bool isInterleave(string s1, string s2, string s3) {int m s1.length();int n s2.length();int len s3.length();if(m n ! len) {return false;}vector<…

SpringBoot日常:封装rabbitmq starter组件

文章目录 逻辑实现RabbitExchangeEnumRabbitConfigRabbitModuleInfoRabbitModuleInitializerRabbitPropertiesRabbitProducerManagerPOM.xmlspring.factories 功能测试application.yml配置生产者&#xff1a;消费者&#xff1a;测试结果&#xff1a;总结 本章内容主要介绍编写一…

stm32 USB CDC类虚拟串口初体验

1. 目标 本文介绍CubeMX生成 USB CDC类虚拟串口工程的操作步骤。 2. 配置流程 时钟配置 usb外设需要48M时钟输入 stm32405使用外部时钟源HSE,否则配不出来48M时钟stm32h750内部有一个48M时钟 stm32f405时钟配置 stm32h750时钟配置 Connectivity ->USB_OTG_FS 和 Connect…

C++初阶:从C过渡到C++的入门基础

✨✨所属专栏&#xff1a;C✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ C发展历史 C的起源可以追溯到1979年&#xff0c;当时BjarneStroustrup(本贾尼斯特劳斯特卢普&#xff0c;这个翻译的名字不同的地⽅可能有差异)在⻉尔实验室从事计算机科学和软件⼯程的研究⼯作。⾯对项⽬中复…

JavaDS —— 顺序表ArrayList

顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组上完成数据的增删查改。在物理和逻辑上都是连续的。 模拟实现 下面是我们要自己模拟实现的方法&#xff1a; 首先我们要创建一个顺序表&#xff0c;顺序表…

关于Mars3d的入门

关于Mars3d的入门 一. 创建地球&#xff0c;加载瓦片图层二 矢量图层2.1 常用矢量图层2.1.1 GraphicLayer2.1.2 GeoJsonLayer 2.2 矢量图层的点击事件 三 矢量数据四 事件机制 一. 创建地球&#xff0c;加载瓦片图层 // 1. 创建地球let map new mars3d.Map("mars3dContai…

从零开始做题:My_lllp

题目 给出一张png图片 解题 ┌──(holyeyes㉿kali2023)-[~/Misc/题目/zulu/My_lllp] └─$ python2 lsb.py extract my_lllp.png out.txt my_lllp [] Image size: 1080x1079 pixels. [] Written extracted data to out.txt. ┌──(holyeyes㉿kali2023)-[~/Misc/题目/zul…

简易Qt串口助手

界面显示如下 关于串口类 初始化 设置串口号 设置波特率 打开串口 发送按钮功能实现 接收数据显示在控件中 关闭串口

使用 MFA 保护对企业应用程序的访问

多因素身份验证&#xff08;MFA&#xff09;是在授予用户访问特定资源的权限之前&#xff0c;使用多重身份验证来验证用户身份的过程&#xff0c;仅使用单一因素&#xff08;传统上是用户名和密码&#xff09;来保护资源&#xff0c;使它们容易受到破坏&#xff0c;添加其他身份…

springboot非物质文化遗产管理系统-计算机毕业设计源码16087

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

前端开发过程中经常遇到的问题以及对应解决方法 (持续更新)

我的朋友已经工作了 3 年&#xff0c;他过去一直担任前端工程师。 不幸的是&#xff0c;他被老板批评了&#xff0c;因为他在工作中犯了一个错误&#xff0c;这是一个非常简单但容易忽视的问题&#xff0c;我想也是很多朋友容易忽视的一个问题。 今天我把它分享出来&#xff…

Linux三剑客(grep、awk和sed)操作及与管道结合使用

1. 总览 grep、sed和awk被称为Linux三剑客&#xff0c;是因为它们在文本处理和数据操作方面极其强大且常用。 Linux三剑客在文件处理中的作用&#xff1a; grep&#xff08;数据查找定位&#xff09;&#xff1a;文本搜索工具&#xff0c;在文件中搜索符合正则表达式的文本内容…

Redis原理-数据结构

Redis原理篇 1、原理篇-Redis数据结构 1.1 Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串&#xff0c;因为C语言字符串存…

【大模型LLM面试合集】大语言模型架构_attention

1.attention 1.Attention 1.1 讲讲对Attention的理解&#xff1f; Attention机制是一种在处理时序相关问题的时候常用的技术&#xff0c;主要用于处理序列数据。 核心思想是在处理序列数据时&#xff0c;网络应该更关注输入中的重要部分&#xff0c;而忽略不重要的部分&…

BJT的结构(晶体管电压/电流+β+晶体管特性曲线/截止与饱和+直流负载线(Q点))+单片机数码管基础

2024-7-8&#xff0c;星期一&#xff0c;20:23&#xff0c;天气&#xff1a;晴&#xff0c;心情&#xff1a;晴。今天没有什么特殊的事情发生&#xff0c;周末休息了两天&#xff0c;周一回来继续学习啦&#xff0c;加油加油&#xff01;&#xff01;&#xff01; 今日完成模电…

视频号矩阵管理系统:短视频内容营销的智能助手

随着短视频行业的蓬勃发展&#xff0c;视频号矩阵管理系统应运而生&#xff0c;为内容创作者和品牌提供了一站式的短视频管理和营销解决方案。本文将深入探讨视频号矩阵管理系统的核心功能&#xff0c;以及它如何助力用户在短视频营销领域取得成功。 视频号矩阵管理系统概述 …

在PyTorch中使用TensorBoard

文章目录 在PyTorch中使用TensorBoard1.安装2.TensorBoard使用2.1创建SummaryWriter实例2.2利用add_scalar()记录metrics2.3关闭Writer2.4启动TensorBoard 3.本地连接服务器使用TensorBoard3.1方法一&#xff1a;使用SSH命令进行本地端口转发3.2方法二&#xff1a;启动TensorBo…

如何将资源前端通过 Docker 部署到远程服务器

作为一个程序员&#xff0c;在开发过程中&#xff0c;经常会遇到项目部署的问题&#xff0c;在现在本就不稳定的大环境下&#xff0c;前端开发也需要掌握部署技能&#xff0c;来提高自己的生存力&#xff0c;今天就详细说一下如何把一个前端资源放到远程服务器上面通过docker部…