SlideShare a Scribd company logo
Cocos2d-x(JS) ハンズオン #7
新エディタ
Cocos Creator v1.0
株式会社TKS2 清水友晶
清水 友晶
 株式会社TKS2
アプリ開発コンサル
Cocos2d-xサポート
スマホアプリ開発
TECH.C.非常勤講師
 プライベートでも
Cocos2d-xに関するゲーム開発
講演活動
執筆活動
 マイブーム: ゲームエンジン調査
 チラ裏開発メモ: http://tks2.net/memo
 SlideShare: http://www.slideshare.net/doraemonsss
 Facebook: http://www.facebook.com/doraemonsss
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
http://line.me/S/sticker/1085672
もくじ
 Cocos Creatorについて
 Cocos Creatorとは
 Cocos Creatorを試してみよう
1. プレイヤのジャンプ
2. キー入力
3. スター生成
4. スター取得
5. スコアの表示
6. スター消失
7. サウンド追加
Cocos Creator
 最新版: v1.0.2
 開発版: v1.1
 開発: Chukong Technologies
 特徴
 UIエディタ
 アニメーションエディタ
 コードエディタ(現在はJSのみ)
 ビルド・コンパイル・実行
 Unityを意識した構成
RoadMap
 2016.5
 WebGL batch rendering
 Integrated JSB debug solution
 Better scene editing tools
 Advanced editor extension workflow: panel and editor ui
 Cocos Studio data importer
 Node creation panel with drag and drop control
 2016.7
 Editor extension market
 Complete editor extension workflow
 C++ and JS engine customize workflow
 Animation state machine
http://discuss.cocos2d-x.org/t/cocos-creator-roadmap/27783
ユーザ登録が必要
 Cocos Creatorを利用するには、
Cocosのユーザ登録が必要
Cocos Creator
チュートリアル
http://cocos2d-x.org/docs/editors_and_tools/creator-chapters/getting-started/quick-start/
本日利用するリソース
 http://tks2.net/handson/20160509/handson.zip
新規プロジェクト作成
リソース追加
 ダウンロードしたファイルの「Resources」の中身を
「assets」に配置
Assets画面に表示
 Assetsペインはassetsフォルダとリンクしている
 assetsフォルダには、各リソースファイルのメタ情報が生
成される
シーンの作成
 assets配下にgameシーンを作成する
 gameシーンを開く
 Node TreeにあるCanvasからデザインサイズの設定・
表示方法の選択が可能
背景の表示
 backgroundをCanvas配下に配置する
 位置・サイズを設定する
 Pos:(0, 0), Size:(1360, 760)
地面の表示
 groundをCanvas配下に配置する
 位置・サイズを設定する
 Pos:(0, −250), Size:(1350, 250)
プレイヤの表示
 PurpleMonsterをCanvas配下に配置する
 位置・アンカーポイントを設定する
 Pos:(0, −120), AnchorPos:(0.5, 0)
プレイヤのスクリプト
 scriptsフォルダ作成
 Create  Folder
 Rename
 Playerスクリプト作成
 Create  JavaScript
 Rename
コンポーネントプロパティ
 Player.js
properties: {
// ジャンプ高さ
jumpHeight: 0,
// ジャンプ時間
jumpDuration: 0,
// 最大移動スピード
maxMoveSpeed: 0,
// 加速度
accel: 0,
},
コンポーネント追加
 PurpleMonsterを選択
 PropertiesペインのAdd Componentをクリック
 Add Custom Component  Player
ジャンプアクション
 Player.js
properties: {
:
},
setJumpAction: function () {
// ジャンプアップ
:
// ジャンプダウン
:
// 繰り返し
:
},
Script_1
アクション実行
 Player.js
onLoad: function () {
// 初期ジャンプアクション
this.jumpAction = this.setJumpAction();
this.node.runAction(this.jumpAction);
},
Script_1
シミュレータ実行
Script_1
キー入力
 Player.js
setInputControl: function () {
var self = this;
// キーボードイベントリスナー追加
cc.eventManager.addListener({
event: cc.EventListener.KEYBOARD,
// キーが押された時に呼ばれ、加速を開始する
onKeyPressed: function(keyCode, event) {
:
},
// キーが離された時に呼ばれ、加速を停止する
onKeyReleased: function(keyCode, event) {
:
}
}, self.node);
},
Script_2
キー入力のセット
 Player.js
onLoad: function () {
// 初期ジャンプアクション
this.jumpAction = this.setJumpAction();
this.node.runAction(this.jumpAction);
// 加速方向フラグ
this.accLeft = false;
this.accRight = false;
// スピードの初期化
this.xSpeed = 0;
// キーボードイベントリスナー初期化
this.setInputControl();
},
Script_2
キー入力のセット
 Player.js
update: function (dt) {
// 加速方向に従ってスピードを更新する
if (this.accLeft) {
this.xSpeed -= this.accel * dt;
} else if (this.accRight) {
this.xSpeed += this.accel * dt;
}
// 最大スピードの制限
if ( Math.abs(this.xSpeed) > this.maxMoveSpeed ) {
// 最大スピードを超えないように設定
:
}
// プレイヤーの位置更新
this.node.x += this.xSpeed * dt;
},
Script_2
シミュレータ実行
Script_2
プレイヤ設定変更
 PurpleMonsterを選択
スターの作成
 assets/scripts/Star.js の作成
 Star.js
properties: {
// 当たり判定の半径
pickRadius: 0
},
スターの作成
 Prefabを利用するために、一旦画面にスターを追加す
る
 Star.js のコンポーネントを追加する
スターの作成
 NodeTreeからAssetsに star をドラッグアンドドロップ
する
 NodeTreeのstarを削除する
ゲームコントローラの作成
 assets/scripts/Game.js
の作成
 CanvasノードにGameコ
ンポーネントを追加する
 Prefabとノードをセット
する
properties: {
// Star Prefabの設定
starPrefab: {
default: null,
type: cc.Prefab
},
// スターが消失する時間(ランダム)
maxStarDuration: 0,
minStarDuration: 0,
// 地面の設定
ground: {
default: null,
type: cc.Node
},
// プレイヤの設定
player: {
default: null,
type: cc.Node
}
},
スターの生成
 Game.js
onLoad: function () {
:
},
spawnNewStar: function() {
:
},
getNewStarPosition: function () {
:
}
Script_3
スターの生成
Script_3
関連づけ
 Game.js
spawnNewStar: function() {
:
// StarコンポーネントにGameコンポーネントを関連づける
newStar.getComponent('Star').game = this;
},
Script_4
スターの編集
 Star.js
cc.Class({
:
getPlayerDistance: function () {
:
},
onPicked: function() {
:
},
update: function (dt) {
:
},
});
Script_4
スターの生成
Script_4
スコアの追加
 NodeTreeにLabelを追加する
スコアの追加
 scoreのプロパティ編集
 Fileには、Assetsからビットマッ
プフォントをドラッグアンドド
ロップする
プロパティ追加
 Game.js
properties: {
:
// scoreラベル
scoreDisplay: {
default: null,
type: cc.Label
}
},
スコアの設定
 Game.js
onLoad: function () {
:
// スコアの初期値
this.score = 0;
},
:
gainScore: function () {
this.score += 1;
// スコアを表示する
this.scoreDisplay.string = 'Score: ' + this.score.toString();
},
Script_5
スコアの更新タイミング
 Star.js
onPicked: function() {
// 新しいスターの生成
this.game.spawnNewStar();
// スコアの更新
this.game.gainScore();
// 現在のスターを消失
this.node.destroy();
},
Script_5
スコアの表示
Script_5
スターの消失時間追加
 Game.js
onLoad: function () {
:
// タイマー初期化
this.timer = 0;
this.starDuration = 0;
:
},
Script_6
スターの消失時間追加
 Game.js
spawnNewStar: function() {
:
// スターの消失時間取得
this.starDuration = this.minStarDuration + cc.random0To1() *
(this.maxStarDuration - this.minStarDuration);
// タイマーリセット
this.timer = 0;
},
Script_6
スターの消失時間追加
 Game.js
update: function (dt) {
// スター消失時間を超えるとゲームオーバー
if (this.timer > this.starDuration) {
this.gameOver();
return;
}
this.timer += dt;
},
Script_6
gameOver: function () {
// プレイヤのアクションを止める
this.player.stopAllActions();
cc.director.loadScene('game');
}
スターの消失時間追加
 Star.js
update: function() {
:
// スターが消えていくアニメーション
var opacityRatio = 1 - this.game.timer/this.game.starDuration;
var minOpacity = 50;
this.node.opacity = minOpacity + Math.floor(opacityRatio * (255 -
minOpacity));
}
Script_6
スターの消失時間追加
Script_6
ジャンプサウンドの追加
 Player.js
properties: {
:
// ジャンプサウンド
jumpAudio: {
default: null,
url: cc.AudioClip
},
},
Script_7
ジャンプサウンドの追加
 Player.js
setJumpAction: function () {
:
// コールバックによりサウンド再生
var callback = cc.callFunc(this.playJumpSound, this);
// 繰り返し
return cc.repeatForever(cc.sequence(jumpUp, jumpDown, callback));
},
playJumpSound: function () {
// ジャンプサウンドを再生
cc.audioEngine.playEffect(this.jumpAudio, false);
},
Script_7
スコアリングサウンドの追加
 Game.js
properties: {
:
// スコアリングサウンド
scoreAudio: {
default: null,
url: cc.AudioClip
}
},
Script_7
スコアリングサウンドの追加
 Game.js
gainScore: function () {
:
// スコアリングサウンドの再生
cc.audioEngine.playEffect(this.scoreAudio, false);
},
Script_7
スコアリングサウンドの追加
Script_7
作業はここまで
参考になるサイト
 CocosCreator公式ドキュメント
http://cocos2d-
x.org/docs/editors_and_tools/creator/
おわり
 ありがとうございました

More Related Content

PPTX
Cocos2d-x(JS)の紹介
PPTX
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
PDF
cocos2d-xとCocosBuilderでゲームを作ってみよう
PPTX
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
PPTX
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
PPTX
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
PPTX
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
PDF
Cocos2d-x 3D Extension
Cocos2d-x(JS)の紹介
Cocos2d-x(JS) ハンズオン #05「Cocos StudioとCocos2d-x (JS)との連携」
cocos2d-xとCocosBuilderでゲームを作ってみよう
Cocos2d-x(JS) ハンズオン #02 「画像表示とアクション」
Cocos2d-x(JS) ハンズオン #06「3rd SDKの導入を簡単にするSDKBOX」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #03「複数あるボタンの使い分け」
Cocos2d-x 3D Extension

What's hot (20)

PDF
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
PDF
Cocos2d-x 3.2 Eclipseを利用したAndroid開発環境の構築
PDF
cocos2d-xハンズオン勉強会 in 名古屋
PDF
cocos2d-x公開講座 in 鹿児島
PDF
cocos2d-xを利用したパズドラ風ゲームの作成
PDF
Cocos2d-JSと物理演算で作る横スクロールアクションゲーム #scripty06
PPTX
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
PPTX
Cocos2d-x(JS) ハンズオン #10「3D機能とVR機能」
PPTX
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
PPTX
Cocos2d-x(JS) ハンズオン #09「ラベル・テキストボックス」
PDF
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
PDF
CocosBuilderとcocos2d-x JSB
PPTX
Cocos2d-x(JS) ハンズオン #13「SNS対応(Twitter, Facebook)」
KEY
Cocos2d xをさわってみよう!
PPTX
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
PPTX
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
PDF
cocos2d-xとネイティブ間の連携
PDF
Cocos2d xで簡単なゲームを作ってみよう!
PDF
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
PPTX
Cocos2d-x(JS) ハンズオン #04「タッチイベントの使い方」
Cocos2d-x v3.2を利用してシューティングゲームを作ろう!
Cocos2d-x 3.2 Eclipseを利用したAndroid開発環境の構築
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-x公開講座 in 鹿児島
cocos2d-xを利用したパズドラ風ゲームの作成
Cocos2d-JSと物理演算で作る横スクロールアクションゲーム #scripty06
Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」
Cocos2d-x(JS) ハンズオン #10「3D機能とVR機能」
Cocos2d-x(JS) ハンズオン #11「2D物理エンジン」
Cocos2d-x(JS) ハンズオン #09「ラベル・テキストボックス」
cocos2d-x 3.0 + C++11で始めるゲーム開発超入門
CocosBuilderとcocos2d-x JSB
Cocos2d-x(JS) ハンズオン #13「SNS対応(Twitter, Facebook)」
Cocos2d xをさわってみよう!
Cocos2d-x(JS) ハンズオン #01 「はじめてのCocos2d-x (JS)」
Cocos2d-xにおけるモバイル開発〜将来を見据えた開発〜
cocos2d-xとネイティブ間の連携
Cocos2d xで簡単なゲームを作ってみよう!
Macでcocos2d-x 2.1.3を使用した、iOSアプリの開発環境構築について
Cocos2d-x(JS) ハンズオン #04「タッチイベントの使い方」
Ad

Similar to Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」 (20)

PPT
Cocos2d
PDF
かんたんなcocos2d-xの紹介
PDF
Cocos2d-xおよび関連サービスについて
PDF
Cocosサービスについて
PDF
Cocos2d-x実践講座 in 鹿児島
PDF
Azure IoT Edge で Custom Vision
PDF
cocos2d-xにおけるBox2Dの利用方法および便利なツール
PDF
実はかんたん!ゲームエンジンCocos2d-x入門
PDF
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
PDF
cocos2d-xとCocosBuilder
PDF
UnityとBlenderハンズオン第2章
PDF
Cocos2d-x Console @Cocos Talks #3
PDF
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
PPTX
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
PDF
Cocos2d xをさらにさわってみよう!
PDF
cocos2d-x 3.0による変更点
PPTX
Aiwolfseminar2020
PDF
node+socket.io+enchant.jsでチャットゲーを作る
PDF
Windows コンテナを AKS に追加する
PDF
Cocos2d-x公開講座 in 鹿児島
Cocos2d
かんたんなcocos2d-xの紹介
Cocos2d-xおよび関連サービスについて
Cocosサービスについて
Cocos2d-x実践講座 in 鹿児島
Azure IoT Edge で Custom Vision
cocos2d-xにおけるBox2Dの利用方法および便利なツール
実はかんたん!ゲームエンジンCocos2d-x入門
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
cocos2d-xとCocosBuilder
UnityとBlenderハンズオン第2章
Cocos2d-x Console @Cocos Talks #3
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Cocos2d xをさらにさわってみよう!
cocos2d-x 3.0による変更点
Aiwolfseminar2020
node+socket.io+enchant.jsでチャットゲーを作る
Windows コンテナを AKS に追加する
Cocos2d-x公開講座 in 鹿児島
Ad

More from Tomoaki Shimizu (11)

PDF
cocos2d-xとCocos Code IDE
PDF
Cocos Code IDEを使ってみた
PDF
タワーオブスペルズ x cocos2d-x
PDF
cocos2d-xで利用できる暗号化
PDF
CocoStudioとcocos2d-xの連携2
PDF
cocos2d-xにおけるマップエディタの利用
PDF
cocos2d-x 3.0 新しい物理演算クラスの利用
PDF
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
PDF
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
PDF
cocos2d-xにおけるデータ管理
PDF
cocos2d-xの概要とこれまでの進化・これからの展開
cocos2d-xとCocos Code IDE
Cocos Code IDEを使ってみた
タワーオブスペルズ x cocos2d-x
cocos2d-xで利用できる暗号化
CocoStudioとcocos2d-xの連携2
cocos2d-xにおけるマップエディタの利用
cocos2d-x 3.0 新しい物理演算クラスの利用
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築について
Macでcocos2d-x 3.0alpha0を使用した、クロスプラットフォーム開発環境構築について
cocos2d-xにおけるデータ管理
cocos2d-xの概要とこれまでの進化・これからの展開

Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」