我必须开发一个应用程序,它必须呈现“模拟人生”风格的六边形的“地板”,有点像this,但更简单。
我真的对CoreGraphics知之甚少,甚至一无所知,也对OpenGL一无所知,你会用哪种方式来“简单”、“快速”地完成这项工作?
发布于 2012-02-18 04:32:26
有无数种方法可以实现这一点。当我读到这篇文章时,你正在寻找一个2D透视图,谢天谢地,对于没有3D渲染经验的人来说,它要容易得多。您可以按照sch的建议探索第三方库的使用。
如果你想要一个“原生”的解决方案,你的选择要么是基于CG的,要么是基于image/UIKit的。两者都是相对可访问的。
使用Quartz/CG,基本上您将绘制一系列直线和圆弧来组成您想要的形状。我通常在纸上绘制草图,然后在代码中绘制出我需要的粗略部分和组件;使用CG命令绘制路径真的不是很难。您可以很容易地构建一个形状工厂类,然后当需要将一个形状放到视图中时,您可以只要求给定大小的给定形状。
如果您不愿意在代码中绘制路径,最后一个选择是使用UIKit。使用这种方法,你可以在photoshop中创建你的形状,将它们切成图像,然后将这些图像放入imageviews和你的应用程序中。然后,您可以使用CALayer变换在2.5d空间中操作这些图像。如果你的需求是适度的,这是一个相对容易和简单的方式来做到这一点,并让它看起来像样。不幸的是,这种方法不是高度动态的,不能很好地扩展,并且可能根本达不到您在屏幕上寻找的性能阈值。
发布于 2012-02-18 04:11:59
你应该看看Cocos2D。它使得编写这样的游戏变得容易得多。它还支持tile maps,您可以使用它来创建地板。
发布于 2012-02-18 04:31:27
尝试使用CATransform3D将透视应用于您的2D视图。相关问题:How do I apply perspective?
https://stackoverflow.com/questions/9334649
复制相似问题