我正在编写一个ipad应用程序,我将方向锁定为横向模式。 我想要一个高100像素但是ipad屏幕宽度4倍的PNG文件。
我想要的是这个背景图像显示在屏幕上然后自动开始 滚动计时器。我确保此图像的开始和结束部分匹配。 一旦到达图像的末尾,我希望再次显示起始位。 如果速度太慢,此图像应沿着一个像素移动或更大的跳跃滚动。
我真的很难找到一些示例代码来展示如何显示这样做。
这不是我写的游戏所以不想使用OpenGL或任何花哨的东西。
到目前为止我看过的例子并不完全是我所追求的。
我可以简化并准确说明我被困在哪里......
假设我将图像加载到1000像素宽,100高的内存中。
有人可以向我展示几行代码,这些代码可以让我剪切出一个矩形,开始说x轴上的200像素为这个较大的图像,并且是一个100 x 100像素的矩形。
我怎么能把这个矩形切掉并在屏幕上显示 - 速度并不重要,如前所述。
然后我可以自己制作滚动部分(我希望)并希望稍后将其发布回来。
我正在思考CGContext类型命令,但是尽管看了一些示例,但是在文档中我仍然面对着一堵砖墙。 正是这个“切出一个矩形部分”,我最磕磕绊绊。
感谢。
任何帮助表示感谢。
答案 0 :(得分:0)
披露 - 我根本不是iPhone开发者。
但是,我要做的是将图像分成几块。 (也许是8)所以,你最终会得到8块高,每块高100px,屏幕宽度的1/2。
然后,当图像滚动时,您可以在转动之前加载每个图像以进行显示。因此,当图像从屏幕流出时,您可以将其替换为下一个要在屏幕另一侧显示的图像。
答案 1 :(得分:0)
披露 - 我根本不是iPhone开发者。 (借用jjnguy中的那一行)
拍摄背景图像并将其展开一个屏幕,然后将屏幕的开头复制到新区域。现在你所要做的就是裁剪所需的部分并显示它 - 已经完成了环绕。
答案 2 :(得分:0)
感谢您的所有帮助和建议。
最后,我决定最简单的方法就是Mark Ransom所建议的 - 因为这样可以解决问题。
我使用下面的4行代码剪切出我想要200像素宽,100高的部分。
然后我在计时器上循环这个变化的startX。完美!
// Our image rectangle is 200 pixels wide by 100 pixels high
CGRect selectionRect = CGRectMake(startX, 0.0, 200.0, 100.0);
CGImageRef resultImageRef = CGImageCreateWithImageInRect(masterImage.CGImage, selectionRect);
UIImage *outputFrame = [[UIImage alloc] initWithCGImage:resultImageRef];
[outputImageViewOutlet setImage:outputFrame];
最后..它是CGRectMake和CGImageCreateWithImageInRect任何想要这样做的人都应该进一步研究!
谢谢大家。希望这有助于某人。