Articles of monotouch

在XNA中画一条永无止境的线

我正在XNA中画线,我想永远不会结束。 我也有一个在X方向前进的工具和一个以此工具为中心的相机。 但是,当我到达视口的末端时,线条不再被绘制。 这里有一些图片来说明我的问题: 在开始的时候,这条线贯穿整个屏幕,但随着我的工具向前移动,我们到达线的末端。 以下是绘制线条的方法: private void DrawEvenlySpacedSprites (Texture2D texture, Vector2 point1, Vector2 point2, float increment) { var distance = Vector2.Distance (point1, point2); // the distance between two points var iterations = (int)(distance / increment); // how many sprites with be drawn var normalizedIncrement = 1.0f / iterations; // the Lerp method needs values […]

Monotouch碰撞检测

我想要的Monotouch 2D项目:简单的碰撞检测和与UIViews碰撞的多边形 听起来很简单,不是吗? 我已经评估了市场上的许多引擎,但是没有一个在我的项目中没有不必要的超载,这些都不会让我感到这么简单。 Box2D,monogame / farseer或者Cocos2d似乎已经够用了,但是我并不想把所有这些function拖拽到2个简单的代码块中。 问题是:有没有这样的事情,或者我应该去执行所有这些myslef?

iOS的XNA是否过度杀伤?

我正在使用类似于智商testing游戏的MonoTouch的iPAD游戏。 目前,我可以使用基本的UIImage和animation来编写一些简单的游戏。 我想知道是否应该学习XNA来创建一个游戏,让人们可以把一个球扔在墙上,看到它弹跳。 有没有人看到任何使用XNA的简单二维游戏的教程很好的例子?

多个AudioUnit和一个带有MultiChannelMixer的AudioGraph之间的区别

我正在使用MonoTouch将游戏移植到iOS上,并且在获取声音输出时遇到了一些麻烦。 SystemSound / AVAudioPlayer对于我的需求来说太简单了(我需要循环和多个同步的声音),而且OpenTK并不是微不足道的,除此之外它本身不支持audio解码。 所以我用CoreAudio解决了这个问题。 我已经下载了一些样本,并得到它播放和循环一些声音。 现在我想让它同时播放多个声音。 我注意到通过创建多个RemoteIO来获取多个声音是微不足道的,每个RemoteIO都独立连接到RemoteIO ,但这看起来效率不高。 您也可以通过创建一个graphics并混合连接到RemoteIO上的所有东西来混合多个声音,这似乎是正确的方法。 但是我将自己的决定建立在纯粹的假设基础之上(在iOS的短期经验中,我看到我的假设通常在iOS中是错误的,就像某种反常的“最小惊讶原则”),所以我想问一下如果这两种方法之间存在真正的差异,或者如果有一个“更正确”的方法来做我想做的事情的话,那么CoreAudio专家就会在这里。

CLR事件探查器分配的字节和XNA ContentManager

我一直与XNA ContentManager和内存分配战斗了几个星期,因为我试图将我的游戏从XNA(Windows)移植到ExEn / Monotouch(iphone)。 问题是玩了几个关卡之后,我的游戏在一个真正的iPhone设备(而不是模拟器)上意外退出。 用CLRProfile分析Windows上的内存使用情况,我发现一些有用的东西,但我也发现了一些我不明白的东西。 如果我使用2个ContentManagers(1个用于共享资源,1个用于关卡资产),那么在分析时,“分配的字节数”增长并且在级别级别之后增长,但是由Windows任务管理器测量的内存消耗保持不变(当我卸载内容管理器时当我加载内容时再次)。 显然,我levelManager.Unload()级别结束时。 几个级别后,我的游戏意外退出iPhone设备。 如果我使用1个内容管理器,“CRLProfiler Allocated Bytes”在Windows和iPhone上保持不变, 我可以正常玩游戏,并没有意外退出。 我使用相同的资产级别。 它似乎在ios(iPhone)加载和卸载相同的资产时,它分配内存并消耗所有设备的内存,所以ios杀死它。 任何人都可以解释我是如何工作的? 我读了不less,但我还是不明白发生了什么事。

MonoGameaudio格式

根据文档 ,MP4 AAC是一个很好的支持播放格式,但是MonoGame内容项目似乎只能编译MP3 / WAV / WMA格式。 我试图把我的Android游戏的原始AAC文件,但内容管理器不会加载它们,只有原始的WAV文件的工作,但他们的规模很大。 我想知道如何加载aac或oggaudio文件。

在游戏中检测触摸对象的有效方法?

想象一下,类似于模拟人生的2D游戏可以用于基于触摸的手机,其中可以与场景中的任何物体进行互动。 我怎样才能有效地检测到玩家正在触摸哪个物体? 在我短暂的经历中,循环遍历场景中的所有可见对象并检查它们是否被触摸到目前为止已经完成了工作,但是当屏幕中可能有许多移动对象时,这听起来效率不高,不是吗? 保持可见的移动对象列表本身可能消耗时间,因为可能必须循环遍历所有的帧。 我想过的其他解决scheme是: 空间哈希。 将屏幕划分为网格,并将可见对象放置在相应的存储桶中。 被点击的对象的检测速度很快,但是将对象放置在每个框架的正确的桶中还有额外的开销。 维护一个四叉树。 移动的对象必须经常重新安排,以前的解决scheme看起来更好。 通常在这种情况下做什么?

Unity或MonoTouch与XNATouch / MonoGame? 同样的价格

在确定了monoTouch和Unity的定价之后,我发现定价将是相同的($ 800)。 有了XTouch / MonoGame for monoTouch,我可以将我的游戏移植到droid / apple。 我只是好奇,如果有人已经尝试了XnaTouch和Unity,他们更喜欢哪一个。 我大部分都是2D游戏(如果Unity有2d引擎的话我就可以完成),所以xnaTouch似乎可能会更好,但是Unity对于更多的高级/专业来说似乎更好(更多的公司正在使用它,所以如果我想要这样做不仅仅是我自己我有更多的select,我曾经想过) (我还在某处读到了monoTouch是否违背了新苹果协议的规定?)

有没有一种简单而自动的方式将Windows XNA项目转换为Monotouch Monogame项目?

我刚刚开始在Windows上进行XNA开发。 但是,因为我是iOS的粉丝,我不得不尝试将我的testing代码移植到Mac上的Monotouch上。 我使用了这些说明: http : //www.facepuncher.com/blogs/10parameters/?p= 42但这是如此之多(手动)的工作! 它真的不回答像这样的公开主题:为什么我会复制所有的XNB文件,此外所有的资源,如PNG? 有没有可能自动将Windows XNA项目转换为Monotouch iOS项目或至less创建正确的文件夹结构的工具?

如何加载一个PNG文件没有alpha预乘在IOS?

我正在制作一个游戏,其中我使用alpha值,在某些情况下用于透明度,其他用于遮挡,在另一些情况下用于HDR。 我正在加载像这样的图像(这是MonoTouch,但Objective-C可以很容易地转换为C#): CGImage bitmap = new UIImage(resourcePath).CGImage; width = bitmap.Width; height = bitmap.Height; IntPtr pixels = Marshal.AllocHGlobal(bitmap.Width * bitmap.Height * 4); using (var context = new CGBitmapContext(pixels, bitmap.Width, bitmap.Height, 8, bitmap.Width * 4, CGColorSpace.CreateDeviceRGB(), CGImageAlphaInfo.PremultipliedLast)) { var dest = new RectangleF(0, 0, bitmap.Width, bitmap.Height); context.ClearRect(dest); context.DrawImage(dest, bitmap); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, width, height, 0, PixelFormat.Rgba, PixelType.UnsignedByte, […]