Ios 用图像构建一条蛇

Ios 用图像构建一条蛇,ios,objective-c,uiimageview,uiimage,Ios,Objective C,Uiimageview,Uiimage,想象一个静态的蛇游戏,即蛇不能移动,但只能增加或减少大小。目前,我尝试使用尽可能多的UIImageView来实现这一点,因为有“snake部分”和一个UIImage(表示一个“snake部分”),我将其分配给所有UIImageView。减少和增加snake会导致新的“snake部件”移入或移出屏幕。我遇到的问题是,设置UIImageView后,似乎无法更改其位置。这使我对我的解决方案的整个想法产生了疑问。因此,我有两个问题要问你: 设置UIImageView后,是否确实无法更改其位置 是否有其他

想象一个静态的蛇游戏,即蛇不能移动,但只能增加或减少大小。目前,我尝试使用尽可能多的UIImageView来实现这一点,因为有“snake部分”和一个UIImage(表示一个“snake部分”),我将其分配给所有UIImageView。减少和增加snake会导致新的“snake部件”移入或移出屏幕。我遇到的问题是,设置UIImageView后,似乎无法更改其位置。这使我对我的解决方案的整个想法产生了疑问。因此,我有两个问题要问你:

  • 设置UIImageView后,是否确实无法更改其位置
  • 是否有其他和/或“更好”的方法来实现上述概念

  • 如果你的游戏目标是iOS7,我建议你看看SpriteKit,它是一个更适合制作2D游戏图形的框架。对于较旧的iOS版本,您可能希望使用CoreAnimation和CoreGraphics而不是UIKit。UIKit更像是一个用户界面构建框架,其他两个用于构建动画和二维图形


    要真正回答您的问题,可以多次设置UIImageView的位置,它将移动到新位置。只需设置UIImageView的
    center
    属性。不过,您可能希望使用不同的框架来实现图形。我会看看CoreAnimation和SpriteKit。上面有一些非常好的WWDC会话视频。

    据我所知,您只是添加了ImageView,然后尝试移动它们。还应将它们添加到数组中,如果要移动它们,请执行以下操作:

    UIImageView *imgView = imgArray[index];
    imgView.center = CGPointMake(100,100);
    

    1.
    ui图像视图的位置可以随时修改。2.视情况而定。但任何解决方案都会涉及到计算图像在屏幕上的位置,无论是包含在图层还是图像视图中。@NSBum感谢您的回复!我刚刚意识到我试图在视图上调用setBounds,而不是setFrame,它似乎在重新定位视图。但是,根据您的观点,层或图像视图的首选方法是什么?如果您打算使用动画来激活蛇的变化,那么层/核心动画将是首选方法。另一位回答者提到SpriteKit,如果您的部署目标操作系统支持它,我想我对我正在做的事情有点不清楚。这不是我正在做的一个真正的游戏,但我用游戏类比来说明我的问题。我将继续使用UIImageViews,现在我已设法重新定位它们(在您的帮助下)。CoreGraphics、SpriteKit和其他提到的库都很有趣,我会把它们记在脑子里,以备将来需要。谢谢大家在这件事上帮助我!没问题,在这种情况下,在UIKit中这样做听起来是完全合理的(按照Arbitor的建议设置UIImageView的位置)。您还应该查看UIView动画和CoreAnimation,以了解那里有哪些可用内容。