小编Smi*_*Smi的帖子

获取DoDragDrop DragSource

WPF DragDrop.DoDragDrop方法DragSource作为其第一个参数.

有没有办法可以DragSourceOnDrop其他拖放事件中获取此对象?

wpf drag-and-drop

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

QuadTree用于2D碰撞检测

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

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

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

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

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

欢迎任何帮助/信息.

c++ collision-detection quadtree data-structures

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

C#:为什么函数调用比手动内联更快?

我已经测量了两种计算2的幂的方法的执行时间:

1)内联

result = b * b;
Run Code Online (Sandbox Code Playgroud)

2)通过简单的函数调用

result = Power(b);
Run Code Online (Sandbox Code Playgroud)

在调试模式下运行时,一切都按预期进行:调用函数比在线计算(行中385毫秒与函数调用570毫秒)相比要昂贵得多.

在发布模式下,我希望编译器能够大大加快函数调用的执行时间,因为编译器会在内部内联非常小的Power()函数.但我不希望函数调用比手动内联计算更快.

最令人惊讶的是这种情况:在发布版本中,第一次运行需要109 ms,而第二次运行Power()需要62 ms.

函数调用如何比手动内联更快?

以下是您的复制程序:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Starting Test");

        // 1. Calculating inline without function call
        Stopwatch sw = Stopwatch.StartNew();

        for (double d = 0; d < 100000000; d++)
        {
            double res = d * d;
        }

        sw.Stop();
        Console.WriteLine("Checked: " + sw.ElapsedMilliseconds);

        // 2. Calulating power with function call
        Stopwatch sw2 = Stopwatch.StartNew();

        for (int d = …
Run Code Online (Sandbox Code Playgroud)

c# performance release inline inline-code

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

在C++中转换函数指针时的奇怪行为

我最近在C++中遇到了关于函数指针的行为,我无法完全理解.我向谷歌寻求帮助以及一些经验丰富的同事,但即使他们也无能为力.

以下代码展示了这种神秘行为:

class MyClass{
private:
    int i;

public:
    MyClass(): i(0) {}
    MyClass(int i): i(i) {}

    void PrintText() const { std::cout << "some text " << std::endl;}
};

typedef void (*MyFunction) (void*);

void func(MyClass& mc){
    mc.PrintText();
}

int main(){    
    void* v_mc = new MyClass;
    MyFunction f = (MyFunction) func; //It works!
    f(v_mc); //It works correctly!!!

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以,首先我定义一个稍后将使用的简单类(特别是它的成员方法PrintText).然后,我将名称对象定义void (*) (void*)MyFunction- 指向具有一个void*参数且不返回值的函数的指针.

之后,我定义func()了接受MyClass对象引用并调用其方法的函数PrintText.

最后,魔术发生在主要功能上.我为MyClass返回指针的新对象动态分配内存void* …

c++ pointers casting function-pointers

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

为什么在IE上滚动时固定的背景图像会移动?

我正在努力background-image修复.

正如您在我的博客中看到的那样,background-image在IE 11上滚动时正在移动.

我怎样才能解决这个问题?

这是我的CSS:

background-image: url("./images/cover.jpg");
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
background-size: cover;
Run Code Online (Sandbox Code Playgroud)

css internet-explorer background-image internet-explorer-11

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

指针有什么意义?

当我可以声明变量时,C++中的指针有什么意义?什么时候适合使用它们?

c++ pointers

13
推荐指数
2
解决办法
1906
查看次数

Latex列表包忽略列表中的最后一个空白行

我使用LaTeX listings\lstinputlisting来显示外部文件中的文本.该文件包含数据格式描述,末尾有空行.包忽略空白行.如何在列表中显示空白行?

它显示的内容:

1 lorem ipsum...
2 more lorem ipsum
3 lorem lorem ipsum
Run Code Online (Sandbox Code Playgroud)

我想要的是:

1 lorem ipsum
2 more lorem ipsum
3 lorem lorem ipsum
4
Run Code Online (Sandbox Code Playgroud)

latex listings

13
推荐指数
2
解决办法
4716
查看次数

用glfw隐藏鼠标光标

我正在使用glfW制作并在Ubuntu中运行的游戏.我的问题是用线隐藏鼠标光标

glfwDisable(GLFW_MOUSE_CURSOR);
Run Code Online (Sandbox Code Playgroud)

导致一些机器简单地忽略鼠标输入,从而打破游戏.

有人遇到过这个问题吗?如果是这样,你的解决方法是什么?

c++ x11 glfw

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

为什么在GCC中std :: set的演绎失败?

我有一个std::set允许从迭代器范围中扣除的东西.

#include <iostream>
#include <set>

int main() 
{
   std::set s1 = {1,2,3,4}; 
   std::set s2(s1.begin(), s1.end());
}
Run Code Online (Sandbox Code Playgroud)

上述程序未能在GCC中编译.

为什么演绎失败std::set

c++ gcc set template-argument-deduction c++17

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

如何将System.Drawing.font转换为System.Windows.Media.Fonts或TypeFace?

如何将a转换System.Drawing.Font为a System.Windows.Media.FontsTypeFace

或者,我怎么能生成的实例System.Windows.Media.Fonts或者TypeFace从一个实例System.Drawing.Font

c# fonts

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