位置: 编程技术 - 正文

〖用cocos2d-android引擎写游戏〗(一)第一个程序HelloWorld(cocos2dx 2.2.2)

发布时间:2024-02-27
〖用cocos2d-android引擎写游戏〗(一)第一个程序HelloWorld分类: Cocos2d-android引擎 -- : 人阅读 评论(1)收藏 举报cocos2d-android游戏引擎开发教程java

推荐整理分享〖用cocos2d-android引擎写游戏〗(一)第一个程序HelloWorld(cocos2dx 2.2.2),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx4.0教程,cocos2d android,cocos2d,cocos2dx 3.17,cocos2d,cocos2d,cocos2d android,cocos2d手机版,内容如对您有帮助,希望把文章链接给更多的朋友!

文本为CC原创,如需转载请注明本文地址:

首先自我介绍,本人大三学生党码农一枚,大一大二做过JavaEE和Android应用,目前在专心学习C&#;&#;和Cocos2d-x手游开发。

cocos2d和cocos2d-x引擎想必大家都已经非常熟悉,这次向大家介绍一下cocos2d的android平台移植版~cocos2d-android引擎,该引擎采用Java编写,适合所有已经掌握了Java基础和有一定Android开发经验的朋友们学习,关于cocos2d-android的详细信息看。

话说cocos2d-android网上相关的资料少的可怜,在百度上几乎很难搜到,如果想查阅资料建议去Google上搜索,半年前我在做android开发时对C&#;&#;还不是很熟悉,所以选择学习了java版的cocos2d-android引擎,资料少真的学的很吃力,我刚开始用它的时候完全是查阅的cocos2d和cocos2d-x的文档学习的,还好cocos2d-android版本的API基本和cocos2d和cocos2d-x没太大差别,只是不如cocos2d-x功能完善,也存在部分bug,不过这些丝毫都不影响你开发一款简单实用的小游戏,以后会经常更新博客来把我对cocos2d-android的学经验提供给大家~。

ok废话不多说,下面开始进入正题。

〖用cocos2d-android引擎写游戏〗(一)第一个程序HelloWorld(cocos2dx 2.2.2)

第一步:创建一个AndroidProject,SDK版本为2.3.3,同创建普通的Android应用一样,如下图所示:

第二步:导入cocos2d-android的jar包,该引擎jar包下载地址: view plaincopypublic class Cocos2dActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); CCGLSurfaceView ccglSurfaceView = new CCGLSurfaceView(this);//cocos2d提供的SurfaceView setContentView(ccglSurfaceView);//设置Activity显示的view CCDirector.sharedDirector().attachInView(ccglSurfaceView); // CCDirector 导演,负责管理和切换场景,负责初始化OPENGL的各项参数 // CCDirector 采用单例模式,通过sharedDirector()方法获取其唯一的实例 // attachInView 与OpenGL的SurfaceView进行连接,意思是将surfaceView交给cocos2d来管理 CCDirector.sharedDirector().setDisplayFPS(true); // 显示fps,需要添加fps_images.png到assets中,否则会报nullpointer,在CCDirector源码中可以看出 CCDirector.sharedDirector().setAnimationInterval(1.0f / );// 设置帧率 帧每秒,人的肉&#;识别帧率为,所以设置为最为合理 CCDirector.sharedDirector().setDeviceOrientation( CCDirector.kCCDeviceOrientationPortrait);// 设置为横屏显示 CCDirector.sharedDirector().setScreenSize(, ); // 设置横屏后的分辨率,其实是将屏幕横竖分成和个小块 CCScene ccScene = CCScene.node(); //创建一个场景,用来显示游戏界面 ccScene.addChild(new MyCCLayer()); //将MyCCLayer层加到场景里 CCDirector.sharedDirector().runWithScene(ccScene);// 运行场景 } @Override protected void onResume() { super.onResume(); CCDirector.sharedDirector().resume(); //恢复游戏运行 // cocos2d提供3个生命周期方法,对应android的三个生命周期 } @Override protected void onPause() { super.onPause(); CCDirector.sharedDirector().onPause(); //暂停,游戏切出时候调用 } @Override protected void onDestroy() { super.onDestroy(); CCDirector.sharedDirector().end(); // 结束,游戏退出时调用 } } [java] view plaincopypublic class MyCCLayer extends CCLayer { private CCSprite sprite_game_bg = null;// 游戏背景精灵 private CCSprite sprite_helloword = null;// helloworld精灵 public MyCCLayer() { init(); } private void init() { sprite_game_bg = CCSprite.sprite("bg.png"); // CCSprite游戏精灵类,需要加载一张图片代表游戏精灵 sprite_game_bg.setAnchorPoint(CGPoint.getZero()); // 设置精灵的锚点 // 锚点是设置在屏幕上显示的位置,原点为自身左下角为准,锚点的&#;乘以被设置锚点的元素宽或高,为移动的距离 sprite_game_bg.setPosition(CGPoint.getZero()); // 设置精灵的坐标,以屏幕的左下角为原点,向右,向上为正方向,属于OpenGL坐标系 this.addChild(sprite_game_bg, 0, 0); // this指代当前对象,即MyCCLayer // 给当前图层添加一个子元素 // 参数1:子元素对象,参数2:子元素重要性,参数3:子元素的标签(可以通过标签取出该元素) sprite_helloword = CCSprite.sprite("helloworld.png"); sprite_helloword.setAnchorPoint(CGPoint.getZero()); sprite_helloword.setPosition( (this.getContentSize().width - sprite_helloword .getContentSize().width) / 2, (this.getContentSize().height - sprite_helloword .getContentSize().height) / 2); // 让其显示最屏幕正中间 this.addChild(sprite_helloword, 1, 1); // sprite_helloword精灵的重要性为1,而sprite_game_bg的重要性为0 // 所以sprite_helloword会显示在sprite_game_bg的上方 // 换言之就是重要性越高,越优先显示在上层 } }

下面列出以上使用的几个Cocos2d-android中常用类及其方法的功能:(1).CCDirector,导演类,负责管理和切换场景。还负责初始化openGL各项参数。 CCDirector引擎的控制者,控制场景的切换,游戏引擎属性的设置1. 单例模式,sharedDirector()取得导演对象2. attachInView()连接OpenGL的SurfaceView3. setDeviceOrientation()设置横屏竖屏4. setDisplayFPS(true)显示fps帧率,这里特别注意,一定要把fps_images.png这张图片放到assets文件夹下,否则会出现空指针异常5. setAnimationInterval(1.0f / )设置帧率,每秒刷新次6. setScreenSize(, )设置屏幕分辨率,高于设置的分辨率时,引擎会自动适配7. runWithScene()运行场景8. replaceScene()改变场景,游戏切换场景时使用9. resume()进入运行状态,cocos2d-android提供了3种生命周期函数,分别与android中的三个生命周期对应,resume在恢复场景时调用. pause()暂停, 可停止所有正在执行动作的精灵操作. end()结束,退出cocos2d管理,释放所有占用资源(2).CCScene,场景类,比如游戏中的设置界面,选择关卡界面,游戏失败界面等等。(3).CCLayer,图层类,附加在场景之中,一个场景可以有多个图层来组成,如果使用过PS绘图将会很容易理解。(4).CCSprite,游戏精灵类,是游戏中最基本的元素,通常一个精灵都需要用一张图片来代表,可以完成多种操作,后续会介绍。

还要补充几点比较重要的:(1).游戏的所有图片资源统一放在assets目录下,cocos2d默认加载图片就是此目录(2).锚点AnchorPoint和坐标Position都可以改变精灵的位置,坐标是在锚点的基础之上进行位置更改,锚点默认为(0.5f,0.5f),即精灵的坐标在精灵的中间位置,如果想让精灵的坐标在精灵的左下角点,要把锚点设置为(0, 0),CGPoint.getZero()返回的结果就是(0,0)(3).如果想横屏不仅要设置cocos2d参数,还需要在AndroidManifest.xml文件中添加这两行代码

[html] view plaincopyandroid:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 第四步:运行项目,因为游戏的帧率较高,建议游戏尽量在真机上测试,真机上的帧率会相对稳定,模拟器帧率较低会产生卡顿现象。下图是在Android2.3.5系统的HTC-G手机上测试截图,在Android4.0以上版本的真机测试同样通过,因为手机的版本分辨率不一致,所以在设置分辨率时请根据手机的真实分辨率来设置,在以后的讲解中会讲解到适配不同手机分辨率的技巧。

cocos2d-android引擎下载地址:

Cocos2dx3.2 CrazyTetris 单线裁剪 对于判断消除的思考(一) 由于不是规则的俄罗斯方块,在消除时,很可能产生不规则的图形,因此,如何判断是否达到消除条件,以及进行方块的裁剪将是本游戏的一个关键问

cocos2dx 3.1.1 win8+eclipse环境下android游戏开发环境搭建 最近又开始看cocos2dx,以前2.x版本的时候都是在linux下进行开发,主要是为了避免安装cygwin,现在新版ndk可以不依赖cygwin进行编译了,于是将开发环境移

cocos2dx-3.1.1 win8+eclipse+android开发 初学者容易迷惑的两个问题 这段时间学习cocos2dx,在理解上容易有几个疑惑的地方,写篇blog记录一下。第一个是资源存放的目录,在使用eclipse进行开发时,有个地方很容易产生误

标签: cocos2dx 2.2.2

本文链接地址:https://www.jiuchutong.com/biancheng/371283.html 转载请保留说明!

上一篇:Cocos2d-x +Android + Windows 7

下一篇:Cocos2dx3.2 CrazyTetris 单线裁剪 对于判断消除的思考(一)

  • 个人购买二手房贷款能贷多少
  • 劳务外包人员在本公司可报销吗
  • 企业捐赠灾区
  • 金融债券的利息收入
  • 注册资本可以是0元吗
  • 异地项目预缴个人所得税
  • 雇佣退休人员工伤赔偿标准
  • 春节商家促销文案
  • 非营利性科研机构接受企业基础研究收入免征企业所得税
  • 固定资产年数总额法
  • 拍卖的商铺过户费怎么算
  • 发票开错了收入增多了当月分录如何红冲?
  • 小规模纳税人税控盘怎么做账
  • 银行账户销户时需要收回开户许可证吗
  • 在汇兑结算方式中汇入行对流行代取的款项应先转入
  • 绿化工程企业所得税减免吗
  • 小规模季度超过30万是全额纳税吗
  • 捐赠允诺是否有法律约束力?
  • 企业预缴所得税
  • 投资收益年底结转怎么算
  • 转出未交增值税科目
  • 工会经费税收
  • 科研费用拨款如何记账?
  • 收据能入账当凭证吗
  • 旅行社开的发票怎么入账
  • 电子税务局清算备案能撤销吗
  • 存出保证金计入货币资金吗
  • 企业取得的分红款要交税吗
  • resnet+unet
  • 先开票后发货合法吗
  • 前端常见面试
  • 商品房测绘收费标准
  • 小企业会计准则没有以前年度损益调整科目
  • 个人劳务费需交什么税种
  • 小规模纳税人当月应交增值税怎么算
  • 年报和汇算清缴报表口径的区别
  • 织梦栏目描述调用
  • mysql查询缓慢
  • 织梦设置的关键词看不到
  • 顺丰的电子发票是不是只有收到以后能开
  • 股东分红的会计分录怎么做
  • 汽车租赁属于经营租赁吗
  • 调整多计提的工资
  • 保洁服务属于
  • 外包工程会计怎么做账
  • 应付劳务费怎么做账
  • 土地出让金如何缴纳
  • 商品互换定义
  • 更正会计差错的方法
  • 存货 跌价
  • 一般纳税人金税盘分录
  • 计提销售费用什么意思
  • 失业保险金退回短信
  • 厂家给的返利应该怎么做会计分录
  • 外购商品用于促销能抵扣吗
  • 公司网站维护费用计哪个科目
  • 如何判断企业实际控制人
  • 全资子公司向母公司借款怎么做账
  • 商业企业进货会计分录
  • sql server 2012 数据库bak脚本还原
  • sql server启动不了 错误2
  • sql server如何进行安全设置
  • mysql嵌套查询联表查询
  • windows自动操作软件
  • fedora14虚拟机安装教程
  • 主板升级bios失败怎么办
  • xp怎么隐藏运行的程序
  • centos安装owncloud
  • win7 64位旗舰版设置插上耳机就能播放声音拔下耳机就自动禁音方法
  • Android游戏开发实践指南
  • Qt Quick + OpenGL + Bullet初次测试
  • NGUI的depth和Z轴的关系
  • unity之血瓶金币的生成
  • python动态参数应用
  • shell脚本定时任务怎么写
  • unity相关问题
  • 微博评论系统
  • 陕西省医保缴费截止日期2024
  • 北京第三税务所咨询电话
  • 如何计算环保税减征政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号