小编dot*_*nic的帖子

QuadTree用于2D碰撞检测

我目前正在研究2D射击类型的游戏,我正在使用四叉树进行碰撞检测.我写了一个工作四元树,正确地将我的演员推入他们属于树的节点/叶子.但是,我遇到了一些问题.

首先,我如何实际使用我的四叉树来选择一个对象应该测试碰撞的其他对象?我不确定如何做到这一点.

这提出了第二个问题.假设我在节点中有一个不是另一个节点的邻居的对象,但是该对象足够大以至于跨越几个节点,我如何检查实际的冲突,因为我猜测树可能认为它不是足够接近与"远方"节点中的物体碰撞?是否应将完全适合节点的对象保留在父节点中?

在我的游戏中,大多数物体都有不同的尺寸和移动.

我已经阅读了大量关于四叉树的博客/文章,但大多数只是解释如何构建一棵不是我正在寻找的树.

欢迎任何帮助/信息.

c++ collision-detection quadtree data-structures

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

在Lua中修改字符串中的字符

有没有办法替换Lua中字符串中位置N处的字符.

这是我到目前为止所提出的:

function replace_char(pos, str, r)
    return str:sub(pos, pos - 1) .. r .. str:sub(pos + 1, str:len())
end

str = replace_char(2, "aaaaaa", "X")
print(str)
Run Code Online (Sandbox Code Playgroud)

我不能使用gsub,因为它会取代每个捕获,而不仅仅是位置N的捕获.

string lua gsub lua-patterns

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

VS2010"添加项目"目录更改

有没有办法更改Visual Studio 2010在通过添加 - >新项添加源文件时使用的默认目录?

visual-studio-2010 visual-studio

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

MySQL连接两个表并从两个表中重新调整数据

我有一个非常简单的MySQL查询,它连接两个表:

SELECT teams.id, teams.name, players.id, players.name, players.teamId
FROM teams
LEFT JOIN players
ON teams.id = players.zoneId
WHERE teamId = 3
Run Code Online (Sandbox Code Playgroud)

当我然后获取行时,我可以使用这样的数据:

echo($row["name"] . ", " . $row["id"]);
Run Code Online (Sandbox Code Playgroud)

数组中包含的数据是来自player表的数据.我怎样才能访问"团队"表中的数据?

谢谢.

php mysql

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

C++函数指针

在C++中有没有办法制作一个"untyed"函数指针?例如:

// pointer to global function
void foo( void (*fptr)() );

// pointer to member
void foo( void (Bar::*fptr)() );
Run Code Online (Sandbox Code Playgroud)

有没有办法可以删除该成员所在的班级?所以我可以这样做:

void foo( void ("any type"::*fptr)(), "same type as for the pointer" &instance );
Run Code Online (Sandbox Code Playgroud)

然后,在foo中,我想将该指针存储在一个列表中,这样我就可以在列表上进行迭代并调用指向的函数/成员,而不管它属于哪个类.当然,我需要一个可以调用该函数的实例列表.

谢谢.

c++ pointers function-pointers

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