Giter VIP home page Giter VIP logo

nannanrun's Introduction

山寨跑酷游戏之———跳跳楠

  • 引擎版本:Cocos2d-x 3.2
  • 开发环境:Win7、VS2012
  • Android NDK: r9d

这是本人在学习cocos2d-x过程中的一个练习作品,模仿了各种移动端横版跑酷游戏的玩法,玩家通过划屏操作控制游戏角色的跑步、飞行、跳跃、滑行、摔倒等各种状态切换以躲避障碍物、或是拾取金币;

游戏分为以下几个场景:

  • LoadingScene:负责加载游戏资源(图片、动画、声音、缓存粒子效果等);
  • MenuScene:游戏主菜单;
  • GameScene:主游戏场景,控制角色与各种道具的动作,监听用户事件及处理;
  • OverScene:游戏结束后显示得分情况;

Layer层次: 由于cocos2d-x是通过设置Node的逻辑Z-Order来控制节点在渲染时的绘制顺序,所以我这里通过给不同的游戏道具给它们分类组别,通过设置不同Z-Order来实现:

  • MapNode-最底层(最先绘制),以下按顺序先后绘制;
  • TrapsNode-陷阱等道具(含金币);
  • ActorSprite-演员(游戏角色);
  • ScoreNode-得分情况(跑动距离、金币数、血量等);

碰撞检测:

  • 利用cocos2d-x 3.2集成的chipmunk物理引擎来现实;
  • 多边形顶点绘制工具:我用的是physics-body-editor,这是一个开源项目,在此获取:https://code.google.com/p/box2d-editor/

模态窗口:

  • 由于cocos2d-x 3.0之后的版本对事件分发机制做了较大的修改,该版本之上实现模态窗口相对简单很多,只需要创建一个遮罩层(项目中的DialogLayer.cpp)盖在所有其他层之上,捕获触摸事件之后设置不再往下传递即可;

关于按键监控:

  • 游戏中玩家需要按系统中的”返回“或者”菜单“键来控制游戏暂停或退出,所以我这里定义了一个基类BaseLayer来监控这些按键事件,项目中所有的场景都继承自该基类;

关于Android 4.4+版本:

  • 由于Android 4.4之后的版本新增了沉浸模式,可以隐藏底下的4个功能键,这无疑给游戏玩家带来了更好的体验,所以我们发布到Android平台的游戏应该启用这个模式,我通过修改项目目录下的proj.android\src\org\cocos2dx\cpp\AppActivity.java文件来实现,参考了这个帖子中提到的实现方法http://discuss.cocos2d-x.org/t/how-to-set-full-screen-on-android-4-4/10278,我修改了一下可以完美兼容4.4以前的版本;

关于性能优化:

  • 纹理图片:利用TexturePacker工具打包纹理,生成相应的plist和png文件;
  • 动画帧:利用SpriteFrameCache实现动画帧缓存;
  • 音效:利用SimpleAudioEngine的preloadEffect进行预加载;
  • 粒子效果:项目中用ParticleSystemQuad加载粒子效果的plist文件,并把它缓存起来(按单例模式调用);

关于游戏名称:

  • 其实整个开发过程中直至开发完成我并没有想过给这个游戏取名字,只是当初我为了取悦女儿(小名楠楠)用了她的照片做为角色头像剪辑,然后把程序导入到手机上给她试玩,没想到她很是喜欢,以至于后来某天她突然对着我说:”爸爸我要玩……那个……跳跳楠“,呵呵,我想这其实是个好名字,那就这么叫它吧!

版权声明:

  • 游戏中的图片、声音等游戏资源大部分来源于网络,仅供学习之用,请勿发布做商业用途。

nannanrun's People

Contributors

ljdzxx avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.