Articles of ios

我应该使用哪种手势识别器来处理多个同时弹奏?

所以,如果你可以用小忍者来画一个游戏,在屏幕下方还有一堆手枪,你可以想象我正在寻找的设置。 我希望玩家能够在忍者上弹飞刀,但是我希望他们能够同时用两个拇指来完成。 手势识别器似乎是这样做的方式,但我不确定哪个是最合适的。 主要的那些似乎适合的是平移手势和轻扫手势。 有没有人能够洞察每个人的优缺点,或者即使有更好的人存在?

我应该如何管理Game Center排行榜中的持续分数?

比方说,我正在开发一款iOS RPG游戏,玩家每杀死一个怪物获得1点。 死亡的怪物数量是持续的数据:这是一个无尽的冒险,并且得分不断增长。 这不是“水果忍者”的“会话得分”,而是“声誉得分”。 有那个比分的Game Center排行榜。 继续杀怪,你的分数上升,排行榜更新。 我的问题是,从技术上讲,您可以注销并使用不同的Game Center帐户login,杀死一个怪物,排行榜将更新为新的GC帐户 。 假设这个分数是一个大问题,这可以被认为是作弊,因为如果你的分数是2000,那么你从未玩过游戏的任何朋友都可以简单的login你的iPhone,玩游戏,系统会更新他们的帐户的分数,基本上给他们2000排行榜无所事事。 我曾经考虑过将一个GC账户连接到一个特定的保存游戏。 除非您使用链接的GC帐户,否则不会更新您的分数。 但是如果玩家真的需要更改他们的GC账户呢? 从技术上讲,他们将被迫开始一个新的游戏,并将他们的帐户连接到该configuration文件。 我应该如何防止这种欺骗? 从本质上讲,我不希望有人向多个GC帐户分发高分,因为游戏不是“会话分数”,因此游戏会不断更新分数。 我意识到这不是什么大不了的事情。 但我很好奇如何避免这种情况。

苹果如何使用App Store图片横幅?

我即将发布我的第一个iOS游戏,并正在阅读Apple iTunes Connect指南 (第237页至第240页)。 我知道他们需要一个尺寸为3200×600像素的PSD文件。 我也明白,这个图像将被裁剪,以适应桌面,iPad和iPhone商店,以及“最小视图”版本。 怎么样,我不明白的是: 他们有没有规模的形象? 我从来没有在iPhone编辑器的select图像中看到高分辨率的横幅。 iPhone规格约为640×960或640×1136像素,指南中iPhone图像区域的宽度似乎要高得多,所以我认为这是重新调整的原因。 他们如何获得左下方的“Extreme Skater”150px300px图像? 这只是标题重新调整在背景的一部分? 没有提到他们如何在指南中做到这一点。 我想,右边的是从编辑select横幅制作指南的iPhone区域获得的,但没有find关于如何获得其他图像的任何规格。 苹果测量与我在这里可以看到的视角有什么关系(它是从iPod touch第四代视网膜显示器获得的,并使用Mac OS X预览工具上的矩形select进行测量)

为什么不在Xamarin.iOS中显示这个UIButton?

我试图实现button到我的游戏。 我注意到iOS有UIButton类,我尝试了,但绘制它时什么也没有显示。 资产图片正确加载,我已经检查过了。 SpriteBatch不是在button上绘图。 Draw在每一帧都被正确地调用。 该button的启用属性设置为True 。 代码简化了: 私人列表button; public void AddButtons() { UIButton b = new UIButton(UIButtonType.Custom); b.SetBackgroundImage(UIImage.FromBundle(“icon.png”),UIControlState.Normal); b.Frame = new System.Drawing.RectangleF(0,0,256,256); buttons.Add(b)中; } public void Draw() { foreach (UIButton b in buttons) { b.Draw(b.Frame); } } 为什么不可见?

OpenGL ES,正射投影和视口

我想在iOS上做一些简单的2D游戏来熟悉OpenGL ES。 我从Ray Wenderlich的教程开始( 如何用OpenGL ES 2.0和GLKit创建简单的2D iPhone游戏 )。 这个教程相当不错,但我错过了一个难题的一些部分。 Ray使用一些像480和320这样的魔术数字来创建一个正交投影。我不清楚他为什么拿这些数字,并且据我所知,精灵并没有被映射到iPad模拟器屏幕的一对一像素。 我尝试使用正交matrix创建的参数,但我无法弄清楚这里的math。 我怎样才能计算数字(底部,顶部,左,右,接近,远)这将是正交投影matrix创建的参数,并在屏幕上显示的原始大小的精灵?

在3D相机math中,计算给定FOV的Z深度是像素单位

我正在iOS和OpenGL ES 2.0中工作。 通过试验和错误,我已经找出了一个截锥体,在特定的z深度像素绘制与我的源纹理1到1。 所以我的纹理中的1个像素是屏幕上的1个像素。 对于2D游戏这是很好的。 当然,这也意味着我也会考虑像四边形的大小和纹理的大小。 例如,如果我的精灵是一个四32×32像素。 四倍大小是3.2个单位宽和高。 而texcoords是32 /纹理的宽度和高度的大小。 那么这个平截头体是: matrixFrustum(-(float)backingWidth/frustumScale,(float)backingWidth/frustumScale, -(float)backingHeight/frustumScale, (float)backingHeight/frustumScale, 40, 1000, mProjection); 凡视网膜屏幕的截锥尺寸是800。 然后在距相机800的距离处,精灵像素的像素与photoshop相同。 对于3D游戏,有时我仍然希望能够做到这一点。 但是根据现场的情况,我有时需要把视场做成不同的东西。 我正在寻找一种方法来弄清楚什么Z深度将达到一个给定的FOV相同的像素统一。 为此,我的mProjection被设置为: matrixPerspective(cameraFOV, near, far, (float)backingWidth / (float)backingHeight, mProjection); 通过testing,我发现在45.0的FOV处,38.5的Z值非常接近像素单位。 而在30.0的FOV,59.5的Z是正确的。 但是,我怎样才能计算一个现货价值呢? 这是我的matrixPerspecitve代码: void matrixPerspective(float angle, float near, float far, float aspect, mat4 m) { //float size = near * tanf(angle / 360.0 […]

我应该如何构建我的代码来添加敌人?

所以我目前正在制作一个1942年的Sprite Kit游戏。 我已经达到了完成几乎所有事情的地步(移动,射击(也承认击中和爆炸物体),菜单等等)..期待敌人。 由于我在编程方面没有那么丰富的经验,所以我不太清楚应该如何执行我的敌人。 我想在我的游戏中有不同的敌人“class级”(他们有不同的外观/武器等),我也希望游戏能够随着时间的推移在游戏中产生更强大的class级。 (例如:在比赛开始时,有一个绿色的敌人,一次性武器,3分钟,他们应该是红色,火两枪) 我应该如何编码我的敌人? 我应该做不同的类(我现在正在考虑的),还是应该用string声明它们,或者使用.plist文件来做属性? (在一个侧面的节点上:我如何从场景代码中访问我的plist属性?) 你有关于敌人/类/ plist文件的其他技巧吗? 或者..有没有其他方式专门在Sprite Kit做这种东西?

游戏中心排行榜没有解雇

我在我的应用程序中实现了Game Center,除了排行榜完成button之外,一切都进行得很顺利,即使添加了gameCenterControllerDidFinish也不排除排行榜。我通过触摸.m文件中的button来调用排行榜,如下所示: – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInNode:self]; SKNode *node = [self nodeAtPoint:location]; if ([node.name isEqualToString:@"rankButton"]) { [self runAction:[SKAction playSoundFileNamed:@"fishtran.m4a" waitForCompletion: NO]]; GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init]; if (gameCenterController != nil) { gameCenterController.viewState = GKGameCenterViewControllerStateAchievements; UIViewController *vc = self.view.window.rootViewController; [vc presentViewController: gameCenterController animated: YES […]

在iPhone和Android上运行Love2D

我有一个用lua开发的游戏2d,现在我想在ios / android中运行它。 有没有任何移植或方式可以做到这一点。 谢谢。

永远保持“活着”的algorithm

我正在执行一个游戏,玩家正在玩(滑动)小红色矩形,目的是不打黑色矩形,不移出内部蓝色矩形。 黑色矩形从左到右(从右到左)和从上到下(从下到上)的轨迹移动。 他们正在移动的速度是恒定的,例如5个像素。 你可以在这个video中得到一个更好的主意。 其中一种游戏模式如下 – 游戏中将提出2条path显示为箭头,其中一条可能导致“死亡”,而另一条将始终是正确的,用户将不得不select其中之一直到他做出错误的select。 移动方向只能是上,下,左或右,而不是对角线,红色矩形的速度是恒定的,例如6个像素,黑色矩形速度是5个像素。 我为“成功”的方向奋斗了一个多星期,至今为止我所做的是: 在1.0到2.0秒之间产生一个随机的浮点数,然后将产生的数字除以0.030得到黑色矩形和红色矩形的移动次数。 计算将在下一次会议中进行的黑色矩形和红色矩形移动点,移动次数乘以黑色矩形5px和红色矩形6px的速度。 在知道了黑色矩形的速度和移动的次数之后,我可以在当前时间段的任何时候告诉他们的位置。 将红色的矩形向左移动,直到它被击中,并记住结果,例如15移动,直到命中。 在正确的方向上做同样的事情。 按照升序之前可以进行的移动来sorting方向。 将红色的矩形移动到可以进行最多移动次数的方向上。 做同样的事情,直到时间会话结束,即在第一步中生成的随机浮动号码。 这个解决scheme大部分时间都在工作,但是有时会导致无法逃脱的位置。 问题不在代码中,而在algorithm逻辑中。 例如看下面的图片: 正如你所看到的那样,红色的长方形将会被一个黑色的长方形卡住的位置。 在这种情况下,最好的解决办法是先移动到顶部1,然后移动到顶部,因为左上角的黑色矩形会移到顶部,但是我真的不知道如何解决这个任务。 什么是完成这个任务的最佳方式。 先谢谢你!