一种基于平面坐标系的游戏虚拟摇杆控制和定位方法与流程

文档序号:14876579发布日期:2018-07-07 07:13阅读:660来源:国知局
在游戏及应用程序的设计过程中,一般加载一个场景后都会设计一个相关的小地图来引导玩家找到自己的位置,或是用导航定位,虚拟罗盘等方式,但如果对应为手机游戏及应用,因其硬件性能不足,屏幕大小等缘故,如果把各种的定位功能放在手机游戏及应用程序中会导致占用按钮过多,花费屏幕空间过多,手机资源过多等情况发生,并且手机游戏及应用的操作多为拇指操作,太多的功能按钮反而导致界面混乱臃肿,功能混乱,使其难以点击操作。如果是面积趋近与无限大的虚拟地表上,很多定位方式就更加难以制作并且更加消耗其手机资源。技术实现要素:本发明的目的是提供一种基于平面坐标系的游戏虚拟摇杆控制和定位方法。为了实现上述目的,采用以下技术方案:一种基于平面坐标系的游戏虚拟摇杆控制和定位方法,其特征在于:首先定义一个放置在平面的坐标系中的平面虚拟地表,其虚拟地表地表的正x轴方向为a方向,负x轴方向为b方向,正y轴方向为c方向,负y轴方向为d方向,在该虚拟地表上自定义一个对象,该对象通过多点式虚拟摇杆控制其移动的方向,以虚拟摇杆为中心放置圆环标尺,标尺上有a、b、c、d方向标识,通过虚拟按钮控制该圆环标尺顺时针或逆时针旋转,定义其对象以外的一点为虚拟摄像头,该摄像头以对象为圆心,围绕其以固定距离旋转,通过虚拟按钮控制摄像头按照其圆环轨迹围绕圆心顺时针或逆时针旋转;以圆环轨迹内所有虚拟摄像头为端点向对象所在圆心发送射线,当射线与方向平面坐标系正y轴平行且方向相同时,定义该射线方向为c方向,当射线与方向平面坐标系正x轴平行且方向相同时,定义该射线方向为a方向,当射线与方向平面坐标系负y轴平行且方向相同时,定义该射线方向为d方向,当射线与方向平面坐标系负x轴平行且方向相同时,定义该射线方向为b方向。所述a或b分别为东或西,c或d分别为北或南。用虚拟摇杆控制其对象的移动,虚拟摇杆偏向标尺所对应的方向,对象就向该对应方向移动,虚拟按钮同时控制虚拟摄像头视角的转动和圆环标尺的转动。当对象坐标为e(m,n),地点坐标为f(g,h)计算方式为:如果m=g且n>h则f点在e点的d方向,如果m=g且n<h则f点在e点的c方向;如果n=h且m>g则f点在e点的b方向,如果n=h且m<g则f点在e点的a方向;如果m>g且n>h则f点在e点的bd方向;如果m>g且n<h则f点在e点的bc方向;如果m<g且n<h则f点在e点的ac方向;如果m<g且n>h则f点在e点的ad方向;如果m=g且n=h,则b点和e点在同一坐标。该发明通过在平面坐标系中对象移动方向,标尺指示方向,摄像机渲染方向的统一;平面坐标系对象所在坐标数值的改动;单手拇指虚拟摇杆设计,大大了减轻了场景对象定位所带来的手机功能,屏幕空间等方面的资源消耗,并且适用于面积趋近与无限大的虚拟地表。说明书附图图1为本发明的实施例示意图。具体实施方式下面结合附图和具体实施例对本发明做进一步的说明。一.定义虚拟地表一个平面是无限个点组成的。在游戏及应用中需要将无限的点“合并”成地表进行管理渲染,本文称之块为虚拟地表。每个虚拟地块是平面坐标系中的无限个点坐标的集合。所以在此定义平面坐标系为一个面积趋于无限大的虚拟地表。定义其虚拟地表地表的正x轴方向为正东方向,负x轴方向为正西方向,正y轴方向为正北方向,负y轴方向为正南方向。二、在该虚拟地表上定义一个对象,该对象通过多点式虚拟摇杆控制其移动的方向,以虚拟摇杆为中心放置圆环标尺,标尺上有东,西,南,北等方向标识。通过虚拟按钮控制该圆环标尺顺时针或逆时针旋转。三、定义其对象以外的一点为虚拟摄像头,该摄像头以对象为圆心,以固定距离旋转使其满足游戏及应用的渲染需求。通过虚拟按钮控制摄像头按照其圆环轨迹正对圆心顺时针或逆时针360°旋转。四、以圆环轨迹内所有虚拟摄像头为端点向对象所在圆心发送射线,当射线与方向平面坐标系正y轴平行且方向相同时,定义该射线方向为正北方。当射线与方向平面坐标系正x轴平行且方向相同时,定义该射线方向为正东方。当射线与方向平面坐标系负y轴平行且方向相同时,定义该射线方向为正西方。当射线与方向平面坐标系负x轴平行且方向相同时,定义该射线方向为正南方。五、使其射线方向与圆环标尺方向一致。虚拟摄像机与圆环标尺都通过虚拟按钮控制其顺时针或逆时针360°同步转动。六、过虚拟摇杆控制其对象的移动,使其对像的移动方向,射线方向,圆环标尺方向都保持一致,让操作者有明确的三维方向感。七、在虚拟摇杆控制对象移动的时候,会在移动设备屏幕上动态显示出该对象在该平面坐标系上的坐标。八、系统会计算提示地点相对于对象坐标的方向和地点坐标,假设对象坐标为a(m,n),地点坐标为b(g,h)计算方式为:如果m=g且n>h则b点在a点的正南方,如果m=g且n<h则b点在a点的正北方;如果n=h且m>g则b点在a点的正西方,如果n=h且m<g则b点在a点的正东方;如果m>g且n>h则b点在a点的西南方向;如果m>g且n<h则b点在a点的西北方向;如果m<g且n<h则b点在a点的东北方向;如果m<g且n>h则b点在a点的东南方向;如果m=g且n=h,者b点和a点在同一各坐标上。示例1.假设自定义的对象在该虚拟地表上的a1点坐标为(33.45),b1点的坐标及相对于a1点的位置会如下面表格所示。虚拟地点坐标显示方式:b1(33.78)b1(33.78)正北b2(33.21)b2(33.21)正南b3(21.45)b3(21.45)正西b4(78.45)b4(78.45)正东b5(28.61)b5(28.61)西北b6(61.58)b6(61.58)东北b7(22.33)b7(22.33)西南b8(60.32)b8(60.32)东南当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1