关于凌建风 cocos2djsdemo-x中demo的使用

iOS / iPhone 利用cocos2d-x制作的一个较为完整的塔防游戏Demo 代码 塔防 游戏引擎(cocos2d)开源代码 -
已有 67 人收藏
&&&&利用cocos2d-x制作的一个较为完整的塔防游戏Demo。
&&&&作者说:自己在一个开源塔防框架基础上写的,添加修改了很多东西,可以作为一个接近完整的塔防游戏了。特色功能是:自动寻路,自动变换行走方向,与uikit的交叉使用。代码量有点多,资源和图片是从越狱手机上用itool获得的。
&&&&小编注:感谢开发者@Sven 发布代码于
测试环境:
&&[Code4App]编译测试
相关代码:
(14750次查看,2755次下载)
(14254次查看,3730次下载)
代码评论:
登录后方可评论
求共享图片资源。
登录后方可评论
有问题可以联系我
登录后方可评论
没明白怎么玩呢?
登录后方可评论
登录后方可评论
-控件分类-
-功能分类-小塔博客 Cocos2d-x技术实战
欢迎来自的盆友!
程序不是看出来的,是写出来的!思想不是想出来的,是敲出来的!欢迎加群交流技术问题!
热度:4,236
本篇博客是在上一篇博客的基础上完成,接入广告和接入微信SDK一样,涉及到的知识是相同的,只是广告平台有多家,各位可以选择合适自己的广告平台,我接入的广告选择的是万普,各广告平台都有提供自己的接入接口,所以,只要我们学会了方法,不一样的地方就是java层的调用接口不同,而c++层,Lua层的调用是不用改变的。接下来就把这三个步骤的主要代码列出来,过程不再细说,请参考上篇博客,关于万普广告平台的使用请&
热度:3,464
本次的游戏代码是使用lua完成,所以接入第三方的SDK也和c++层的方法稍有区别,首先来说明整体的思路。我们是在Android应用平台接入的微信分享,所以在这个平台下,也就是java层实现接入逻辑,留下给c++层调用的接口,c++层通过jni来调用java层实现业务逻辑的接口,而我们是在Lua中完成的游戏逻辑,所以我们还需要做的一个步骤就是,将c++的接口导出给lua层来使用,这个过程需要使用lu&
热度:1,799
本篇博客添加数据和声音,先来完成声音的添加,同样需要将对声音的处理单独的写在一个模块中,留下接口函数给外部调用,我们新建一个lua文件专门来处理声音。SoundDeal = {audioEngine = cc.SimpleAudioEngine:getInstance()}EffectType = {Crash = &sound/crash.mp3&,Newhigh = &qu&
热度:2,868
红色小车和黄色小车的逻辑都已经完成了,本篇博客来做碰撞检测,当红色小车来不及躲避的时候发生碰撞游戏结束,那么如何判断俩辆小车碰撞了呢,我们可以通过俩辆小车的位置来确定,比如当他们的x和y坐标相同的时候就是发生了碰撞,再精确一点就是y坐标相同,x坐标的距离是俩辆小车的宽度之和的一半。甚么时候代表俩辆小车同向运动错开行驶了呢,y坐标有一个差值,x坐标和上边的一样。实际在运用的时候发现在lua中比较数字&
热度:1,783
游戏的一个重要逻辑就是黄色小车变换轨道,红色小车在玩家的控制下避开黄色小车以免发生碰撞,红色小车变轨是玩家控制的,而黄色小车是自动变轨的。上篇博客我们将红色小车和黄色小车的运动分开做了处理,本篇博客就实现一下黄色小车的运动,使黄色小车可以自动变轨。我们将黄色小车的变轨放到固定的俩个点处,一个是由外圈轨道进入到内圈轨道处,另一个是由内圈轨道进入到外圈轨道处。小车在运动的过程中,通过概率来计算是否要进&
热度:1,963
本篇博客实现该游戏的一个重要逻辑——小车变轨。如果小车是在做直线运动变轨非常容易,只是y坐标的不同而已,但是如果小车做的是圆周运动这个变轨就不那么容易了。当然,你可以有多种方法来解决这个问题,我这里使用的是数学计算的方法,大家看一下如下的示意图。当小车做圆周运动变轨的时候,相对于圆心的夹角是不变的,我们可以在小车是外圈轨道的时候计算出这个夹角,然后根据半径乘以这个角度分别得到x和y方向的坐标,然后&
热度:2,672
有了上篇博客的基础,我们先来实现一下游戏的主要逻辑,让小车做圆周运动,运动的过程中做碰撞检测,在适当的时候响应用户的触摸事件。我们不打算一下子做完所有的工作,第一步我们先来实现一个圆周运动。如下图所示,小车的运动轨迹包括一个圆周运动一个直线运动,直线运动很简单,但是圆周运动在Cocos中并没有提供,这个时候就需要我们自己来实现一个圆周运动了。我不打算在Lua层实现一个圆周运动,因为某些接口函数没有&
热度:3,456
从本篇博客开始用纯Lua脚本写一个小游戏——别撞车。自从网站写完游戏实例飞机大战以后就再没有更新其他游戏demo了,最近三个月以来博客数目也很少,期间也在断断续续的学习Cocos2d-x,可能是最近三个月比较消极吧!刚刚参加工作还比较迷茫,自己还没有做好准备就工作了,哎,好快啊!好吧,牢骚就到这里吧,从本篇博客开始写一个小游戏,主要的目的是练习Lua,我们都知道Cocos将2dx中的类作为模块导出&
热度:4,238
现在我们的需求是:在c++层定义了一些类,我们需要将这些类导出给Lua来使用,从而完成在c++层实现起来容易的需要,这个时候就需要将整个类作为模块导出。而Cocos2d-x正是采用的这种思想,将Cocos中的类导出供用户使用,而不是再写一套Lua代码,用户使用Cocos导出的这套接口,在Lua脚本层写游戏代码。为了更好的理解这部分的内容,可以先看一下在Lua中调用c++函数这篇博客,了解c++中调&
热度:4,664
现在我们需要在Lua中调用c++的函数,完成Lua语言实现起来不太方便的功能,这种方法网上有很多说明,但是写得不够详细,初学者看了一头雾水,下面我写一下自己的方法,目的仅仅是让我们先把程序跑起来!首先来看下代码,然后说配置(在Mac下演示),再解释代码。#include &iostream&#ifdef __cplusplusextern &C&{#endif#in&
2014年十月 &(8)
2014年九月 &(3)
2014年八月 &(7)
2014年七月 &(14)
2014年六月 &(15)
2014年五月 &(19)
2014年四月 &(14)
2014年三月 &(22)
2014年二月 &(59)
2014年一月 &(16)
小广告-翻墙小插件
文章关键字
文章数量:177 篇
评论数量:12342 篇
标签数量:139 个
友链数量:7 个
建站日期:
运行天数:1368 天
月度之星:
最后更新:
Powered by3757被浏览193842分享邀请回答
/v_show/id_XMTI2NjcxOTQ0OA==.html
1.6K181 条评论分享收藏感谢收起45831 条评论分享收藏感谢收起查看更多回答Cocos2d-x学习笔记之Hello World!
作者:皂荚花
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Cocos2d-x学习笔记之Hello World!本文基于vs2010和C++语言开发,需要的朋友可以参考下
首先我们要为vs2010安装一个cocos2d-x的插件,有了这个插件,当我们打开vs2010,单击文件-&新建-&项目的时候,在已安装的模板一栏就能看到cocos2d-x了,方便了我们的编写。那么这个插件在什么地方呢,由于cocos2d-x的版本不同,在有的版本中是不包含这个插件的,我已经为大家准备好了,大家单击下载就可以了()。下载好这个插件以后,双击InstallWizardForVS2010.js就可以了,如果你是vs2012,找对应的文件,双击。然后打开你的vs2010,单击文件-&新建-&项目,看看是不是出现如图所示的画面,如果出现证明成功了,我们进行下一步。
& & & & 其实如果在原来引擎项目下编写cocos2d-x的项目完全可以,正如上节所说的,在解决方案上单击新建项目,然后选择cocos2d-x的模板,但是这样做会使整个项目过于庞大,运行起来也很慢,vs要加载太多东西了,当你自己做项目的时候,这种方法更是不可以了。我们就来配置一下第二种方法吧。打开你的vs2010,然后文件-&新建-&项目,选择cocos2d-x的模板,输入项目的名称,并且选择一个合适的位置,然后单击确定按钮,单击下一步,出现如图所示的画面。
& & & & &在该画面中,我们来简单的介绍一下,select physical engine当然就是选择物理引擎了,这里列出的俩个引擎有Box2d,Chipmunk,我们暂时用不到这俩个引擎,所以就不要选了,select audio engine就是选择声音引擎,cocos2d-x支持的声音引擎是就是如图所示了,select lua support,就是选择是否支持lua脚本,lua是一种脚本语言,以后我们会用到的。我们按照默认的选就行了。然后单击finish。
& & & & &在左边的解决方案下我们看到有三个文件夹,include文件夹下放的是c++的头文件,因为是以.h结尾啊,在resource文件夹下放的是资源文件,包括图片啊什么的。source文件夹下就是c++的源文件了。这三个文件夹算是说清楚了。然后我们按一下编译和运行,或者是快捷键ctrl+f7、ctrl+f5,运行起我们的程序。是不是出现了错误,这就对了,因为我们没有包含cocos2d-x的库,下面我们就来解决这个问题。
& & & &1、复制E:\cocos2d-x-2.2\cocos2d-x-2.2下的Debug.win32到我们新建的解决方案下,覆盖掉原来的Debug.win32,这个路径一定要对了啊,就是在解决方案的根目录下,以我自己的为例,就是在F:\code\DemoOfCocos2d下。
& & & &2、在HelloWorld项目上单击右键,选择属性菜单,在项目属性窗口中,在配置属性-&c/c++中的右侧附加包含目录的一项,单击那个三角形的下拉按钮,选择编辑,如图所示。
& & & & 3、在弹出的编辑框中,将$(SolutionDir)换成我们的cocos2d-x的根目录,以我自己的为例,就是E:\cocos2d-x-2.2\cocos2d-x-2.2\,千万别忘了在这个目录的最后边加上\,最后的效果如图所示。
然后确定,再次编译运行我们的程序,看看是不是可以了。到这里我们就运行起了一个简单的helloworld程序了!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Cocos2d-x PluginX的使用(图文教程) - 胡东东博客
Cocos2d-x PluginX的使用(图文教程)
&702&views
Categories:
Share to:
PluginX是为了配置安卓的 sdk 而开发使用的。但是没有见几个完整的,所以这些参考了好多文章,终于成功搞定,现在就详细的总结一下。以 cocos2d-x 2.2.6为例,mac 系统,因为我的是 mac 系统,所以只写 mac 系统的,windows 系统的没有搞过,有需要的可以百度。使用上面首先先说下默认的内置的那几个 sdk使用方法,然后后面再说怎么添加自己的 sdk【一】Cocos2d-x PluginX的默认的使用方法【1】开始准备阶段1.准备工作安装 gawk,教程:因为 mac 系统默认没有 gawk,所以这个必须安装,否则会造成执行时出错2.配置 ndk,sdk 等环境参考方法:这个只是后面编译的时候用,如果以前配置过,可以跳过这一步。3.开始生成比如你的工程是democ。首先生成插件,cocos2d 默认会生成六个sdk,这是内置的,后面会说怎么加自己的sdk,移动到相应的插件目录cd&/Users/admin/Desktop/cocos2d-x-2.2.6/plugin/tools然后执行 publish.sh./publish.sh这个会跳出让你配置的选项,你把 ndk,sdk,ant/bin 的路径填写上去即可,这三个是要下载的,mac 自己不带的,百度下ndk 下载会有提供下载的执行完毕之后会在 plugin 的目录下生成一个 publish 的文件夹然后执行 gameDevGuide.sh./gameDevGuide.sh这个会跳出一个界面选择,终端不用关闭然后把相应的 project 的那个安卓路径填写上去即可,比如这个 democ,那么安卓路径就是工程的 proj.android 的那个路径比如我的这个/Users/admin/Desktop/cocos2d-x-2.2.6/projects/democ/proj.android填写上去,然后点击 next选择相应的插件, 点击 next 即可。这是已经给你配置好了工程里面的Android.mk。【2】导入阶段首先在democ工程的proj.android/jni/hellocpp/main.cpp 里面修改加上这个代码#include&&PluginJniHelper.h&&
jint&JNI_OnLoad(JavaVM&*vm,&void&*reserved)
&&&&JniHelper::setJavaVM(vm);
&&&&PluginJniHelper::setJavaVM(vm);&&//&for&plugins
&&&&return&JNI_VERSION_1_4;
}然后执行 democ 工程的 proj.android 的 build_native.sh,但是会提示说没有合适的 NDK_MODULE_PATH,然后提醒的是 Android.mk 的最后一行,这个是因为没有配置。解决方法修改NDK_MODULE_PATH这个东西,官网上是这么说的修改ndk-build参数,加入publish目录到 NDK_MODULE_PATH ,修改build_native.sh 文件(需要在shell中定义 PLUGIN_ROOT 值),例如:NDK_MODULE_PATH=${PLUGIN_ROOT}/publish:(冒号后面是原有值)但是我根本就没有搞明白怎么设置额,所以就这么设置了。设置democ 的proj.android/jni/Android.mk 文件,你会发现其实执行完gameDevGuide.sh后,它在后面加上了$(call import-module,protocols/android)这个,但是这个路径在执行时找不到,怎么解决呢,提供两个办法第一种:直接写上完整的绝对路径【但是我建议的是使用第二种方法】把protocols/android修改为plugin/publish/protocols/android.第二种:在 democ 的 proj.android 文件夹下建立一个新的文件夹,命名为 plugin-x命名为这个是有用的,然后把刚才生成的 publish 的文件夹下面的文件复制过来,像这样之后开始修改 Android.mk 在加上这两句,$(call&import-add-path,&$(LOCAL_PATH)/../plugin-x)
$(call&import-add-path,&$(LOCAL_PATH)/../plugin-x/protocols)然后Android.mk 的后面的这一段就变成了这样的了。include&$(BUILD_SHARED_LIBRARY)
$(call&import-add-path,&$(LOCAL_PATH)/../plugin-x)
$(call&import-add-path,&$(LOCAL_PATH)/../plugin-x/protocols)
$(call&import-module,cocos2dx)
$(call&import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
$(call&import-module,CocosDenshion/android)
$(call&import-module,extensions)
$(call&import-module,external/Box2D)
$(call&import-module,external/chipmunk)
$(call&import-module,protocols/android)这时候再执行 build_native.sh 就没问题了。生成完毕之后,导入到 eclipse,记得把那个 org 文件复制到 proj.android/src 里面org 文件的路径/Users/admin/Desktop/cocos2d-x-2.2.6/cocos2dx/platform/android/java/src/org然后修改你这个工程的active,就是工程下 src 的主的 java 工程,添加下面代码结构,就是那两行,import&org.cocos2dx.plugin.PluginW
import&org.cocos2dx.lib.Cocos2dxGLSurfaceV
public&class&HelloIAP&extends&Cocos2dxActivity{
&&&&protected&void&onCreate(Bundle&savedState){
&&&&&&&&super.onCreate(savedState);
&&&&&&&&PluginWrapper.init(this);&//&for&plugins
&&&&&&&&//&If&you&want&your&callback&function&can&be&invoked&in&GL&thread,&add&this&line:
&&&&&&&&PluginWrapper.setGLSurfaceView(Cocos2dxGLSurfaceView.getInstance());
}这样之后就配置完成了。【3】开始使用使用 xcode 打开相应工程,然后把工程里面的刚才复制的 public 的,就是 plugin-x 文件夹下面的那个 include 文件夹引入到工程中引入之后,工程里面有 include 这个文件夹然后使用的时候在头文件引入这两个头文件#include&&ProtocolSocial.h&&
#include&&PluginManager.h&然后在使用的地方,首先声明一个对象,然后调用相应的方法即可,比如void&HelloWorld::menuCloseCallback(CCObject*&pSender)
&&&&if&(CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)&{
&&&&plugin::ProtocolSocial&*pp=dynamic_cast&plugin::ProtocolSocial*&(plugin::PluginManager::getInstance()-&loadPlugin(&SocialQQWeibo&));//加载插件
&&&&std::map&&std::string,std::string&&
&&&&mapd[&dd&]=&ss&;
&&&&cocos2d::plugin::TShareInfo&info=
&&&&pp-&share(info);//调用自带的&share&方法
}当然先不要急着使用上面的这个,因为上面的这个是自己添加的sdk,默认的是没有的。添加自定义sdk的方法看第二部分。loadPlugin 里面传的是插件的名字,这个插件的名字是这么找到,相应plugin的proj.android/src/org/cocos2dx/plugin/,会看到下面的.java文件。plugin的名字就是源文件名除去扩展名的部分。就是那个 plugin 里面的 plugins 的文件夹里面【二】整合第三方SDK到Plugin-X【1】准备阶段plugin-x的核心代码在 /protocols目录下。现在我们有4套协议:ProtocolAds, ProtocolAnalytics, ProtocolIAP, ProtocolSocial.如果你想看每个协议的功能,直接进入protocols目录下的 include 找对应的头文件即可如果你的SDK实现了相应的功能这将很简单。你不需要编写任何C++代码。我们已经在核心代码中实现了它。你只需做下面的:创建一个新的Android、iOS工程编写java或OC代码实现我们已经定义的接口、协议。首先在 plugin/plugins 里面创建一个空文件夹,比如为 demo,然后在里面创建文件夹 proj.android 和 proj.ios,这个一个是安卓,一个是 ios,可以只创建一个,名字必须是这样的【2】开始导入打开 eclipse,选择导入已有工程,选择导入plugin\protocols\proj.android导入之后,就已经有了libPluginProtocol 这个然后开始创建Library工程,并依赖于libPluginProtocol,以最多例子的 QQWeibo 为例1.开始创建New -& Android Application Project创建新工程Application Name,Project Name为:libPluginQQWeibo,格式为libPlugin{XXX} ;Package Name为:org.cocos2dx.libSocialQQWeibo,格式为org.cocos2dx.lib{Plugin类型}{Plugin标识}。SDK 都选API 8,Theme:None。点击Next。Mark this project as a library勾选,其余勾选都去掉。Location手动选择刚刚创建的Plugins 的那个proj.android目录。点击Finish。2.实现Plugin,增加一些必要文件:build.xml,直接从其它Plugin工程中复制,这是用来做Ant输出的编译配置。需要修改project name,如:&project&name=&libPluginQQWeibo&&default=&plugin-publish&&ForManifest.xml,用来自动修改目标工程的Manifest.xml文件的,里面填写当前Plugin需要的xml修改内容,比如:权限、Activity声明,等等。直接复制后修改,参考自带Plugin中的格式。sdk目录,把第三方SDK的.jar文件放入。ForAssets、DependProject用途参考自带Plugin。3.引入协议右键点击 libPluginQQWeibo,选择Properties在 Android 里面引入 protocol,要勾选 Is Library4.实现Interface必须创建一个实现Interface的java类,这个类中封装SDK的功能,要求如下:右击src目录,New -& Package,Name:org.cocos2dx.plugin,不要有变化。在这个Package下创建Java类文件,SocialQQWeibo,格式为{Plugin类型}{Plugin标识}。SuperClass空,Interface选择一个Plugin Interface类型,这里是InterfaceSocial。这个类一定要提供一个以 Context 为参数的构造函数,如下: public&SocialQQWeibo(Context&context)&{
&&&&mContext&=&
}当然这个mcontext 是要先声明的,举个例子其余就是Interface的实现了,按第3方SDK文档实现即可,任意发挥。当然说的是把sdk 的 jar 文件要复制到sdk 下面,其实是直接复制到 lib 下面的,这样就可以直接引用,不然我使用的时候发现在 sdk 目录下面引用不了修改plugin/tools/config.sh,加入新的plugin目录名到ALL_PLUGINS变量,这样脚本会自动输出新增的plugin。#define&plugins&array&
export&ALL_PLUGINS=(&flurry&&&umeng&&\
&alipay&&&nd91&&\
&twitter&&&weibo&)然后再接入 publish 就可以了【三】增加新的协议到plugin-x,比如说 login()登陆这个请看另外的这个文章:
Sweeping payments
&Pay by WeChat
Leave a Comment
submitting...
Popular articles
评论数: 28
评论数: 18
评论数: 12
评论数: 11
评论数: 9
拼图的长度有限制哈,可以考虑CoreImage 或者 Core...
此文, 相见恨晚 !!!
叫你还用百毒,活该被坑
请问渲染像素和物理像素有什么区别?提交时,视频应该按照哪种分辨...
是的,现在有个问题,就是我加载成功了,然后上下出现黑边,这个问...
Random articles
评论数: 0
评论数: 2
评论数: 0
评论数: 0
评论数: 2
Categories

我要回帖

更多关于 atxmega16d4 demo 的文章

 

随机推荐