小编Ste*_*nal的帖子

为继承的只读字段分配值?

所以我有一个有很多孩子的基类.此基类定义一些具有默认值的只读属性和变量.这些可能会有所不同,具体取决于孩子.

Readonly属性/字段允许您更改构造函数内部变量的值以及定义,但不能更改其他地方.如果我尝试在子类的构造函数中更改继承的只读变量的值,我会得到一个'readonly变量只能在构造函数中赋值'错误.为什么这样,如果没有反射,我该如何解决这个问题呢?

我的意图:允许用户通过脚本进行扩展,他们只能更改某些字段一次.

c# inheritance constructor readonly

25
推荐指数
3
解决办法
1万
查看次数

与AABB矩形线交叉?

优选地,不使用任何类型的循环,因为这将在游戏中使用.

我希望将一条线与一个任意大小的矩形相交.但我也希望返回交叉点[s].

这是可能的,我做了一些谷歌搜索,但仍然没有解决.

该线使用(x1,y1,x2,y2)定义.矩形也有这两点.

c# intersection collision-detection line

16
推荐指数
1
解决办法
2万
查看次数

线光栅化:覆盖所有像素,无论线条渐变?

基本上,我想使用行算法来确定哪些单元格要检查我的raycaster的碰撞.

Bresenham并不是很好,因为它使用统一厚度的方法,这意味着它忽略了至少半覆盖线的细胞.根本不是很好,因为这意味着我的线路的某些部分没有被检查与单元格的交叉点,导致错误.

我似乎无法找到任何"粗线"算法,任何人都可以帮我找到一个?

红色:不好. 格林:好!
格林:我想要什么.
红色:我目前拥有和不想要的东西.

c# algorithm gradient pixel line

16
推荐指数
2
解决办法
3610
查看次数

基于细胞的液体模拟:局部压力模型?

我正试图在我的基于瓷砖的2D平台上添加半真实的水.水必须有点栩栩如生,压力模型完全局部运行.(IE.只能使用靠近它的单元格中的数据)由于我的游戏性质,你不能确定你需要的数据不在内存不在的区域内,因此需要这个模型.

到目前为止,我已尝试过一种方法,但我无法对其进行精炼以适应我的约束.

对于该模型,每个细胞将是轻微可压缩的,这取决于上述细胞中的水量.当细胞的含水量大于正常容量时,细胞会尝试向上扩展.这创造了一个相当不错的模拟,速度慢(不滞后;水中的变化需要一段时间来传播.),有时.当我试图将它实现到我的引擎中时,我发现我的局限性缺乏其工作所需的精度.如果您愿意,我可以提供更深入的解释或原始概念的链接.

我的约束:

  • 水位只有256个离散值.(没有浮点变量:() - 编辑.浮点数很好.
  • 固定网格大小.
  • 仅2D.
  • U-Bend配置必须正常工作.

我使用的语言是C#,但我可以使用其他语言并将其翻译为C#.

问题是,有人能给我一个水压力模型,尽可能地遵循我的约束吗?

c# simulation

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

nginx中error_page的绝对路径?

有没有办法为nginx error_pages设置绝对路径?不是绝对的http://,而是绝对的/usr/var/nginx/errors/500.html.

configuration webserver nginx absolute-path custom-error-pages

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

方法参数中的C#指针?

我希望从它内部直接修改方法之外的变量值.
指针是正确的,对吗?

怎么样?

c# variables methods pointers

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

引用变量中的函数?

说我有一个功能.我希望在变量中添加对此函数的引用.

所以我可以从变量'bar'调用函数'foo(bool foobar)',好像它是一个函数.例如.'巴(foobar的)'.

怎么样?

c# variables types reference function

6
推荐指数
1
解决办法
2万
查看次数

如何判断我的应用程序是否已从剪贴板侦听器链中删除?

我正在编写一个小实用程序来监视我的剪贴板.这在当前工作得相当好,但一位朋友告诉我,它会随机停止在剪贴板更改时显示警报,并且重新启动会修复它.
我无法重现,但最终我自己遇到了 - 应用程序已停止接收WM_DRAWCLIPBOARD事件.

如何从监听链中删除我的应用程序?

c# windows clipboard winapi

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

使用此设置防止隧道传输?

我设置了一个简单的矩形瓷砖碰撞方案,并且效果很好。

唯一的问题是当你开始从壁架上掉下来时。你的速度达到了每帧 Y/X 变化足够大的程度,足以让你夹入固体物体并出现故障。

基本上我的设置如下:

首先,玩家的位置添加了速度,因此如果没有发生碰撞,玩家现在位于下一帧的位置。下面的列表只是一个函数,checkIntersectTiles(Vector2 maskPos);

  1. 计算要检查的角色周围的图块。
  2. 循环遍历图块,包括边界图块内的图块。
  3. 检查玩家与每个图块的碰撞矩形。
  4. 如果存在交叉点,请将最大的违规轴移出图块,然后将该轴速度设置为 0。
  5. 继续检查。

当你夹入地面时,你会在里面抖动,因为我的算法试图将你移到与你碰撞最严重的瓷砖之外。

我的解决方案:检查从玩家的位置到玩家的位置+速度的每个位置。我被困在这一点上。

有人可以帮我吗?

c# xna collision-detection tunneling

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