在 iPhone 游戏中隐藏图像的一部分
Posted
技术标签:
【中文标题】在 iPhone 游戏中隐藏图像的一部分【英文标题】:Hiding a part of an image in iPhone-Game 【发布时间】:2011-09-06 08:19:10 【问题描述】:我正在开发一个小游戏,用户可以在其中拖动图像的行和列来解决难题。 拼图不使用整个屏幕,“拼图区域”在 0,160 到 320,480 的矩形区域内。
现在,如果用户向上拖动一列图像,则该列中的顶部图像将显示在该拼图区域“之外”。我怎么能只显示图像的那部分,它仍然在拼图区域内。喜欢不显示图像的整个 50x50 像素,而只显示较低的 40x50 像素等?
【问题讨论】:
【参考方案1】:您只需要正确设置视图上的框架。如果您的拼图视图框架在顶部的 (0,160) 点结束,则您添加到其中的任何子视图;比如拼图块在移出框架时会被隐藏。
【讨论】:
【参考方案2】:希望我没有把问题简单化,但我能想到的解决这种情况的一种更简单的方法是在移动拼图块的同时保持适当的视图结构。
即只要屏幕上半部分的视图在视图层次结构中高于拼图块(您可以通过正确维护子视图来确保这一点),如果拼图块在其下方移动,它们将隐藏在顶视图下.
这是你需要的吗?
干杯。
【讨论】:
Madhumal,谢谢您的回答。所以,我应该寻找视图层次结构,如果拼图区域“外部”的视图更高,拼图块会推到它下面吗?我会试一试,听起来不错。 是的。当您将视图添加到屏幕时,您稍后添加的视图将位于顶部,因此应该会自动运行,而无需您进行任何额外的工作。此外,取决于您的屏幕设置方式,如果拼图区域的框架在屏幕的中点被切断,以及拼图块是否作为子视图添加到拼图本身,再次,当您将它们移出拼图区域,外面的部分不可见。 嗨,Marco,如果解决了,如果您能将其标记为已回答,将不胜感激,谢谢!【参考方案3】:我只是想给你一些想法..希望你能用它来实现......
首先使用 touchesBegan 和 touchesMoved 方法来检测图像被拖动了多少像素。同时你还可以将图像的框架移动到一个新的坐标,隐藏图像的一部分......tat不在拼图区域......
希望这会有所帮助....
myImageView.frame=CGRectMake(0,0,50,50);
让上面的那个是实际的框架。现在你已经收到了用户通过触摸方法移动图像的像素数量。让它成为一些y1。要隐藏图像视图的一部分,像这样重新构建图像视图,
myImageView.frame=CGRectMake(0,-y1,50,50);
负 y1 因为你想移出屏幕.. 希望这会有所帮助。
【讨论】:
谢谢,touchesBegan 等方法都运行良好,图像的移动也是如此。只是“隐藏一部分图像”是我需要做的。以上是关于在 iPhone 游戏中隐藏图像的一部分的主要内容,如果未能解决你的问题,请参考以下文章
在 iphone 中使用 UIScrollView 滚动图像(第 2 部分)