如何为文字游戏编写可拖动的图块?

时间:2013-11-13 14:34:09

标签: ios uiview uiscrollview draggable tile

我是iOS编程新手(同时阅读有关该主题的几本书),我想开发一个(又一个)文字游戏。

来自Flash / Flex编程背景我首先期待将瓷砖最佳捆绑为gif或png资产。

但后来我在流行的文字游戏(Lexulous,Wordament,Words with Friends,Ruzzle,......)中看了一下(通过使用iFunbox),没有一个正在这样做:

enter image description here

我所看到的很多应用程序都没有包含任何字母作为图像。

所以我的问题是建议的方法是什么(在Xcode 5中,没有像Cocos2d或Sparrow这样的其他SDK)来为文字游戏创建一个字母图块?

在我想要的瓷砖上

  • 中心对齐的字母(显然!),
  • 然后是一个显示字母值
  • 的角落的索引
  • 然后是另一个总字数值的索引

触摸时我想让瓷砖更大一些,并在其下方添加一个阴影。

我的瓷砖类应该是UIView(它们可以被拖动,生长并有阴影吗?)

我应该为磁贴使用.nib文件吗?

对于拖动,我已经找到了一个很好的建议:Dragging an UIView inside UIScrollView

但我真正想知道的是:如果UIView能够制作一个好的牌(性能和功能方面),还是应该选择另一个基类(比如某些形状)?

1 个答案:

答案 0 :(得分:2)

是的,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类;)