`

[转]关于9宫格方向(不是scrollRect)

阅读更多
http://uh.9ria.com/space-12147-do-blog-id-5690.html

[0,1,2,
3,4,5,
6,7,8]

9宫格是用数字来表示方向的一种办法,其意义就是
["leftup","up","rightup",
"left",null,"right",
"leftdown","down","rightdown"]
用相应的数字表达一种相对位置状态,要点需要4这个中间点,而且左上角是0

在表达相对位置的时候,这种方法最终会比较简洁,诸如:
判断左右:a % 3 < b % 3
判断上下:int(a / 3) < int(b / 3)
而不需要再写多个||

上面的可以说是将9宫格方式拆解成横纵两个方向的办法,更重要的是反向的做法
你只需要用下面的逻辑
(是左边 ? 0 : 是右边 ? 2 : 1) + (是上面 ? 0 : 是下面 ? 6 : 3)
就可以连写出一个表达式直接得出方向值,而不再需要写9个case


诸如,p是一个表示人物移动速度p(vx,vy)的Point坐标,labelNames是一个包含8方向(加上站立是9)的位图动画序列,每项是一个方向的序列,只需要用下面的代码就能直接取出当前应当显示的位图序列

var newState:Array = labelNames[
(p.x < -Math.abs(p.y / 2) ? 0 : p.x > Math.abs(p.y / 2) ? 2 : 1) +
(p.y < -Math.abs(p.x / 2) ? 0 : p.y > Math.abs(p.y / 2) ? 6 : 3)
];

所以表达方向值应当毫不犹豫的使用9宫格方式。
分享到:
评论

相关推荐

    Starling9宫格类库

    Starling9宫格类库是针对Adobe Starling框架的一个扩展,专门用于实现图像的9宫格缩放功能。在游戏开发或UI设计中,9宫格缩放是一种常见的技术,它允许图片在保持角部不变形的情况下进行拉伸,从而在不同尺寸的屏幕...

    iphone 9宫格实现

    在iOS开发中,创建一个9宫格界面是常见的任务,特别是在设计用户交互界面时,用于展示功能模块或者图片。这个场景通常涉及到自定义UICollectionView或UItableView的实现,因为这两种组件都可以方便地创建网格布局。...

    android9宫格解锁

    这是 android手机 9宫格解锁软件 任何一款手机都可以装 经测试 100%可信

    9宫格后台模板

    9宫格后台模板是一种常见的网页设计布局方式,尤其在后台管理系统中广泛应用。这种设计模式将页面分割成9个等大小的方格,每个方格可以承载不同的功能模块或信息区块,使得界面清晰、操作直观,提高了用户的使用效率...

    基于QT的9宫格输入法

    基于QT实现的9宫格数字,字母输入法。支持密码类型输入,输入之后显示.代替输入内容

    9宫格FLASH导航

    9宫格FLASH导航是一种常见的网页设计元素,常用于构建网站的主菜单或导航系统。它以其独特的视觉效果和交互性,吸引用户注意力并提供清晰的网站结构。在本主题中,我们将深入探讨9宫格FLASH导航的设计原理、实现方法...

    9宫格抽奖源码

    在IT行业中,开发互动式应用是提升用户体验和吸引用户参与的有效方式之一,"9宫格抽奖源码"就是这样一种应用的实例。这个源码提供了一个趣味性和互动性兼备的抽奖功能,通常用于营销活动或者游戏场景,让用户有机会...

    Android9宫格

    在Android开发中,"9宫格"是一种常见的用户界面元素,尤其在设置、应用选择等场景下被广泛应用。9宫格通常由一个3x3的网格组成,每个小方格可以代表一个功能或者链接到相应的操作。这个设计简洁直观,易于用户理解和...

    9宫格填空程序

    标题中的“9宫格填空程序”指的是一个...以上就是关于“9宫格填空程序”的主要知识点,涵盖了算法、数据结构、编程语言特性、用户体验等多个方面。理解这些内容有助于我们深入分析和改进这个程序,或者开发类似的应用。

    javascript HTML5 APP网页游戏_9宫格,16宫格抽奖大转盘(源代码)

    javascript H5 APP网页游戏_九宫格,16宫格抽奖大转盘(源代码)

    html大屏自定义宫格,6宫格9宫格12宫格自定义替换合并

    最近有个大屏需要用到自定义大屏,还是拖动替换内容的,使用12宫格的形式 于是使用jquery写了个拖动各种宽高替换宫格位置的demo 比较简单,有数据提交和回显替换的表格功能 ...支持自定义6宫格9宫格12宫格等

    9宫格横竖等于4 c++编程实现

    根据给定的信息,本文将对“9宫格横竖等于4”的C++编程实现进行详细的解析,包括数学原理、程序逻辑以及代码实现等几个方面。 ### 一、问题背景与数学原理 首先,我们需要理解“9宫格横竖等于4”这一概念。这实际...

    安卓手机9宫格解锁数量

    在安卓手机上,9宫格解锁是一种常见的屏幕锁定方式,它以其简洁且有趣的设计深受用户喜爱。9宫格解锁的基本原理是将一个3x3的网格应用到触屏上,用户需要按照特定的顺序滑动网格中的数字来解锁设备。这个过程涉及到...

    9宫格生成程序.exe

    本程序提供图片、动图以及视频等资源的9宫格生成。

    android 9宫格显示

    在Android开发中,9宫格显示通常指的是使用GridView控件来展示一组小图标或图片,形成类似九宫格的布局效果。GridView是Android提供的一种基于网格的布局管理器,它可以将视图按照行列的方式进行排列,常用于创建...

    7-1-GridView-9宫格.rar

    在这个“7-1-GridView-9宫格.rar”压缩包中,包含了关于如何实现一个9宫格布局的知识点,我们可以详细探讨一下。 首先,GridView的核心在于它能将数据源(如ArrayList或ArrayAdapter)中的条目以网格的形式进行布局...

    jQuery 9宫格抽奖

    【jQuery 9宫格抽奖】是一种常见的互动设计,常用于线上活动或年会抽奖环节,为用户提供直观且吸引人的参与体验。此插件基于流行的JavaScript库jQuery构建,旨在实现一个适用于移动端和电脑端的可自定义抽奖界面。...

    Android 9宫格解锁

    在Android系统中,9宫格解锁是一种常见的用户界面设计,用于增强设备的安全性和用户体验。它借鉴了QQ应用的解锁方式,允许用户通过绘制特定的手势路径来解锁屏幕,而不是简单的输入PIN码或滑动图案。这种解锁方式既...

    horwheel组件-鼠标滚动控制9宫格页面左右滑动

    当用户在9宫格页面上滚动鼠标时,页面会向左或向右滑动,而不是常规的上下移动,从而实现水平浏览的效果。这对于展示大量横向内容,如产品列表或图像画廊,尤其有用。 实现这个功能的关键在于jQuery的事件处理和DOM...

    QT + OPENCV + 海康工业相机显示不同处理阶段9宫格图像

    QT + OpenCV + 海康工业相机显示不同处理阶段9宫格图像是一种常见的计算机视觉应用场景,主要用于实时监控和分析来自多个摄像机的图像数据。在这个项目中,我们使用QT作为图形用户界面(GUI)框架,OpenCV作为图像...

Global site tag (gtag.js) - Google Analytics