程序不是看出来的,是写出来的!思想不是想出来的,是敲出来的!欢迎加群298136329交流技术问题!

Cocos2d-x利用jni调用java层代码

Cocos2d-x利用jni调用java层代码
jni的意思是java本地调用,通过jni可以实现java层代码和其他语言写得代码进行交互。在cocos2d-x中,如果想要在c++层调用java层的代码,就是通过jni技术。通过调用java层的代码,我们就可以在Android平台下实现一些引擎没有提供给我们的功能,或者做一些其他的功能。比如加个广告,加个分享,调用Android原生的对话框等等吧。Cocos2d-x比较人性化的是为我们封装了jn…

自定义圆周运动

自定义圆周运动
由于项目需要实现一个圆周运动,而Cocos里边没有提供,所以就自己实现一个吧。在实现之前需要先明白原理,圆周运动作为持续性动作需要继承自ActionInterval,动作的本质就是不断的改变节点的属性,而圆周运动需要改变的是节点的位置属性,改变属性的代码需要写到update函数中,也就是在每帧不断的改变节点的坐标,这样看起来就是做圆周运动了。而update函数的调用是由动作管理器统一调用的,不需要…

视差节点ParallaxNode

视差节点ParallaxNode
ParallaxNode就是视差节点的意思,这个玩意是干嘛用的呢?当我们面对一个背景画面的时候,如果背景在滚动的时候可以使用这个节点,它的功能就是让子节点拥有不同的移动速率,这样,我们就可以让某一些子节点移动的慢一些,而某些子节点移动的快一些。这样营造出的效果就是远处的景物移动的快,而近处的景物移动的快,给人一种更加真实的感觉。说到它的用法,首先我们需要明确的是这个类是一个node,所以,它就像我…

Cocos2d-x3.0屏蔽下层触摸

Cocos2d-x3.0屏蔽下层触摸
关于这个问题网上有不少人在搜索,我自己曾经也写过一篇文章,cocos2dx弹出对话框的实现,其中就用到了屏蔽下层触摸这个功能。Cocos2d-x从3.0版本以来,触摸机制有所改变,虽然实现的道理没有变,不过我今天还是写出这篇博客,就当是简单的复习一下3.0的事件分发机制吧,同时把自己在研究的过程中遇到的问题分享出来。这里采用的方法是最简单,最直接的方法,整体的思路是这样的。设置触摸监听器吞噬触摸,…

Cocos2d-x-3.0粒子系统

Cocos2d-x-3.0粒子系统
首先需要明白粒子系统的原理,在引擎中存在一个粒子池,存放了待激活的粒子。发射器每次从粒子池中获取一个粒子,然后计算赋予粒子初始的属性(速度、大小、方向、生存时间等)后,将粒子发射出去。粒子被发射出去后,会不断地刷新来修正它的属性。当粒子的生存时间结束后,粒子就会死亡,然后重新被粒子池回收,等待下一次的激活。以下演示在3.0版本后使用三种方法来创建粒子效果。// 1、使用Cocos2d-x提供的效果…

浅析schedule和回调函数

浅析schedule和回调函数
Cocos2d-x中涉及到不少的回调函数,有时候我们在用的过程中并没有留意,但如果你仔细推敲一下,发现这里边的故事还真不少,好久没有跟新博客,这篇博客作为一个开头吧,我们借助菜单回调和schedule回调来说下3.0中的回调函数的一些应用。1、回调的第一种方法,传统方法,传入target和回调函数,在适当的时候用target调用回调函数。以下的函数调用是2.x创建菜单项使用回调函数的方法,第三个参…

设置应用横竖屏

设置应用横竖屏
我们做游戏或者应用的时候游戏的横竖屏是经常需要设置的,设置成满足自己要求的版式,为了以后查阅方便,今天特意纪录一下,分别针对Android和iOS平台。Android平台下得横竖屏设置很简单,在Android工程下的AndroidManifest.xml主配置文件中,找到如图所示的段落,默认是landscape,代表的是横屏,如果想设置为竖屏,需要修改为portrait。IOS平台下需要如下的设置…

设计模式——防御式编程模式

设计模式——防御式编程模式
防御式编程模式,这个是在浏览其他博客的时候看到的,这里大体说一下它的意思,关于这方面的文章自行百度吧。其实防御式编程模式并不是一种编程模式,只是说我们写代码的时候为了要保证程序的健壮性要采取一定的防御措施,我们写代码通常都是带有一定的假定的,设想一下如果用户输入了非法的值,我们的假定就会打破,程序就会出现bug,所以为了防止程序出错,我们需要采取一定的措施来避免这种不确定的操作导致的bug,这个就…

设计模式——外观模式

设计模式——外观模式
仍然先来说明一下何为外观模式,一个复杂的系统包含很多子系统,为了使用这个复杂的系统,我们定义一个统一的接口来使用这个复杂的系统。当用户操作的时候只要调用我们提供的这个接口就好了,至于底层的这个复杂的系统,用户不必关系是如何工作的。这里列举一个网上的例子,编译系统是一个复杂的系统,包括什么词法分析,语法分析,语义分析等等,用户在编译程序的时候不需要了解这个复杂的系统到底是怎么编译的,只要使用统一的接…

设计模式——管理者模式

设计模式——管理者模式
首先明确一个问题,什么是管理者模式,管理类是用来管理一组相关对象的类,他提供了访问对象的接口,如果这么说比较抽象的话,我们来看下cocos2dx中都有哪些类是管理类你就会很明白了,例如TextureCache, SpriteFrameCache, AnimationCache,这些类都是管理类。就拿SpriteFrame来说,这个类管理了对象spriteframe,我们通过提供一个键来获得对应的值…