Tag: 石英2d

使用SpriteKit和SWIFT为游戏构build网格级别

我正在寻找构build游戏关卡的最佳方式: 游戏将由多个层次组成,每个层次都将是独一无二的。 你会播放一个对象(这里是明星),这是在网格上移动。 物体只能移动到底部,不能返回。 一个级别由多个案例组成,每个案例都会有不同的行为。 我的水平将有一个背景,屏幕的宽度,但高度将取决于水平,我想是屏幕的高度的许多倍。 背景移动取决于对象的移动 现在,我正在研究一个小原型,只是为了学习。 阅读了许多教程后,我的想法是使用SKSpriteNode创buildx个方块(菱形)。 并用标识符来标识正方形。 我不知道在性能方面是否是一个好的解决scheme? 他们会在一个层面上很多广场。 我不知道:) 我们受限于一个场景中的节点数量吗?

统一iOS的build设规模是很大的

目前,我正在为iOS制作2D益智游戏。 当我压缩我的项目时,它的大小约为16MB 。 当我在xcode中构build它时,项目大小变为780MB ,当我将其归档时,它变成1.5GB 。 但真正的问题开始时,我上传它testing飞行内部和外部testing,然后在iTunes连接它的压缩大小变为143MB和通用安装大小变成285MB,并为不同的iPhone安装大小成为160MB平均。 现在我认为160MB是一个简单的2D益智游戏的非常大的安装文件,当我发布它时可能会导致严重的丢失。 Unity版本:5.4.2 脚本后端:IL2CPP Api兼容性级别:.Net 2.0子网 任何人都可以告诉我,我能做些什么来解决这个问题,或者当我发布它时,大小会减less。 提前致谢。

退化的顶点和GL_LINE_STRIP

我在iOS 5.1上 我试图在同一个顶点数组中显示几批线,我想使用退化的顶点将它们分开。 但似乎没有工作。 我在每一批顶点之间画线。 谷歌search问题给了我的结果,退化的顶点与GL_LINE_STRIP不兼容,但我不确定。 有人可以证实吗? 还有什么替代方法?

如何使用Quartz 2d打开和查看PDF

嗨,我一直在努力实现这一目标,但没有成功 我试图采取下面的代码,并使用Quartz 2D查看它 – 所以我可以稍后用这个注释: $ NSString *path = [[NSBundle mainBundle] pathForResource:@"01renalArtery" ofType:@"pdf"]; NSURL *url = [NSURL fileURLWithPath:path]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [pdfView loadRequest:request]; [pdfView setScalesPageToFit:YES]; $ 我已经通过以下示例代码https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html#//apple_ref/doc/uid/TP30001066-CH214- TPXREF101不断有大量的错误回来 这个渲染了一个空白的屏幕从NSString通过PDF文件写入文本 任何帮助,非常感激

在ios中使用Quartz 2d的注释(注释,注释)

我正在为iPad做基于PDF的应用程序。 它支持缩略图视图,自由评论和注释(注释)。 雅和我在网上search很多,但我没有find任何相关的答案,使用Quartz 2D在PDF上进行注释。 我们可以使用CGPDFDictionaryRef CGPDFPageGetDictionary ( CGPDFPageRef page );获取PDF页面信息CGPDFDictionaryRef CGPDFPageGetDictionary ( CGPDFPageRef page ); 并使用“ bool CGPDFDictionaryGetArray ( CGPDFDictionaryRef dict, "Annots", CGPDFArrayRef *value ); ”键bool CGPDFDictionaryGetArray ( CGPDFDictionaryRef dict, "Annots", CGPDFArrayRef *value ); 你可以得到特定页面的注释。 如果我是正确的什么是关键的笔记 ,如果它有如何更新页面字典。 如果我在上述问题上有错,请告诉我Notes如何在PDF上呈现。 或者PDF渲染器获取关于Notes的信息。 请让我知道如果有人知道尽快。 提前真的很感谢。

核心文本与iOS上的不对称形状

我想写一个可以采取任何形状的path文本。 现在我可以在其中绘制翻转的文本: NSArray *coordinates = …; CGMutablePathRef pathRef = [self objectPathGivenCoordinates:coordinates]; … // Draw the shapes // Now draw the text CGContextSetTextMatrix(context, CGAffineTransformIdentity); NSAttributedString* attString = [[NSAttributedString alloc] initWithString:@"0,1,2…"]; CTFramesetterRef frameSetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)attString); CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, [attString length]), pathRef, NULL); CTFrameDraw(frame, context); 这产生了这个: 我知道iOS有一个翻转的坐标系统。 大多数解决scheme在绘制前添加这两行: CGContextTranslateCTM(context, 0, rect.size.height); CGContextScaleCTM(context, 1.0, -1.0); 但是,这产生了: […]

如何在没有预乘alpha的情况下获得真实的RGBA或ARGB颜色值?

我使用CGBitmapContextCreate和kCGImageAlphaPremultipliedFirst选项创build位图上下文。 我用一些主要颜色(纯红色,绿色,蓝色,白色,黑色),一些混合颜色(即紫色)和一些阿尔法变化做了5×5testing图像。 每当alpha分量不是255时,颜色值都是错误的。 我发现我可以重新计算颜色,当我做这样的事情: almostCorrectRed = wrongRed * (255 / alphaValue); almostCorrectGreen = wrongGreen * (255 / alphaValue); almostCorrectBlue = wrongBlue * (255 / alphaValue); 但问题是,我的计算有时会减less3或甚至更多。 所以例如,我得到的价值为242,而不是绿色,我100%肯定它必须是正好245.阿尔法是128。 然后,对于与PNG位图中不同的alpha不透明度完全相同的颜色,我得到alpha = 255和green = 245,因为它应该是。 如果alpha为0,那么红色,绿色和蓝色也是0.这里所有的数据都丢失了,我无法弄清楚像素的颜色。 我怎样才能避免或撤销这个alpha预乘,以便我可以根据真实的RGB像素值修改图像中的像素,就像在Photoshop中创build图像时一样? 如何恢复R,G,B和A的原始值? 背景信息(可能不需要这个问题): 我正在做的是这样的:我把一个UIImage,绘制到一个位图的上下文,以执行一些简单的image processingalgorithm,移动每个像素的颜色取决于它以前的颜色。 没有什么特别的 但是我的代码需要真实的颜色。 当一个像素是透明的(意味着它的alpha值小于255)时,我的algorithm不应该关心这个,它应该只是修改R,G,B,而Alpha则保持不变。 有时候,它也会将阿尔法向上或向下移动。 但是我把它们看成是两件不同的事情。 Alpha控制透明度,而RGB控制颜色。

如何从UIView创build一个CGLayer进行离屏绘制

我已经阅读了我认为是“Quartz 2D编程指南”的相关部分,但是找不到下面的答案(他们似乎没有在文档中谈论很多关于iOS的内容): 我的应用程序在UIView显示一个graphics。 每隔一段时间,我都必须以某种方式更新graphics,例如更改其中一个形状的填充颜色(我将CGPathRefs保留为重要形状,以便稍后用不同的填充颜色重新绘制它们)。 正如上述文档第169页上的“用CGLayer绘图”一节所描述的那样,我正在考虑将整个graphics绘制成一个CGContext ,我将从CGLayer获取这个CGContext ,如下所示: CGContextRef offscreenContext = CGLayerGetContext(offscreenLayer); 然后,我可以在屏幕上更新CGContext并在UIView的drawRect:方法中将CGLayer绘制到我的UIView中,如下所示: CGContextDrawLayerAtPoint(viewContext, CGPointZero, offscreenLayer); 我遇到的问题是,我从哪里得到我的CGLayer ? 我的理解是我必须使用CGLayerCreateWithContext并提供CGContext作为参数,从中inheritance它的大部分属性。 显然,正确的背景将是UIView的背景,我正在相处 CGContextRef viewContext = UIGraphicsGetCurrentContext(); 但是如果我没有弄错,我只能在drawRect :方法中得到它,并且假设下一次调用该方法的上下文将是相同的,也就是说我只能使用该CGContext在本地方法。 那么,我怎样才能得到一个CGContext ,我可以用它初始化我的CGLayer来创build一个离屏的CGContext来绘制,然后将整个图层绘制回到我的UIView的CGContext ? PS:当你在这里; 如果上面的东西没有意义或不理智,请让我知道。 我刚刚开始钻研Quartz 2D。

在iOS开发中,如果使用Core Graphics和/或Quartz 2D,我怎样才能绘制出一个渐变的圆形,使其看起来像一个球体?

到目前为止,我已经看过使用CGContextDrawLinearGradient()和CGContextDrawRadialGradient(),但是,与前者我无法弄清楚如何使梯度看起来像一个球体,与后者,我不知道如何使渐变成一个球体的形状,因为每次我尝试,它变成了完整的圆柱体而不是只有一个球体的形状。 下面显示了我用来绘制2D圆圈的代码。 我想使用梯度或任何其他方法可能使用只有核心graphics和/或石英2D填充圆的方式,使它看起来像一个球体。 当前绘制圆圈的代码: CGContextRef ctx = UIGraphicsGetCurrentContext(); float x = 20.0; float y = 20.0; float radius = 12.5; CGContextFillEllipseInRect(ctx, CGRectMake(x, y, radius, radius); PS – 上面的代码正如它应该的那样工作,所以万一出现任何错误,他们只是从我的错误input问题,而不是在input代码到实际的文件。

如何将透明渐变遮罩添加到上下文

我用石英2d绘制一个饼图。 我使用图层来绘制底部饼图的reflection。 我想添加一个透明的alpha渐变到reflection,使其越来越透明,直到它不可见。 有人有一个想法? @EDIT:更多细节我的饼图在CGLayerRef中。 我首先将这个图层绘制到CGContextRef。 然后我做了 CGContextTranslateCTM(context, 0, rect.size.height); CGContextScaleCTM(context, 1.0, -1.0); 要颠倒。 然后我画我的图层新的时间 提前致谢, 卢瓦克