狠狠撸

狠狠撸Share a Scribd company logo
13年6月10日月曜日
13年6月10日月曜日
? twitter ID : @itoKami1123
? 仕事はHTML5/CSS3/JavaScriptで
業務Webアプリ作ってます。
何かお仕事あればご連絡を!
? Cocos2d歴は、Cocos2d-xを1ヶ月位...
13年6月10日月曜日
趣味アプリの宣伝
Cocos2d-xの実績
????????。????????
13年6月10日月曜日
13年6月10日月曜日
13年6月10日月曜日
Director
sprite
13年6月10日月曜日
13年6月10日月曜日
// CatJumpLayer.h cocos2dx-study001
#ifndef __cocos2dx_study001__CatJumpLayer__
#define __cocos2dx_study001__CatJumpLayer__
#include "cocos2d.h"
using namespace cocos2d;
class CatJumpLayer : public CCLayer
{
public:
bool init();
CREATE_FUNC(CatJumpLayer);
};
#endif /* defined(__cocos2dx_study001__CatJumpLayer__) */
13年6月10日月曜日
#define CREATE_FUNC(__TYPE__) 
static __TYPE__* create() 
{ 
__TYPE__ *pRet = new __TYPE__(); 
if (pRet && pRet->init()) 
{ 
pRet->autorelease(); 
return pRet; 
} 
else 
{ 
delete pRet; 
pRet = NULL; 
return NULL; 
} 
}
13年6月10日月曜日
// CatJumpLayer.cpp cocos2dx-study001
#include "CatJumpLayer.h"
bool CatJumpLayer::init()
{
if ( !CCLayer::init() ){
return false;
}
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSprite* catSprite = CCSprite::create("cat.png");
catSprite->setPosition( ccp(size.width/2, size.height/2) );
this->addChild(catSprite, 0);
return true;
}
sprite
13年6月10日月曜日
// CatJumpScene.h cocos2dx-study001
#ifndef __cocos2dx_study001__CatJumpScene__
#define __cocos2dx_study001__CatJumpScene__
#include "cocos2d.h"
using namespace cocos2d;
class CatJumpScene : public CCScene
{
public:
bool init();
CREATE_FUNC(CatJumpScene);
};
#endif /* defined(__cocos2dx_study001__CatJumpScene__) */
sprite
13年6月10日月曜日
// CatJumpScene.cpp cocos2dx-study001
#include "CatJumpScene.h"
#include "CatJumpLayer.h"
bool CatJumpScene::init()
{
if ( !CCScene::init() ){
return false;
}
CatJumpLayer *layer = CatJumpLayer::create();
this->addChild(layer);
return true;
}
sprite
13年6月10日月曜日
// AppDelegate.cpp cocos2dx-study001
// (???省略???)
bool AppDelegate::applicationDidFinishLaunching()
{
CCDirector *pDirector = CCDirector::sharedDirector();
// (???省略???)
CCScene *catJumpScene = CatJumpScene::create();
pDirector->runWithScene(catJumpScene);
return true;
}
// (???省略???)
Director
sprite
13年6月10日月曜日
13年6月10日月曜日
// CatJumpLayer.h cocos2d_study001
#import "cocos2d.h"
@interface CatJumpLayer : CCLayer
@end // CatJumpLayer.h cocos2dx-study001
#ifndef __cocos2dx_study001__CatJumpLayer__
#define __cocos2dx_study001__CatJumpLayer__
#include "cocos2d.h"
using namespace cocos2d;
class CatJumpLayer : public CCLayer
{
public:
bool init();
CREATE_FUNC(CatJumpLayer);
};
#endif /*
defined(__cocos2dx_study001__CatJumpLayer__) */
13年6月10日月曜日
Objective-Cは
サブクラスが親クラスのクラスメソッドを
サブクラスのものとして使えるみたいです。
CatJumpLayer *layer = [CatJumpLayer node];
不思議ですね。
Cocos2d(Objective-C)と
Cocos2dx(c++)のちがうとこ
http://qiita.com/items/5ed59ce25be5bb0e5731?
fb_action_ids=462829403809503&fb_action_types=og.likes&fb_source=aggregation&fb_aggregation_id=288381481237582
13年6月10日月曜日
// CatJumpLayer.m cocos2d_study001
#import "CatJumpLayer.h"
@implementation CatJumpLayer
-(id)init
{
if( !(self=[super init]) ) {
return self;
}
CGSize size = [[CCDirector sharedDirector] winSize];
CCSprite* catSprite = [CCSprite spriteWithFile:@"cat.png" ];
catSprite.position = ccp(size.width/2, size.height/2);
[self addChild:catSprite z:0];
return self;
}
@end
Cocos2d(Objective-C)で書く
CCLayerサブクラス(.m)
sprite
// CatJumpLayer.cpp cocos2dx-study001
#include "CatJumpLayer.h"
bool CatJumpLayer::init()
{
if ( !CCLayer::init() ){
return false;
}
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSprite* catSprite = CCSprite::create("cat.png");
catSprite->setPosition( ccp(size.width/2, size.height/2) );
this->addChild(catSprite, 0);
return true;
}
13年6月10日月曜日
// CatJumpScene.h cocos2d_study001
#import "cocos2d.h"
#import "CatJumpLayer.h"
@interface CatJumpScene : CCScene
@end
Cocos2d(Objective-C)で
CCSceneサブクラス(.h)
sprite
// CatJumpScene.h cocos2dx-study001
#ifndef __cocos2dx_study001__CatJumpScene__
#define __cocos2dx_study001__CatJumpScene__
#include "cocos2d.h"
using namespace cocos2d;
class CatJumpScene : public CCScene
{
public:
bool init();
CREATE_FUNC(CatJumpScene);
};
#endif /* defined(__cocos2dx_study001__CatJumpScene__) */
13年6月10日月曜日
// CatJumpScene.m?cocos2d_study001
#import "CatJumpScene.h"
@implementation CatJumpScene
-(id)init
{
if( !(self=[super init])) {
return self;
}
CatJumpLayer *layer = [CatJumpLayer node];
[self addChild:layer];
return self;
}
@end
Cocos2d(Objective-C)で
CCSceneサブクラス(.m)
sprite
// CatJumpScene.cpp cocos2dx-study001
#include "CatJumpScene.h"
#include "CatJumpLayer.h"
bool CatJumpScene::init()
{
if ( !CCScene::init() ){
return false;
}
CatJumpLayer *layer = CatJumpLayer::create();
this->addChild(layer);
return true;
}
13年6月10日月曜日
// AppDelegate.m cocos2d_study001
#import "cocos2d.h"
#import "AppDelegate.h"
#import "CatJumpScene.h"
@implementation MyNavigationController
// ???省略???
-(void) directorDidReshapeProjection:(CCDirector*)director
{
if(director.runningScene == nil) {
[director runWithScene: [CatJumpScene node]];
}
}
@end
Cocos2d(Objective-C)で
CCSceneサブクラス起動
Director
sprite
// AppDelegate.cpp cocos2dx-study001
// (???省略???)
bool AppDelegate::applicationDidFinishLaunching()
{
CCDirector *pDirector = CCDirector::sharedDirector();
// (???省略???)
CCScene *catJumpScene = CatJumpScene::create();
pDirector->runWithScene(catJumpScene);
return true;
}
// (???省略???)
13年6月10日月曜日
13年6月10日月曜日
var CatJumpLayer = cc.Layer.extend({
init:function () {
if ( !this._super() ){
return false;
}
var size = cc.Director.getInstance().getWinSize();
var catSprite = cc.Sprite.create("res/cat.png");
catSprite.setPosition(cc.p(size.width / 2, size.height / 2));
this.addChild( catSprite, 0);
return true;
}
}); // CatJumpLayer.cpp cocos2dx-study001
#include "CatJumpLayer.h"
bool CatJumpLayer::init()
{
if ( !CCLayer::init() ){
return false;
}
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSprite* catSprite = CCSprite::create("cat.png");
catSprite->setPosition( ccp(size.width/2, size.height/2) );
this->addChild(catSprite, 0);
return true;
}
sprite
13年6月10日月曜日
var CatJumpScene = cc.Scene.extend({
ctor:function(){
this.init();
},
init:function () {
if ( !this._super() ){
! return false;
}
var layer = new CatJumpLayer();
layer.init();
this.addChild(layer);
return true;
}
});
// CatJumpScene.cpp cocos2dx-study001
#include "CatJumpScene.h"
#include "CatJumpLayer.h"
bool CatJumpScene::init()
{
if ( !CCScene::init() ){
return false;
}
CatJumpLayer *layer = CatJumpLayer::create();
this->addChild(layer);
return true;
}
sprite
13年6月10日月曜日
var cocos2dApp = cc.Application.extend({
config:document['ccConfig'],
ctor:function (scene) {
this._super();
this.startScene = scene;
// ???省略???
},
applicationDidFinishLaunching:function () {
// ???省略???
var director = cc.Director.getInstance();
// ???省略???
cc.LoaderScene.preload(g_ressources, function () {
director.replaceScene(new this.startScene());
}, this);
return true;
}
});
var myApp = new cocos2dApp(CatJumpScene);
Director
// AppDelegate.cpp cocos2dx-study001
// (???省略???)
bool AppDelegate::applicationDidFinishLaunching()
{
CCDirector *pDirector = CCDirector::sharedDirector();
// (???省略???)
CCScene *catJumpScene = CatJumpScene::create();
pDirector->runWithScene(catJumpScene);
return true;
}
// (???省略???)
sprite
13年6月10日月曜日
Director
sprite
13年6月10日月曜日
// CatSprite.h cocos2dx-study001
#ifndef __cocos2dx_study001__CatSprite__
#define __cocos2dx_study001__CatSprite__
#include "cocos2d.h"
typedef enum{
CAT_DIRECTION_NONE, CAT_DIRECTION_LEFT, CAT_DIRECTION_RIGHT,
}DIRECTION;
using namespace cocos2d;
class CatSprite : public CCSprite,public CCTargetedTouchDelegate
{
public:
DIRECTION _direction;
static CatSprite* create(const char *pszFileName);
void onEnter();
void onExit();
CCRect getRect();
void catJump();
void toggleDirection();
bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
};
#endif /* defined(__cocos2dx_study001__CatSprite__) */
13年6月10日月曜日
// CatSprite.cpp cocos2dx-study001
#include "CatSprite.h"
CatSprite* CatSprite::create(const char *pszFileName)
{
CatSprite *sprite = new CatSprite();
if (sprite && sprite->initWithFile(pszFileName)){
sprite->autorelease();
return sprite;
}
CC_SAFE_DELETE(sprite);
return NULL;
}
void CatSprite::onEnter()
{
CCSprite::onEnter();
this->_direction = CAT_DIRECTION_NONE;
CCTouchDispatcher* touchDispatcher = CCDirector::sharedDirector()->getTouchDispatcher();
touchDispatcher->addTargetedDelegate(this, 0, true);
}
void CatSprite::onExit()
{
CCSprite::onExit();
CCTouchDispatcher* touchDispatcher = CCDirector::sharedDirector()->getTouchDispatcher();
touchDispatcher->removeDelegate(this);
}
// ????後半につづく????
13年6月10日月曜日
// ????後半?つづき????
CCRect CatSprite::getRect()
{
float h = this->getContentSize().height;
float w = this->getContentSize().width;
float x = this->getPosition().x -w/2;
float y = this->getPosition().y -h/2;
return CCRect(x, y, w, h);
}
void CatSprite::catJump()
{
this->stopAllActions();
CCSize size = CCDirector::sharedDirector()->getWinSize();
float toX = size.width/2;
toX += ( this->_direction == CAT_DIRECTION_LEFT )?(-100):+100;
CCPoint jumpPosition = ccp( toX, size.height/2);
CCFiniteTimeAction *actionMove = CCJumpTo::create( 1.0, jumpPosition, 64.0, 2 );
this->runAction( actionMove );
}
void CatSprite::toggleDirection()
{
this->_direction = ( this->_direction != CAT_DIRECTION_LEFT )
? CAT_DIRECTION_LEFT : CAT_DIRECTION_RIGHT;
}
bool CatSprite::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
CCPoint location = pTouch->getLocation();
CCRect rect = this->getRect();
if ( rect.containsPoint(location) ){
this->catJump();
this->toggleDirection();
return true;
}
return false;
};
13年6月10日月曜日
// CatSprite.h cocos2d_study001
#import "cocos2d.h"
typedef enum{
CAT_DIRECTION_NONE,
CAT_DIRECTION_LEFT,
CAT_DIRECTION_RIGHT,
}DIRECTION;
@interface CatSprite : CCSprite <CCTouchOneByOneDelegate>
@property (nonatomic,assign) DIRECTION direction;
-(CGRect)getRect;
-(void)catJump;
-(void)toggleDirection;
@end
13年6月10日月曜日
// CatSprite.m cocos2d_study001
#import "CatSprite.h"
@implementation CatSprite
-(void)onEnter
{
[super onEnter];
self.direction = CAT_DIRECTION_NONE;
[[[CCDirector sharedDirector]touchDispatcher]addTargetedDelegate:self
priority:0
swallowsTouches:YES];
}
-(void)onExit
{
[super onExit];
[[[CCDirector sharedDirector]touchDispatcher] removeDelegate:self];
}
-(CGRect)getRect
{
float h = self.contentSize.height;
float w = self.contentSize.width;
float x = self.position.x -w/2;
float y = self.position.y -h/2;
return CGRectMake(x, y, w, h);
}
// 後半につづく???
13年6月10日月曜日
// つづき???
-(void)catJump
{
[self stopAllActions];
CGSize size = [[CCDirector sharedDirector] winSize];
float toX = size.width/2;
toX += ( self.direction == CAT_DIRECTION_LEFT )?(-100):(+100);
CGPoint jumpPosition = ccp( toX, size.height/2);
CCFiniteTimeAction *actionMove =[CCJumpTo actionWithDuration:1.0
position:jumpPosition
height:64.0
jumps:2];
[self runAction:actionMove];
}
-(void)toggleDirection
{
self.direction = ( self.direction != CAT_DIRECTION_LEFT )
? CAT_DIRECTION_LEFT :CAT_DIRECTION_RIGHT;
}
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
CGPoint touchPotision = [touch locationInView:touch.view];
CGPoint position = [[CCDirector sharedDirector] convertToGL:touchPotision];
if( CGRectContainsPoint( self.boundingBox , position) ){
[self catJump];
[self toggleDirection];
return YES;
}
return NO;
}
@end
13年6月10日月曜日
var CAT_DIRECTION = { NONE : 0, LEFT : 1, RIGHT : 2,};
var CatSprite = cc.Sprite.extend({
direction:null, // :CAT_DIRECTION
ctor:function(){ this._super(); },
onEnter:function(){
this._super();
this.direction = CAT_DIRECTION.NONE,
cc.Director.getInstance().getTouchDispatcher().addTargetedDelegate(this, 1,
true);
},
onExit:function () {
this._super();
cc.Director.getInstance().getTouchDispatcher().removeDelegate(this);
},
getRect:function(){
var h = this._rect.size.height;
var w = this._rect.size.width;
var x = this.getPosition().x - (w/2);
var y = this.getPosition().y - (h/2);
return cc.rect( x, y, w, h );
},
13年6月10日月曜日
catJump:function(){
this.stopAllActions();
var size = cc.Director.getInstance().getWinSize();
var toX = size.width/2;
toX += (this.direction == CAT_DIRECTION.LEFT)?(-100):(+100);
var jumpPosition = cc.p( toX, size.height/2);
var actionMove = cc.JumpTo.create( 1.0, jumpPosition, 64.0, 2);
this.runAction( actionMove);
},
toggleDirection: function(){
this.direction = (this.direction!==CAT_DIRECTION.LEFT)
? CAT_DIRECTION.LEFT : CAT_DIRECTION.RIGHT;
},
onTouchBegan:function (touch, event) {
var getPoint = touch.getLocation();
var myRect = this.getRect();
if ( cc.Rect.CCRectContainsPoint( myRect, getPoint) ){
this.catJump();
this.toggleDirection();
return true;
}
return false;
}
});
13年6月10日月曜日
CatSprite.create=function( imgFile){
var sprite = new CatSprite( imgFile);
if ( sprite && sprite.initWithFile(imgFile) ){
return sprite;
}
return null;
};
13年6月10日月曜日
おしまい
13年6月10日月曜日

More Related Content

Similar to Cocos2d/2d-x/html5 [Objective-C/C++/JavaScript] 好みの言語はどれですか? (20)

3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう
3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう
3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう
AdvancedTechNight
?
Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本
Damper Matsu
?
Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島
Tomoaki Shimizu
?
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
?
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
Tomoaki Shimizu
?
Cocos2d x-sprite3d
Cocos2d x-sprite3dCocos2d x-sprite3d
Cocos2d x-sprite3d
aktsk
?
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Tomoaki Shimizu
?
?タイルマップに挑戦
?タイルマップに挑戦?タイルマップに挑戦
?タイルマップに挑戦
Nishida Kansuke
?
肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール
肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール
肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール
Tomoaki Shimizu
?
CocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSBCocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSB
Tomoaki Shimizu
?
?初期フ?ロシ?ェクトを改造!
?初期フ?ロシ?ェクトを改造!?初期フ?ロシ?ェクトを改造!
?初期フ?ロシ?ェクトを改造!
Nishida Kansuke
?
颁厂厂だけで実现するグラフィック表现
颁厂厂だけで実现するグラフィック表现颁厂厂だけで実现するグラフィック表现
颁厂厂だけで実现するグラフィック表现
AdvancedTechNight
?
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
?
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
?
Dive into RTS - another side
Dive into RTS - another sideDive into RTS - another side
Dive into RTS - another side
Kiwamu Okabe
?
Precise garbage collection for c
Precise garbage collection for cPrecise garbage collection for c
Precise garbage collection for c
miura1729
?
emc++ chapter32
emc++ chapter32emc++ chapter32
emc++ chapter32
Tatsuki SHIMIZU
?
第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」
第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」
第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」
Shinnosuke Morimoto
?
Cocos2d xで簡単なゲームを作ってみよう!
Cocos2d xで簡単なゲームを作ってみよう!Cocos2d xで簡単なゲームを作ってみよう!
Cocos2d xで簡単なゲームを作ってみよう!
Tomoaki Shimizu
?
3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう
3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう
3顿颁骋(3顿コンピュータグラフィック)を奥别产骋尝で始めよう
AdvancedTechNight
?
Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本
Damper Matsu
?
Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島Cocos2d-x実践講座 in 鹿児島
Cocos2d-x実践講座 in 鹿児島
Tomoaki Shimizu
?
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
Tomoaki Shimizu
?
Cocos2d x-sprite3d
Cocos2d x-sprite3dCocos2d x-sprite3d
Cocos2d x-sprite3d
aktsk
?
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Tomoaki Shimizu
?
?タイルマップに挑戦
?タイルマップに挑戦?タイルマップに挑戦
?タイルマップに挑戦
Nishida Kansuke
?
肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール
肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール
肠辞肠辞蝉2诲-虫における叠辞虫2顿の利用方法および便利なツール
Tomoaki Shimizu
?
CocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSBCocosBuilderとcocos2d-x JSB
CocosBuilderとcocos2d-x JSB
Tomoaki Shimizu
?
?初期フ?ロシ?ェクトを改造!
?初期フ?ロシ?ェクトを改造!?初期フ?ロシ?ェクトを改造!
?初期フ?ロシ?ェクトを改造!
Nishida Kansuke
?
颁厂厂だけで実现するグラフィック表现
颁厂厂だけで実现するグラフィック表现颁厂厂だけで実现するグラフィック表现
颁厂厂だけで実现するグラフィック表现
AdvancedTechNight
?
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
?
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
?
Dive into RTS - another side
Dive into RTS - another sideDive into RTS - another side
Dive into RTS - another side
Kiwamu Okabe
?
Precise garbage collection for c
Precise garbage collection for cPrecise garbage collection for c
Precise garbage collection for c
miura1729
?
第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」
第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」
第5回 HTML5minutes! LT 「ねこて?もて?きるWebGL」
Shinnosuke Morimoto
?
Cocos2d xで簡単なゲームを作ってみよう!
Cocos2d xで簡単なゲームを作ってみよう!Cocos2d xで簡単なゲームを作ってみよう!
Cocos2d xで簡単なゲームを作ってみよう!
Tomoaki Shimizu
?

More from Toshio Ehara (20)

iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
Toshio Ehara
?
闯补惫补初心者勉强会(2015/08/07)资料
闯补惫补初心者勉强会(2015/08/07)资料闯补惫补初心者勉强会(2015/08/07)资料
闯补惫补初心者勉强会(2015/08/07)资料
Toshio Ehara
?
闯补惫补电卓勉强会资料
闯补惫补电卓勉强会资料闯补惫补电卓勉强会资料
闯补惫补电卓勉强会资料
Toshio Ehara
?
叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!
叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!
叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!
Toshio Ehara
?
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
Toshio Ehara
?
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
?
迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験
迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験
迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験
Toshio Ehara
?
础苍驳耻濒补谤闯厂入门の巻2
础苍驳耻濒补谤闯厂入门の巻2础苍驳耻濒补谤闯厂入门の巻2
础苍驳耻濒补谤闯厂入门の巻2
Toshio Ehara
?
闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています
闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています
闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています
Toshio Ehara
?
础苍驳耻濒补谤闯厂入门の巻
础苍驳耻濒补谤闯厂入门の巻础苍驳耻濒补谤闯厂入门の巻
础苍驳耻濒补谤闯厂入门の巻
Toshio Ehara
?
础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。
础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。
础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。
Toshio Ehara
?
础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお
础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお
础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお
Toshio Ehara
?
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
?
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
Toshio Ehara
?
福冈の滨罢勉强会情报の集め方(尝罢资料)
福冈の滨罢勉强会情报の集め方(尝罢资料)福冈の滨罢勉强会情报の集め方(尝罢资料)
福冈の滨罢勉强会情报の集め方(尝罢资料)
Toshio Ehara
?
叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について
叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について
叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について
Toshio Ehara
?
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
Toshio Ehara
?
JavaScriptのテストコード 一緒に勉強しませんか??
JavaScriptのテストコード 一緒に勉強しませんか??JavaScriptのテストコード 一緒に勉強しませんか??
JavaScriptのテストコード 一緒に勉強しませんか??
Toshio Ehara
?
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?
Toshio Ehara
?
LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!
Toshio Ehara
?
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
Toshio Ehara
?
闯补惫补初心者勉强会(2015/08/07)资料
闯补惫补初心者勉强会(2015/08/07)资料闯补惫补初心者勉强会(2015/08/07)资料
闯补惫补初心者勉强会(2015/08/07)资料
Toshio Ehara
?
闯补惫补电卓勉强会资料
闯补惫补电卓勉强会资料闯补惫补电卓勉强会资料
闯补惫补电卓勉强会资料
Toshio Ehara
?
叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!
叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!
叠础叠贰尝で、贰厂2015(贰厂6)を学ぼう!
Toshio Ehara
?
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
Toshio Ehara
?
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
?
迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験
迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験
迟谤补肠别耻谤-肠辞尘辫颈濒别谤で未来の闯补惫补厂肠谤颈辫迟を体験
Toshio Ehara
?
础苍驳耻濒补谤闯厂入门の巻2
础苍驳耻濒补谤闯厂入门の巻2础苍驳耻濒补谤闯厂入门の巻2
础苍驳耻濒补谤闯厂入门の巻2
Toshio Ehara
?
闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています
闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています
闯别苍办颈苍蝉を闯补惫补开発でこんな感じで使っています
Toshio Ehara
?
础苍驳耻濒补谤闯厂入门の巻
础苍驳耻濒补谤闯厂入门の巻础苍驳耻濒补谤闯厂入门の巻
础苍驳耻濒补谤闯厂入门の巻
Toshio Ehara
?
础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。
础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。
础苍驳耻濒补谤闯厂+罢测辫别厂肠谤颈辫迟を试してみた。
Toshio Ehara
?
础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお
础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお
础苍驳耻濒补谤闯厂の顿颈谤别肠迟颈惫别で俺俺タグつくっちゃお
Toshio Ehara
?
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
?
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
Toshio Ehara
?
福冈の滨罢勉强会情报の集め方(尝罢资料)
福冈の滨罢勉强会情报の集め方(尝罢资料)福冈の滨罢勉强会情报の集め方(尝罢资料)
福冈の滨罢勉强会情报の集め方(尝罢资料)
Toshio Ehara
?
叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について
叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について
叠础颁碍叠翱狈贰.闯厂による奥别产アプリケーション开発について
Toshio Ehara
?
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
Toshio Ehara
?
JavaScriptのテストコード 一緒に勉強しませんか??
JavaScriptのテストコード 一緒に勉強しませんか??JavaScriptのテストコード 一緒に勉強しませんか??
JavaScriptのテストコード 一緒に勉強しませんか??
Toshio Ehara
?
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) ?GETで一覧編?
Toshio Ehara
?
LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!LT Leap MotionとJavaScriptで遊ぼう!
LT Leap MotionとJavaScriptで遊ぼう!
Toshio Ehara
?

Cocos2d/2d-x/html5 [Objective-C/C++/JavaScript] 好みの言語はどれですか?

  • 3. ? twitter ID : @itoKami1123 ? 仕事はHTML5/CSS3/JavaScriptで 業務Webアプリ作ってます。 何かお仕事あればご連絡を! ? Cocos2d歴は、Cocos2d-xを1ヶ月位... 13年6月10日月曜日
  • 9. // CatJumpLayer.h cocos2dx-study001 #ifndef __cocos2dx_study001__CatJumpLayer__ #define __cocos2dx_study001__CatJumpLayer__ #include "cocos2d.h" using namespace cocos2d; class CatJumpLayer : public CCLayer { public: bool init(); CREATE_FUNC(CatJumpLayer); }; #endif /* defined(__cocos2dx_study001__CatJumpLayer__) */ 13年6月10日月曜日
  • 10. #define CREATE_FUNC(__TYPE__) static __TYPE__* create() { __TYPE__ *pRet = new __TYPE__(); if (pRet && pRet->init()) { pRet->autorelease(); return pRet; } else { delete pRet; pRet = NULL; return NULL; } } 13年6月10日月曜日
  • 11. // CatJumpLayer.cpp cocos2dx-study001 #include "CatJumpLayer.h" bool CatJumpLayer::init() { if ( !CCLayer::init() ){ return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite* catSprite = CCSprite::create("cat.png"); catSprite->setPosition( ccp(size.width/2, size.height/2) ); this->addChild(catSprite, 0); return true; } sprite 13年6月10日月曜日
  • 12. // CatJumpScene.h cocos2dx-study001 #ifndef __cocos2dx_study001__CatJumpScene__ #define __cocos2dx_study001__CatJumpScene__ #include "cocos2d.h" using namespace cocos2d; class CatJumpScene : public CCScene { public: bool init(); CREATE_FUNC(CatJumpScene); }; #endif /* defined(__cocos2dx_study001__CatJumpScene__) */ sprite 13年6月10日月曜日
  • 13. // CatJumpScene.cpp cocos2dx-study001 #include "CatJumpScene.h" #include "CatJumpLayer.h" bool CatJumpScene::init() { if ( !CCScene::init() ){ return false; } CatJumpLayer *layer = CatJumpLayer::create(); this->addChild(layer); return true; } sprite 13年6月10日月曜日
  • 14. // AppDelegate.cpp cocos2dx-study001 // (???省略???) bool AppDelegate::applicationDidFinishLaunching() { CCDirector *pDirector = CCDirector::sharedDirector(); // (???省略???) CCScene *catJumpScene = CatJumpScene::create(); pDirector->runWithScene(catJumpScene); return true; } // (???省略???) Director sprite 13年6月10日月曜日
  • 16. // CatJumpLayer.h cocos2d_study001 #import "cocos2d.h" @interface CatJumpLayer : CCLayer @end // CatJumpLayer.h cocos2dx-study001 #ifndef __cocos2dx_study001__CatJumpLayer__ #define __cocos2dx_study001__CatJumpLayer__ #include "cocos2d.h" using namespace cocos2d; class CatJumpLayer : public CCLayer { public: bool init(); CREATE_FUNC(CatJumpLayer); }; #endif /* defined(__cocos2dx_study001__CatJumpLayer__) */ 13年6月10日月曜日
  • 17. Objective-Cは サブクラスが親クラスのクラスメソッドを サブクラスのものとして使えるみたいです。 CatJumpLayer *layer = [CatJumpLayer node]; 不思議ですね。 Cocos2d(Objective-C)と Cocos2dx(c++)のちがうとこ http://qiita.com/items/5ed59ce25be5bb0e5731? fb_action_ids=462829403809503&fb_action_types=og.likes&fb_source=aggregation&fb_aggregation_id=288381481237582 13年6月10日月曜日
  • 18. // CatJumpLayer.m cocos2d_study001 #import "CatJumpLayer.h" @implementation CatJumpLayer -(id)init { if( !(self=[super init]) ) { return self; } CGSize size = [[CCDirector sharedDirector] winSize]; CCSprite* catSprite = [CCSprite spriteWithFile:@"cat.png" ]; catSprite.position = ccp(size.width/2, size.height/2); [self addChild:catSprite z:0]; return self; } @end Cocos2d(Objective-C)で書く CCLayerサブクラス(.m) sprite // CatJumpLayer.cpp cocos2dx-study001 #include "CatJumpLayer.h" bool CatJumpLayer::init() { if ( !CCLayer::init() ){ return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite* catSprite = CCSprite::create("cat.png"); catSprite->setPosition( ccp(size.width/2, size.height/2) ); this->addChild(catSprite, 0); return true; } 13年6月10日月曜日
  • 19. // CatJumpScene.h cocos2d_study001 #import "cocos2d.h" #import "CatJumpLayer.h" @interface CatJumpScene : CCScene @end Cocos2d(Objective-C)で CCSceneサブクラス(.h) sprite // CatJumpScene.h cocos2dx-study001 #ifndef __cocos2dx_study001__CatJumpScene__ #define __cocos2dx_study001__CatJumpScene__ #include "cocos2d.h" using namespace cocos2d; class CatJumpScene : public CCScene { public: bool init(); CREATE_FUNC(CatJumpScene); }; #endif /* defined(__cocos2dx_study001__CatJumpScene__) */ 13年6月10日月曜日
  • 20. // CatJumpScene.m?cocos2d_study001 #import "CatJumpScene.h" @implementation CatJumpScene -(id)init { if( !(self=[super init])) { return self; } CatJumpLayer *layer = [CatJumpLayer node]; [self addChild:layer]; return self; } @end Cocos2d(Objective-C)で CCSceneサブクラス(.m) sprite // CatJumpScene.cpp cocos2dx-study001 #include "CatJumpScene.h" #include "CatJumpLayer.h" bool CatJumpScene::init() { if ( !CCScene::init() ){ return false; } CatJumpLayer *layer = CatJumpLayer::create(); this->addChild(layer); return true; } 13年6月10日月曜日
  • 21. // AppDelegate.m cocos2d_study001 #import "cocos2d.h" #import "AppDelegate.h" #import "CatJumpScene.h" @implementation MyNavigationController // ???省略??? -(void) directorDidReshapeProjection:(CCDirector*)director { if(director.runningScene == nil) { [director runWithScene: [CatJumpScene node]]; } } @end Cocos2d(Objective-C)で CCSceneサブクラス起動 Director sprite // AppDelegate.cpp cocos2dx-study001 // (???省略???) bool AppDelegate::applicationDidFinishLaunching() { CCDirector *pDirector = CCDirector::sharedDirector(); // (???省略???) CCScene *catJumpScene = CatJumpScene::create(); pDirector->runWithScene(catJumpScene); return true; } // (???省略???) 13年6月10日月曜日
  • 23. var CatJumpLayer = cc.Layer.extend({ init:function () { if ( !this._super() ){ return false; } var size = cc.Director.getInstance().getWinSize(); var catSprite = cc.Sprite.create("res/cat.png"); catSprite.setPosition(cc.p(size.width / 2, size.height / 2)); this.addChild( catSprite, 0); return true; } }); // CatJumpLayer.cpp cocos2dx-study001 #include "CatJumpLayer.h" bool CatJumpLayer::init() { if ( !CCLayer::init() ){ return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite* catSprite = CCSprite::create("cat.png"); catSprite->setPosition( ccp(size.width/2, size.height/2) ); this->addChild(catSprite, 0); return true; } sprite 13年6月10日月曜日
  • 24. var CatJumpScene = cc.Scene.extend({ ctor:function(){ this.init(); }, init:function () { if ( !this._super() ){ ! return false; } var layer = new CatJumpLayer(); layer.init(); this.addChild(layer); return true; } }); // CatJumpScene.cpp cocos2dx-study001 #include "CatJumpScene.h" #include "CatJumpLayer.h" bool CatJumpScene::init() { if ( !CCScene::init() ){ return false; } CatJumpLayer *layer = CatJumpLayer::create(); this->addChild(layer); return true; } sprite 13年6月10日月曜日
  • 25. var cocos2dApp = cc.Application.extend({ config:document['ccConfig'], ctor:function (scene) { this._super(); this.startScene = scene; // ???省略??? }, applicationDidFinishLaunching:function () { // ???省略??? var director = cc.Director.getInstance(); // ???省略??? cc.LoaderScene.preload(g_ressources, function () { director.replaceScene(new this.startScene()); }, this); return true; } }); var myApp = new cocos2dApp(CatJumpScene); Director // AppDelegate.cpp cocos2dx-study001 // (???省略???) bool AppDelegate::applicationDidFinishLaunching() { CCDirector *pDirector = CCDirector::sharedDirector(); // (???省略???) CCScene *catJumpScene = CatJumpScene::create(); pDirector->runWithScene(catJumpScene); return true; } // (???省略???) sprite 13年6月10日月曜日
  • 27. // CatSprite.h cocos2dx-study001 #ifndef __cocos2dx_study001__CatSprite__ #define __cocos2dx_study001__CatSprite__ #include "cocos2d.h" typedef enum{ CAT_DIRECTION_NONE, CAT_DIRECTION_LEFT, CAT_DIRECTION_RIGHT, }DIRECTION; using namespace cocos2d; class CatSprite : public CCSprite,public CCTargetedTouchDelegate { public: DIRECTION _direction; static CatSprite* create(const char *pszFileName); void onEnter(); void onExit(); CCRect getRect(); void catJump(); void toggleDirection(); bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); }; #endif /* defined(__cocos2dx_study001__CatSprite__) */ 13年6月10日月曜日
  • 28. // CatSprite.cpp cocos2dx-study001 #include "CatSprite.h" CatSprite* CatSprite::create(const char *pszFileName) { CatSprite *sprite = new CatSprite(); if (sprite && sprite->initWithFile(pszFileName)){ sprite->autorelease(); return sprite; } CC_SAFE_DELETE(sprite); return NULL; } void CatSprite::onEnter() { CCSprite::onEnter(); this->_direction = CAT_DIRECTION_NONE; CCTouchDispatcher* touchDispatcher = CCDirector::sharedDirector()->getTouchDispatcher(); touchDispatcher->addTargetedDelegate(this, 0, true); } void CatSprite::onExit() { CCSprite::onExit(); CCTouchDispatcher* touchDispatcher = CCDirector::sharedDirector()->getTouchDispatcher(); touchDispatcher->removeDelegate(this); } // ????後半につづく???? 13年6月10日月曜日
  • 29. // ????後半?つづき???? CCRect CatSprite::getRect() { float h = this->getContentSize().height; float w = this->getContentSize().width; float x = this->getPosition().x -w/2; float y = this->getPosition().y -h/2; return CCRect(x, y, w, h); } void CatSprite::catJump() { this->stopAllActions(); CCSize size = CCDirector::sharedDirector()->getWinSize(); float toX = size.width/2; toX += ( this->_direction == CAT_DIRECTION_LEFT )?(-100):+100; CCPoint jumpPosition = ccp( toX, size.height/2); CCFiniteTimeAction *actionMove = CCJumpTo::create( 1.0, jumpPosition, 64.0, 2 ); this->runAction( actionMove ); } void CatSprite::toggleDirection() { this->_direction = ( this->_direction != CAT_DIRECTION_LEFT ) ? CAT_DIRECTION_LEFT : CAT_DIRECTION_RIGHT; } bool CatSprite::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent) { CCPoint location = pTouch->getLocation(); CCRect rect = this->getRect(); if ( rect.containsPoint(location) ){ this->catJump(); this->toggleDirection(); return true; } return false; }; 13年6月10日月曜日
  • 30. // CatSprite.h cocos2d_study001 #import "cocos2d.h" typedef enum{ CAT_DIRECTION_NONE, CAT_DIRECTION_LEFT, CAT_DIRECTION_RIGHT, }DIRECTION; @interface CatSprite : CCSprite <CCTouchOneByOneDelegate> @property (nonatomic,assign) DIRECTION direction; -(CGRect)getRect; -(void)catJump; -(void)toggleDirection; @end 13年6月10日月曜日
  • 31. // CatSprite.m cocos2d_study001 #import "CatSprite.h" @implementation CatSprite -(void)onEnter { [super onEnter]; self.direction = CAT_DIRECTION_NONE; [[[CCDirector sharedDirector]touchDispatcher]addTargetedDelegate:self priority:0 swallowsTouches:YES]; } -(void)onExit { [super onExit]; [[[CCDirector sharedDirector]touchDispatcher] removeDelegate:self]; } -(CGRect)getRect { float h = self.contentSize.height; float w = self.contentSize.width; float x = self.position.x -w/2; float y = self.position.y -h/2; return CGRectMake(x, y, w, h); } // 後半につづく??? 13年6月10日月曜日
  • 32. // つづき??? -(void)catJump { [self stopAllActions]; CGSize size = [[CCDirector sharedDirector] winSize]; float toX = size.width/2; toX += ( self.direction == CAT_DIRECTION_LEFT )?(-100):(+100); CGPoint jumpPosition = ccp( toX, size.height/2); CCFiniteTimeAction *actionMove =[CCJumpTo actionWithDuration:1.0 position:jumpPosition height:64.0 jumps:2]; [self runAction:actionMove]; } -(void)toggleDirection { self.direction = ( self.direction != CAT_DIRECTION_LEFT ) ? CAT_DIRECTION_LEFT :CAT_DIRECTION_RIGHT; } -(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{ CGPoint touchPotision = [touch locationInView:touch.view]; CGPoint position = [[CCDirector sharedDirector] convertToGL:touchPotision]; if( CGRectContainsPoint( self.boundingBox , position) ){ [self catJump]; [self toggleDirection]; return YES; } return NO; } @end 13年6月10日月曜日
  • 33. var CAT_DIRECTION = { NONE : 0, LEFT : 1, RIGHT : 2,}; var CatSprite = cc.Sprite.extend({ direction:null, // :CAT_DIRECTION ctor:function(){ this._super(); }, onEnter:function(){ this._super(); this.direction = CAT_DIRECTION.NONE, cc.Director.getInstance().getTouchDispatcher().addTargetedDelegate(this, 1, true); }, onExit:function () { this._super(); cc.Director.getInstance().getTouchDispatcher().removeDelegate(this); }, getRect:function(){ var h = this._rect.size.height; var w = this._rect.size.width; var x = this.getPosition().x - (w/2); var y = this.getPosition().y - (h/2); return cc.rect( x, y, w, h ); }, 13年6月10日月曜日
  • 34. catJump:function(){ this.stopAllActions(); var size = cc.Director.getInstance().getWinSize(); var toX = size.width/2; toX += (this.direction == CAT_DIRECTION.LEFT)?(-100):(+100); var jumpPosition = cc.p( toX, size.height/2); var actionMove = cc.JumpTo.create( 1.0, jumpPosition, 64.0, 2); this.runAction( actionMove); }, toggleDirection: function(){ this.direction = (this.direction!==CAT_DIRECTION.LEFT) ? CAT_DIRECTION.LEFT : CAT_DIRECTION.RIGHT; }, onTouchBegan:function (touch, event) { var getPoint = touch.getLocation(); var myRect = this.getRect(); if ( cc.Rect.CCRectContainsPoint( myRect, getPoint) ){ this.catJump(); this.toggleDirection(); return true; } return false; } }); 13年6月10日月曜日
  • 35. CatSprite.create=function( imgFile){ var sprite = new CatSprite( imgFile); if ( sprite && sprite.initWithFile(imgFile) ){ return sprite; } return null; }; 13年6月10日月曜日