位置: 编程技术 - 正文

RPG 游戏地图卷动简单API(rpg好玩地图)

编辑:rootadmin
在传统RPG 游戏中是非常常见的,怎么实现一个简单的地图卷动呢!其实做法很简单,就是检测何时需要同步相机与角色的XY轴.【第一步 创建一个scene】 BigMapBg 场景大地图, MainCamera 主相机 , role (球体) , ViewBg 可视区域。更多精彩请点击【狗刨学习网】在 MainCamera 上帮上 TestGame 脚本, 设置 role ,viewPos 预设下面附上代码[code]csharpcode:public class TestGame : MonoBehaviour{ public GameObject role; public GameObject viewPos; private GameRole _gameRole; private float _viewPosZ; GameObject cameGo; void Awake() { cameGo = GameObject.Find("Main Camera"); _gameRole = new GameRole(role, cameGo); _viewPosZ = viewPos.transform.position.z; } void Update() { Vector3 vect = Vector3.zero; if (Input.GetKeyDown(KeyCode.W)) _gameRole.Move(GameRole.MoveType.Up); else if (Input.GetKeyDown(KeyCode.A)) _gameRole.Move(GameRole.MoveType.Left); else if (Input.GetKeyDown(KeyCode.D)) _gameRole.Move(GameRole.MoveType.Right); else if (Input.GetKeyDown(KeyCode.S)) _gameRole.Move(GameRole.MoveType.Down); //Vector3 cameVect = cameGo.transform.position; //cameVect.z = _viewPosZ; //viewPos.transform.position = cameVect; }}API 代码[code]csharpcode:public class GameRole{ public enum MoveType { Up, Down, Left, Right } private GameObject _roleGo; private GameObject _cameGo; private const float SPEED = 5f; public Vector2 max_map = new Vector2(, ); public Vector2 max_came = new Vector2(, ); public GameRole(GameObject roleGo, GameObject cameGO) { _roleGo = roleGo; _cameGo = cameGO; } public void Move(MoveType type) { Vector3 speed = Vector3.zero; switch (type) { case MoveType.Up: speed = new Vector3(0, SPEED, 0); break; case MoveType.Down: speed = new Vector3(0, -SPEED, 0); break; case MoveType.Left: speed = new Vector3(-SPEED, 0, 0); break; case MoveType.Right: speed = new Vector3(SPEED, 0, 0); break; } MoveRole(speed); MoveCame(speed); } /// <summary> /// 移动相机 /// </summary> /// <param name="curSpeed"></param> private void MoveCame(Vector3 curSpeed) { Vector3 camePos = _cameGo.transform.position; Vector3 rolePos = _roleGo.transform.position; rolePos.z = camePos.z; Vector3 dVect = rolePos - camePos; float dx = max_map.x - Mathf.Abs(dVect.x); // 角色.x - 地图.x float dy = max_map.y - Mathf.Abs(dVect.y); // 角色.y - 地图.y float dxC = max_came.x - Mathf.Abs(rolePos.x); // 角色.x - 可见区域.x float dyC = max_came.y - Mathf.Abs(rolePos.y); // 角色.y - 可见区域.y if (dxC >= 0 && dyC >= 0); // x,y 都没达到最大 else if (dx > 0 && dxC >= 0) // x 没有达到最大 rolePos.y = camePos.y; else if (dy > 0 && dyC >= 0) // y 轴没有达到最大 rolePos.x = camePos.x; else return; _cameGo.transform.position = rolePos; } /// <summary> /// 移动角色 /// </summary> /// <param name="curSpeed"></param> private void MoveRole(Vector3 curSpeed) { Vector3 curPos = _roleGo.transform.position; Vector3 tagPos = curPos &#; curSpeed; // 在角色可移动区域内 if (isInRec(tagPos, max_map)) _roleGo.transform.position = tagPos; } private bool isInRec(Vector3 pos, Vector2 Rect) { if (Rect.x - Mathf.Abs(pos.x) >= 0 && Rect.y - Mathf.Abs(pos.y) >= 0) return true; return false; }}

推荐整理分享RPG 游戏地图卷动简单API(rpg好玩地图),希望有所帮助,仅作参考,欢迎阅读内容。

RPG 游戏地图卷动简单API(rpg好玩地图)

文章相关热门搜索词:rpg好玩地图,rpg游戏大地图,rpg地图包,rpg游戏地图素材,rpg游戏大地图,rpg地图图片,地图卷轴有什么用,rpg地图包,内容如对您有帮助,希望把文章链接给更多的朋友!

关于XML的读写操作以及查询操作 我们在做一些项目的时候,往往会用XML来配置内部成员,部署他们之间的关系,使得程序运行起来不至于太混乱,今天就稍微讲解一下关于XML的一些用

设计模式--简单工厂模式在unity3d里面的使用 来自

Unity3D 帧数修改 1、在Quality(质量)设置里把帧数设定关闭之后才能在代码中修改游戏运行的帧数2、在Unity中新建脚本UpdateFrame.cs,编写如下代码usingUnityEngine;usingSystem.Collec

标签: rpg好玩地图

本文链接地址:https://www.jiuchutong.com/biancheng/382582.html 转载请保留说明!

上一篇:Unity 2D打造《影之刃》新版本新武侠新玩法(unity 2danimation)

下一篇:关于XML的读写操作以及查询操作(xml文件的数据如何读取)

  • 北京外贸进出口公司
  • 按适用税率征税销售额等于销售收入吗
  • 公司租赁个人车辆税率是多少
  • 小规模免征增值税会计处理
  • 进项税额抵扣计算
  • 固定资产出售如何申报增值税
  • 应交税费应交增值税转出未交增值税是什么意思
  • 广告公司个体户自己可以开发票
  • 企业所得税研发费用怎么填
  • 一般存款账户的主要用途
  • 长期股权投资属于金融资产吗
  • 预付的固定资产没有收到发票怎么入账
  • 个人独资企业个税税率表2023
  • 个体工商户给员工交社保流程
  • 业务宣传费和广告费有什么区别
  • 银行处置以物抵债违法吗
  • 购入的汽车怎么入账
  • 营改增后哪些费用可以抵扣
  • 社保已申报未缴费可以减员吗
  • 中国的农业成本为什么高
  • 净资产是不是包含设备
  • 购买员工宿舍床上用品怎么入账
  • 财务软件上线需注意什么
  • mac dock不见了
  • windows11iso镜像多久更新一次
  • 通用pe工具箱安装教程
  • 代垫运费会计分录怎么写
  • 购买货物现金付讫的会计分录
  • 税控设备购买
  • 购买办公用品怎么做明细账
  • 金银首饰零售业税负率是多少
  • pip清华源安装
  • 累计折旧在贷方还是借方
  • asreg命令什么意思
  • 哪些项目计入其他应收款
  • thinkphp模糊查询
  • 原材料暂估入库成本结转处理
  • 企业坏账准备提取的方法和提取的比例由国家统一规定
  • 本月增值税申报截止日
  • 员工业余自学
  • 收到发票未抵扣增值税
  • 药店主营业务成本怎么算出来的
  • sql server 2008使用说明
  • 个人所得税汇算清缴怎么计算
  • 收到银行承兑汇票计入什么科目
  • 未开票收入如何计提增值税
  • 再保险责任的承担
  • 怎么打印税务登记证明备案表
  • 跨年度未开发票第二年如何做确认收入?
  • 发票专用章盖在中间行不行
  • 利润表中的营业收入怎么算出来的
  • 政府会计准则具体准则的作用
  • 收缩后对数据库有影响吗
  • navicat查询结果下面输出栏如何关闭
  • kms激活的弊端
  • win7浏览器升级到ie11
  • win8系统之家官网
  • ubuntu软件安装
  • emule.td文件怎么打开
  • 怎么更改桌面图标字体
  • 在Linux操作系统中哪些命令可以正确关闭系统防火墙
  • Win10 Mobile RS2预览版14905更新内容大全:全新精致铃声
  • win7激活2020
  • 查看syslog
  • js浏览器打印
  • node.js有什么作用
  • 学习计划
  • 用python抓取数据
  • jquery实战
  • eclipse开发安卓app实例
  • node.js怎么样
  • python神奇的小海龟
  • 电力行业增值税管理办法
  • 中国纳税大户排行
  • 供暖配套费
  • 上海市税务局领导简介
  • 临时搭建的活动叫什么
  • 武汉市国税局长
  • 新开公司交印花税
  • 本期应纳的增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设