如何为文字游戏编写可拖动图块?
Posted
技术标签:
【中文标题】如何为文字游戏编写可拖动图块?【英文标题】:How to program draggable tiles for a word game? 【发布时间】:2013-11-26 05:05:03 【问题描述】:我是一名 ios 编程新手(同时阅读几本关于该主题的书籍),我想开发一个(又一个)文字游戏。
来自 Flash/Flex 编程背景,我最初期望图块最好捆绑为 gif 或 png 资源。
但后来我查看了(通过使用 iFunbox)流行的文字游戏(Lexulous、Wordament、Words with Friends、Ruzzle 等),没有一个这样做:
这是我看过的许多应用程序中没有一个包含任何作为图像的字母。
所以我的问题是为文字游戏创建字母拼贴的推荐方法是什么(在 Xcode 5 中,没有额外的 SDK,如 Cocos2d 或 Sparrow)?
在我想要的瓷砖上
居中对齐的字母(显然!), 然后在角落里显示字母值的索引 然后是总单词值的另一个索引当触摸时,我想让图块变大一点,并在它下面添加一个阴影。
我的 tile 类应该是 UIView
(它们可以被拖动、增长并有阴影吗?)
我应该为磁贴使用 .nib 文件吗?
对于拖动,我已经找到了一个很好的建议:Dragging an UIView inside UIScrollView
但我在这里真正想知道的是:UIView
是否会成为一个好的图块(性能和功能方面),还是我应该选择另一个基类(比如某些形状)?
【问题讨论】:
UIView 将是一个很好的容器 - 也可以考虑 UIControl,因为它提供了一些额外的触摸处理机会(beginTracking、continueTracking、isTracking 等)以及添加目标操作事件的能力 UIControl 也很好,因为您可以将这些视图添加到 xib 并设置它们的类。然后,如果需要,您可以从 xib 中的该视图设置 IBActions(touchupinside、dragoutside 等)。在某些情况下非常方便。 【参考方案1】:是的 UIView 将是一个很好的容器。 创建 UIView 的子类,比如 TileView,放入一些标签、图像视图和一个按钮,覆盖按钮 UIControlEventTouchDown、UIControlEventTouchUpInside、UIControlEventTouchDragInside 事件以帮助 U 在其父视图中导航。将 TileView 放在某个容器中(您的视图控制器视图或 U 想要的位置),基本上就是这样。
-(void)btnPressed:(id)sender withEvent:(UIEvent *) event
CGPoint point = [[[event allTouches] anyObject] locationInView:self.view];
dx = 0;
dy = 0;
oldPoint = point;
-(void)btnRelesed:(id)sender
// stop moving code
-(void)btnDragged:(id)sender withEvent:(UIEvent *)event
CGPoint point = [[[event allTouches] anyObject] locationInView:self.view];
dx = point.x - oldPoint.x;
dy = point.y - oldPoint.y;
oldPoint = point;
// set tile view center position using
CGPoint ptCenter;
ptCenter = self.view.center;
ptCenter.x = ptCenter.x + dx;
ptCenter.y = ptCenter.y + dy;
self.view.center = ptCenter;
self.view 是你的 TileView 和它的 self.view 因为你有 ovrriden UIView 类;)
【讨论】:
谢谢,所以我需要一个半透明的按钮来处理拖动? 这是一种方法,是的。你做这样的事情:以上是关于如何为文字游戏编写可拖动图块?的主要内容,如果未能解决你的问题,请参考以下文章