我看过他们在无数块的C#代码都被使用了,我想知道何时使用i++
或++i
(i
为某数量的变量一样int
,float
,double
,等).谁知道这个?
所以我正在制作一个基于平铺的游戏,我想在平铺上添加一些假阴影.这有点难以解释所以我会用图片来做:
让我们说这是我的瓷砖世界:
而且我希望它有这样的阴影:
因为世界是基于图块的,所以我可以将所有阴影部分分割成单独的图像:
但是现在我不知道如何将它带到代码中.嗯,实际上我确实有想法,但它们令人难以置信的乏味,并且它们无法以最佳方式工作.
我尝试了一个巨大的if语句......
bool ul = adjacentBlocks[0, 0] == Block.Type.Rock; //Upper Left
bool um = adjacentBlocks[1, 0] == Block.Type.Rock; //Upper Middle
bool ur = adjacentBlocks[2, 0] == Block.Type.Rock; //Upper Right
bool ml = adjacentBlocks[0, 1] == Block.Type.Rock; //Center Left
//bool cm = adjacentBlocks[1, 1] == Block.Type.Rock; //CURRENT BLOCK - NOT NEEDED
bool mr = adjacentBlocks[2, 1] == Block.Type.Rock; //Center Right
bool ll = adjacentBlocks[0, 2] == Block.Type.Rock; //Lower Left
bool lm = adjacentBlocks[1, 2] == Block.Type.Rock; //Lower …
Run Code Online (Sandbox Code Playgroud) 我正在制作一个太空射击游戏,它发生在一个大的地牢里,它由大的矩形组成,用来定义墙壁.使用Farseer Physics对游戏中的所有内容进行物理模拟.但是有一个问题:我希望地牢看起来足够大,但这需要我的网格中至少有80x80个矩形,这意味着在最坏的情况下,我有6400个物理模拟的物体,这不完全是性能友好,你可以猜到.
我的临时解决方案是在垂直切片中划分网格,这样,对于每一列,使用布尔添加操作添加所有矩形,然后使用生成的凹多边形创建一个主体.它会稍微提高性能,但是多边形容易陷入混乱,变得不存在,阻塞通常应该可以遍历的方式甚至变得无效并导致Farseer崩溃.
我一直在考虑制作某种算法,以某种方式找到最大的墙壁区域,并将它们合并为一个大矩形,并继续为较小的矩形做这个,直到所有的孔都被填满,但我不知道如何实现这个.这似乎是一个完美的解决方案,因为它解决了性能问题以及我现在所拥有的凹形多边形混乱.有没有人知道如何实现这样的东西?
它不是完全停止使用物理引擎的解决方案,因为我游戏中的很多东西都依赖于它.
编辑:这是一个关于身体现在如何看起来的一个小例子:(每个数字都是一个身体)
这就是我希望他们成为的样子:
假设我有这个基本字符串......
string a = "Entity";
Run Code Online (Sandbox Code Playgroud)
而这个Type对象......
Type t;
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个Type对象通过读取引用类型Entity a
?
Exanple:如果a
更改为Prop
,则会创建一个引用该Prop
类型的Type对象.t
那就等于typeof(Prop)
.
对于我的游戏,我正在创建一个资源类,管理器资源喜欢纹理,声音,字体等.我制作了这个ImageList类,它在运行时根据需要自动加载纹理.
class TextureList
{
private Dictionary<string, Texture> _list;
public Texture this[string name]
{
get
{
Texture tex;
bool success = List.TryGetValue(name, out tex);
if (!success)
{
tex = Resources.LoadImage(name);
List[name] = tex;
}
return tex;
}
}
protected Dictionary<String, Texture> List
{
get
{
return _list ?? new Dictionary<String, Texture>();
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想使这个类变得通用,这样我就可以创建一个FontList或SoundList类,而无需将每个纹理更改为Sound或Font(以及编写大量重复代码).有谁愿意帮我制作这个的通用版本?