小编Dla*_*aor的帖子

i ++和++ i有什么区别?

我看过他们在无数块的C#代码都被使用了,我想知道何时使用i++++i(i为某数量的变量一样int,float,double,等).谁知道这个?

c#

194
推荐指数
6
解决办法
9万
查看次数

如何有效地制作假瓷砖阴影?

所以我正在制作一个基于平铺的游戏,我想在平铺上添加一些假阴影.这有点难以解释所以我会用图片来做:

让我们说这是我的瓷砖世界:

世界

而且我希望它有这样的阴影:

阴影

因为世界是基于图块的,所以我可以将所有阴影部分分割成单独的图像:

部分

但是现在我不知道如何将它带到代码中.嗯,实际上我确实有想法,但它们令人难以置信的乏味,并且它们无法以最佳方式工作.

我尝试了一个巨大的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)

c# block

7
推荐指数
1
解决办法
201
查看次数

如何在物理引擎中有效地模拟静态矩形网格?

我正在制作一个太空射击游戏,它发生在一个大的地牢里,它由大的矩形组成,用来定义墙壁.使用Farseer Physics对游戏中的所有内容进行物理模拟.但是有一个问题:我希望地牢看起来足够大,但这需要我的网格中至少有80x80个矩形,这意味着在最坏的情况下,我有6400个物理模拟的物体,这不完全是性能友好,你可以猜到.

我的临时解决方案是在垂直切片中划分网格,这样,对于每一列,使用布尔添加操作添加所有矩形,然后使用生成的凹多边形创建一个主体.它会稍微提高性能,但是多边形容易陷入混乱,变得不存在,阻塞通常应该可以遍历的方式甚至变得无效并导致Farseer崩溃.

我一直在考虑制作某种算法,以某种方式找到最大的墙壁区域,并将它们合并为一个大矩形,并继续为较小的矩形做这个,直到所有的孔都被填满,但我不知道如何实现这个.这似乎是一个完美的解决方案,因为它解决了性能问题以及我现在所拥有的凹形多边形混乱.有没有人知道如何实现这样的东西?

它不是完全停止使用物理引擎的解决方案,因为我游戏中的很多东西都依赖于它.

编辑:这是一个关于身体现在如何看起来的一个小例子:(每个数字都是一个身体) http://i.imgur.com/6x06o.png

这就是我希望他们成为的样子:

在此输入图像描述

c# physics farseer game-physics

5
推荐指数
1
解决办法
601
查看次数

有没有办法将字符串转换为Type对象?

假设我有这个基本字符串......

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).

c#

1
推荐指数
1
解决办法
126
查看次数

我如何使这个ImageList类通用,以便它可以使用任何资源?

对于我的游戏,我正在创建一个资源类,管理器资源喜欢纹理,声音,字体等.我制作了这个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(以及编写大量重复代码).有谁愿意帮我制作这个的通用版本?

c# generics

0
推荐指数
2
解决办法
288
查看次数

标签 统计

c# ×5

block ×1

farseer ×1

game-physics ×1

generics ×1

physics ×1