草庐IT

c++ - 将大矩形分割成小矩形(2D 打包)

我需要将静态大小的大矩形分割成小矩形的算法。对我来说完美的实现如下所示:structRECT{intl,t,r,b;};classBigRect{public://widthandheightofbigrectBigRect(unsignedwidth,unsignedheight);//returns-1ifrectcannotbeallocated,otherwisereturnsidoffoundrectintGetRect(unsignedwidth,unsignedheight,RECT&out);//returnsallocatedrecttobigrectanglevoi

c++ - Qt GUI 开发 - 使用 QGraphicsView 显示 2D 网格

我是Qt开发的新手,所以我一直在尝试研究我需要设计的用户界面的解决方案。我的项目是模拟在线游戏中的玩家在全局map上移动。为了表示map,我需要显示一个2D网格,网格中的每个空间都代表map的一个区域。然后我需要显示游戏中每个玩家的位置。后端完全正常工作,map实现为2D数组。我只是纠结于如何显示网格。我所做的研究使我相信QGraphicsView是做到这一点的最佳方式,但我似乎找不到与我需要的相关的教程。如果有人对如何实现这一点有任何提示,将不胜感激。谢谢,丹 最佳答案 2D网格只不过是一组水平和垂直线。假设您有一个500x500

c++ - 如何在box2d中检测碰撞但不碰撞?

如何检测body是否与其他body发生碰撞但不对碰撞使用react。默认i-检测碰撞和物体碰撞。如果我设置了fixtureDef过滤器-物体不会发生碰撞,但我无法检测到碰撞。请帮忙! 最佳答案 如果夹具永远不需要与任何物体发生碰撞,您可以将其设为传感器。如果您需要它与某些事物而不是其他事物发生碰撞,您可以在碰撞监听器的PreSolve中执行contact->SetEnabled(false),具体取决于它与什么碰撞。 关于c++-如何在box2d中检测碰撞但不碰撞?,我们在StackOv

c++ - GDI 与 Direct2D

我现在正在编写一个模拟程序,我想将我的应用程序从使用GDI移植到使用Direct2D。但是我的Direct2D代码比我的GDI代码慢得多。我在屏幕上渲染了很多椭圆。在我的GDI应用程序中,我绘制到内存设备上下文,然后使用BitBlt在Windows设备上下文上绘制。使用Direct2D,我在ID2D1HwndRenderTarget上绘图。我的问题是,使用GDI时,我可以轻松绘制400多个椭圆,但仍然有400FPS。当我使用Direct2D执行相同数量的椭圆时,我的FPS下降到30FPS。我已经关闭了抗锯齿,但它并没有真正帮助。有趣的是,与GDI相比,在Direct2D中仅绘制几个椭圆

c++ - 2D游戏物理?

谁能指点我一个用于2D游戏物理等的库,用于为2D平台/横向滚动游戏编程重力、跳跃Action等?或者你能推荐一些用于侧滚轴的算法,比如马里奥、索尼克等? 最佳答案 听起来像Chipmunk可能会满足您的需求。 关于c++-2D游戏物理?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/98628/

c++ - 在 cocos2d-x 中动画 Sprite 时如何加载场景?

我有一个“舞台选择”场景和一个“游戏”场景。但是,当用户按下按钮开始游戏场景时,在按下按钮和显示场景之间会有延迟(在旧设备上大约需要2秒或更长时间)。所以我想我应该创建一个加载场景。所以我现在正在做的是向我的“加载”场景传递一个std::function,它在加载场景出现后0.1秒被调用。这个函数有这样的代码来启动“游戏”场景:用于创建加载场景。autoloading_scene=LoadingScene::createLoadingScene([stage_course](){Director::getInstance()->replaceScene(Game::createScen

c++ - GDB 问题 : Pretty-Printing a 2D Array?

我有一个二维数组矩阵[10][10],我想在调试时检查它。我知道我可以在GDB中使用p*matrix@10但它在一行中输出,难以阅读。有没有办法让这个输出以任何方式格式化,比如说矩阵? 最佳答案 GDB的一个重要特性是在被调试代码中执行函数的能力,因此您可以实现任何您喜欢的打印,例如:#includeintmatrix[10][10];voidprint(intmatrix[10][10]){inti,j;for(i=0;i使用-g开关编译此代码并在GDB下运行后,您可以使用打印功能如下:(gdb)callprint(matrix)

c++ - cocos2d-x中如何设置图层的背景颜色?

我一直在使用cocos2d-x编写游戏,但在更改背景颜色时遇到了问题。我找到了example在cocos2d中,但显然这只适用于用Obj-c编写的cocos2d。基本上这个想法是使用CCLayerColor而不是CCLayer,并在构造函数被触发时设置颜色。有人知道如何在cocos2d-x中改变背景颜色吗?看起来这很简单,我很确定我错过了一些明显的东西。 最佳答案 2.X或以下扩展CCLayerColor而不是CCLayer.例如,classCommonScene:publiccocos2d::CCLayerColor{public

c++ - "live C++ objects that live in memory mapped files"?

因此,我在Gamasutra阅读了JohnCarmack的采访,其中他谈到了他所谓的“存在于内存映射文件中的实时C++对象”。以下是一些引用:JC:Yeah.AndIactuallygetmultiplebenefitsoutofitinthat...ThelastiOSRageproject,weshippedwithsomenewtechnologythat'susingsomecleverstufftomakeliveC++objectsthatliveinmemorymappedfiles,backedbytheflashfilesystemonhere,whichishowI

c++ - 我可以使用带有 OpenGL glTexImage2D 函数的灰度图像吗?

我有一个只有1个channel的纹理,因为它是灰度图像。当我将像素传递给glTexImage2D时,它会变成红色(显然是因为channel1是红色;RGB)。glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,dicomImage->GetColumns(),dicomImage->GetRows(),0,GL_RGBA,GL_UNSIGNED_BYTE,pixelArrayPtr);我要更改GL_RGBA吗?如果有,该怎么办? 最佳答案 将其更改为GL_LUMINANCE。见https://www.khron