英文论坛原帖:
http://discuss.cocos2d-x.org/t/cocos3-0-tutorial-predict-a-trajectory-with-cocos2d-x-and-box2d/13493
如何使用cocos2d-x和Box2d来预测物体弹道轨迹
本部分内容设定了隐藏,需要回复后才能看到
创建一个新项目
用这些代码创建一个新cocos2d-x项目:
cocos new MyGame -p com.MyCompany.MyGame -l cpp -d ~/MyCompany
关于创建新项目的细节请查阅下面的网页:
http://cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game
注意:当你使用cocos-console新创建一个项目时,文件夹cocos2d会在你的项目文件夹里生成。但因为它太大了,所以我并没有将它上传。
素材资源
下载ball.png 和 dot.png 并复制进Resources文件夹。
Linux版本
打开你的项目文件夹并且在文件夹CMakeLists.txt第161行添加Box2d(在on target link libraries那一部分)
Box2d
结果看起来就像是:
target_link_libraries(${APP_NAME}
ui
network
storage
spine
cocostudio
cocosbuilder
extensions
audio
cocos2d
)
Windows版本
打开你的proj.win32 .SLN 文件并添加Box2D文件依赖
右键点击解决方案Solution而不是项目名称然后点击添加add—>现有项目add exist project,搜索外部资源“Box2D“并添加
现在右键点击解决方案,点击属性,选择项目依赖项Project Dependencies并勾取libBox2D使其加入编译
现在右键点击你的项目名称(解决方案的里面),并选择引用reference,在底部点击添加新引用ADD NEW REFERENCE然后勾选libBox2D并点击确定OK。
点击确定OK关闭窗口。
是时候敲键盘写代码了:
在HelloWorldScene.h里,在第四行也就是#include "cocos2d.h"的下面添加:
1
|
USING_NS_CC;
|
在public的下面添加:
2
3
bool
onTouchBegan(Touch* touch,Event* event);
void
onTouchMoved(Touch* touch,Event* event);
onTouchEnded(Touch* touch,Event* event);
在INIT主要函数中添加鼠标监听事件(提示:是在HelloWorldScene.cpp)
4
5
6
7
8
9
10
//SET MOUSE LISTENER
auto
listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(
true
);
listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan,
this
);
listener->onTouchMoved = CC_CALLBACK_2(HelloWorld::onTouchMoved,monospace!important; font-size:1em!important; min-height:auto!important; color:black!important">);
listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded,monospace!important; font-size:1em!important; min-height:auto!important; color:black!important">);
_eventDispatcher->addEventListenerWithSceneGraPHPriority(listener,monospace!important; font-size:1em!important; min-height:auto!important; color:black!important">);
//END MOUSE LISTENER