我和Unity3d一起工作了一段时间,发现它是OnGUI()或GUITextures的2D部分太笨拙.此外,即使在Unity3d上完成的最小游戏也至少下载10MB,这对2D游戏来说太过分了.
所以,我目前正在寻找2D引擎.我已经尝试过Cocos2D,但它只是iOS,我不想将所有内容重写为Android的另一种语言(因此,例如,Android的Cocos2d的Java端口不是一个选项).相反,我想编写一次代码,并且最简单的麻烦在iOS,Android和Windows Phone 7上进行部署.我同时拥有Mac和Windows.
为了更详细,以下是我对引擎的要求:
我找到了以下引擎:
在2D游戏中绘制等距图块的正确方法是什么?
我已经阅读了一些参考文献(例如这篇文章),它们建议以一种在地图的二维数组表示中对每一列进行锯齿形的方式渲染图块.我想它们应该以钻石方式绘制得更多,其中被绘制到屏幕上的内容更接近于2D阵列的外观,只是旋转了一点.
两种方法都有优缺点吗?
这个主题不时出现在SO上,但通常是因为写得不好的问题而被删除.我看到很多这样的问题,然后在请求附加信息时从OP(通常的低代表)中沉默.如果输入对我来说足够好,我决定回答一个问题,它通常会在活动时每天获得一些投票,但几周之后问题就会被删除/删除,并且所有问题都从一开始就开始.所以我决定写这个Q&A所以我可以直接引用这些问题,而不会一遍又一遍地重写答案......
另一个原因也是这个META线程针对我,所以如果你有额外的输入随意评论.
如何使用C++将位图图像转换为ASCII艺术?
一些限制:
这是一个相关的Wiki页面ASCII艺术(感谢@RogerRowland)
嗯,这是我的要求.我不知道OpenGL,我不愿意学习它,我想直接学习OpenGL ES,因为我的目标是将我的开发定位到android.我想学习OpenGL ES以开发我的2D游戏.我选择它用于演出目的(因为基本的SurfaceView绘图在RT游戏方面效率不高).我的问题是:从哪里开始?我花了一个多月的时间浏览谷歌并阅读/尝试我在任何地方找到的一些教程/示例,但说实话,它没有多大帮助,这有两个原因:
我也尝试过阅读一些源代码(例如:replica island),但代码太复杂了,并且包含很多不必要的东西; 结果:我迷失了100个带有奇怪类名和东西的.java文件.
我想没有像我正在寻找的那样的课程,但是我会很高兴如果有人能给我一些指导和一些链接可能会了解我的目标(只有OpenGL ES 2D Sprites渲染!没什么3D ).
我已经使用Corona SDK工作了一段时间,并且喜欢使用Lua创建功能强大的应用程序的快捷方式.但它只能编译iOS和Android,现在感觉太少了.
我的主要兴趣是它能够编译到桌面和移动.至少对于以下内容:
我更喜欢它更倾向于使用Lua类型的脚本而不是ActionScript,但是请随意发布您曾经使用过的任何内容和爱.
到目前为止我找到了以下引擎:
假设2d空间中的一系列点不是自相交的,那么确定结果多边形面积的有效方法是什么?
作为旁注,这不是作业,我不是在寻找代码.我正在寻找一个可以用来实现我自己的方法的描述.我有关于从点列表中拉出一系列三角形的想法,但我知道有一些关于凸多边形和凹多边形的边缘情况我可能无法捕捉到.
来自维基百科:
交叉乘积是对三维欧几里德空间中的两个向量的二元运算,其导致另一个向量垂直于包含两个输入向量的平面.
鉴于定义仅定义在三个(或七个,一个和零)维度中,如何计算两个二维向量的叉积?
我见过两个实现.一个返回一个新的向量(但只接受一个向量),另一个返回一个标量(但是是两个向量之间的计算).
实现1(返回标量):
float CrossProduct(const Vector2D & v1, const Vector2D & v2) const
{
return (v1.X*v2.Y) - (v1.Y*v2.X);
}
Run Code Online (Sandbox Code Playgroud)
实现2(返回向量):
Vector2D CrossProduct(const Vector2D & v) const
{
return Vector2D(v.Y, -v.X);
}
Run Code Online (Sandbox Code Playgroud)
为什么不同的实施?我将使用标量实现?我将使用矢量实现?
我问的原因是因为我自己编写了一个Vector2D类,并且不知道使用哪种方法.
我正在尝试将纬度/长点转换为2d点,以便我可以将它显示在世界的图像上 - 这是一个墨卡托投影.
我已经看到了各种方法来做这个以及关于堆栈溢出的几个问题 - 我已经尝试了不同的代码片段,虽然我得到了像素的正确经度,但纬度总是偏离 - 似乎越来越合理了.
我需要公式来考虑图像大小,宽度等.
我试过这段代码:
double minLat = -85.05112878;
double minLong = -180;
double maxLat = 85.05112878;
double maxLong = 180;
// Map image size (in points)
double mapHeight = 768.0;
double mapWidth = 991.0;
// Determine the map scale (points per degree)
double xScale = mapWidth/ (maxLong - minLong);
double yScale = mapHeight / (maxLat - minLat);
// position of map image for point
double x = (lon - minLong) * xScale;
double y …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种非常简单的算法来计算多边形交叉/裁剪.也就是说,给定的多边形P
,Q
我想找到的多边形T
被包含在P
在Q
,我希望T
是最大的所有可能的多边形中.
我不介意运行时间(我有一些非常小的多边形),我也可以得到一个近似的多边形交叉点(也就是说,一个点数较少的多边形,但它仍包含在多边形的交叉点中).
但对我来说,算法将是简单的(更便宜的测试)并且最好是短(更少的代码)对我来说非常重要.
编辑:请注意,我希望获得一个代表交叉点的多边形.对于两个多边形是否相交的问题,我不需要一个布尔答案.