Skip to content

Instantly share code, notes, and snippets.

@esmasui
Created August 30, 2013 04:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save esmasui/6386316 to your computer and use it in GitHub Desktop.
Save esmasui/6386316 to your computer and use it in GitHub Desktop.
MOONBlockのdiff MOONPhase2.4.1 > 2.5.0
diff --git a/App/MOONBlock/js/block.enchant.js b/App/MOONBlock/js/block.enchant.js
index 499ed94..ddcb39e 100755
--- a/App/MOONBlock/js/block.enchant.js
+++ b/App/MOONBlock/js/block.enchant.js
@@ -1620,6 +1620,11 @@ enchant.block.BlockLabel = enchant.Class.create(enchant.Label, {
initialize: function(text) {
enchant.Label.call(this, text);
},
+ _update: function() {
+ var metrics = this.getMetrics(this.text);
+ this.width = metrics.width;
+ this.height = metrics.height;
+ },
/**
[lang:ja]
* 表示されるテキスト.
@@ -1643,6 +1648,22 @@ enchant.block.BlockLabel = enchant.Class.create(enchant.Label, {
this.dispatchEvent(e);
}
}
+ },
+ /**
+ [lang:ja]
+ * 文字のスタイルを設定する.
+ * @param {Object} object スタイルを表すオブジェクト.
+ * @param {Object} object.font 文字のフォント.
+ * @param {Object} object.color 文字の色.
+ * @return {enchant.block.BlockLabel} 自身.
+ [/lang]
+ */
+ style: function(obj) {
+ for (var prop in obj) {
+ this[prop] = obj[prop];
+ }
+ this._update();
+ return this;
}
});
/**
@@ -1663,9 +1684,7 @@ enchant.block.BlockLabel.create = function(text, font, color) {
if (color) {
label.color = color;
}
- var metrics = label.getMetrics(label.text);
- label.width = metrics.width;
- label.height = metrics.height;
+ label._update();
return label;
};
diff --git a/App/MOONBlock/js/blocks.block.enchant.js b/App/MOONBlock/js/blocks.block.enchant.js
index 62a9e0a..e796cd2 100755
--- a/App/MOONBlock/js/blocks.block.enchant.js
+++ b/App/MOONBlock/js/blocks.block.enchant.js
@@ -255,6 +255,18 @@ enchant.block.blocks.variable.RandomBlock = enchant.Class.create(enchant.block.B
}
});
+enchant.block.blocks.variable.ProbBlock = enchant.Class.create(enchant.block.Block, {
+ initialize: function() {
+ enchant.block.Block.call(this, '#15fd02');
+ this.setConnectTarget('expression');
+ this.addLabel(RES('blocks.ProbBlock.name'));
+ this.addSliderForm(0, 'value')
+ .range(0, 100, 50);
+ this.addLabel(RES('blocks.ProbBlock.suffix'));
+ this.script = '(Math.random() * 100 >= <% value %>)';
+ }
+});
+
enchant.block.blocks.variable.StringBlock = enchant.Class.create(enchant.block.Block, {
initialize: function() {
enchant.block.Block.call(this, '#15fd02');
diff --git a/App/MOONBlock/js/kit.block.enchant.js b/App/MOONBlock/js/kit.block.enchant.js
index dc06d8f..94516a5 100755
--- a/App/MOONBlock/js/kit.block.enchant.js
+++ b/App/MOONBlock/js/kit.block.enchant.js
@@ -26,6 +26,9 @@ var _ontouchstart = function(e) {
E_S.x = e.x;
E_S.y = e.y;
dragging.dispatchEvent(E_S);
+ E_M.x = e.x;
+ E_M.y = e.y;
+ dragging.dispatchEvent(E_M);
}
};
diff --git a/App/MOONBlock/js/puppet.blocks.block.enchant.js b/App/MOONBlock/js/puppet.blocks.block.enchant.js
index d8a9a5c..8ecfcd1 100755
--- a/App/MOONBlock/js/puppet.blocks.block.enchant.js
+++ b/App/MOONBlock/js/puppet.blocks.block.enchant.js
@@ -69,7 +69,26 @@ enchant.ENV.BG_IMAGE_DICTIONARY = pairsToOption([
[ 'blocks.bgImages.sky', 'sky.png' ],
[ 'blocks.bgImages.hollywood', 'hollywood.png' ],
[ 'blocks.bgImages.eclipse', 'eclipse.png' ],
- [ 'blocks.bgImages.space', 'spacebg.png' ]
+ [ 'blocks.bgImages.space', 'spacebg.png' ],
+ [ 'blocks.bgImages.table', 'table.png' ],
+ [ 'blocks.bgImages.rpg', 'rpg.png' ],
+ [ 'blocks.bgImages.race', 'race.png' ],
+ [ 'blocks.bgImages.black', 'black.png' ],
+ [ 'blocks.bgImages.blockg', 'blockg.png' ],
+ [ 'blocks.bgImages.actiong', 'actiong.png' ]
+]);
+
+enchant.ENV.SE_DICTIONARY = pairsToOption([
+ [ 'blocks.ses.coin', 'coin.wav' ],
+ [ 'blocks.ses.alarm', 'alarm.wav' ],
+ // [ 'blocks.ses.alarml', 'alarm_long.wav' ],
+ [ 'blocks.ses.correct', 'correct.wav' ],
+ [ 'blocks.ses.incorrect', 'incorrect.wav' ],
+ [ 'blocks.ses.explosion', 'explosion.wav' ],
+ [ 'blocks.ses.bounce', 'bounce.wav' ],
+ [ 'blocks.ses.break', 'break.wav' ],
+ [ 'blocks.ses.gameover', 'gameover.wav' ],
+ [ 'blocks.ses.jingle', 'jingle.wav' ]
]);
var getImageNameList = function() {
@@ -1113,6 +1132,33 @@ enchant.block.blocks.game.GameClearBlock = enchant.Class.create(enchant.block.Bl
}
});
+enchant.block.blocks.game.SEBlock = enchant.Class.create(enchant.block.Block, {
+ initialize: function() {
+ enchant.block.Block.call(this, '#3399cc');
+ this.setConnectTarget('evalable');
+ this.addLabel(RES('blocks.SEBlock.name'));
+ this.addSelectForm(enchant.ENV.SE_DICTIONARY, 'sesrc');
+ this._playing = null;
+ this.addLabel('\u25B6')
+ .style({
+ font: '32px selif',
+ color: '#00ff00'
+ })
+ .on(enchant.Event.TOUCH_END, function() {
+ this.parentNode.preview();
+ });
+ this.iteratize();
+ this.script = 'enchant.Core.instance.assets["<% sesrc %>"].clone().play();';
+ },
+ preview: function() {
+ if (this._playing) {
+ this._playing.stop();
+ }
+ this._playing = enchant.Core.instance.assets[this.getSentence('sesrc')].clone();
+ this._playing.play();
+ }
+});
+
enchant.block.blocks.game.BackgroundBlock = enchant.Class.create(enchant.block.Block, {
initialize: function() {
enchant.block.Block.call(this, '#ffcc33');
@@ -1239,6 +1285,18 @@ enchant.block.blocks.variable.OtherPropertyBlock = enchant.Class.create(enchant.
});
enchant.block.blocks.variable.OtherPropertyBlock.propertyNames = enchant.block.blocks.variable.PropertyBlock.propertyNames;
+enchant.block.blocks.variable.GlobalPropertyBlock = enchant.Class.create(enchant.block.PropertyBlockPrototype, {
+ initialize: function() {
+ enchant.block.PropertyBlockPrototype.call(this, RES('blocks.PropertyBlock.global'));
+ this.script = 'window.<% name %>';
+ }
+});
+enchant.block.blocks.variable.GlobalPropertyBlock.propertyNames = {
+ score: 'enchant.puppet.Theatre.instance.score'
+};
+enchant.block.blocks.variable.GlobalPropertyBlock.propertyNames[enchant.block.PropertyBlockPrototype.ADD_PROP] =
+ enchant.block.PropertyBlockPrototype.ADD_VALUE;
+
(function() {
var FRAME_SIZE = 48;
diff --git a/App/MOONBlock/js/res.js b/App/MOONBlock/js/res.js
index afbe6c0..552ceb0 100755
--- a/App/MOONBlock/js/res.js
+++ b/App/MOONBlock/js/res.js
@@ -13,14 +13,14 @@ window.RES = function(path) {
};
var res = new resource.ResourceManager();
-res.addResource("en-us.blocks", {"categories":{"control":"Control","logic":"Logic","variable":"Variable","javascript":"JavaScript"},"IfBlock":{"name":"If ","then":"then","do":"run"},"RepeatBlock":{"name":"Repeat","do":"run"},"SetTimeoutBlock":{"name":"Run After Wait For","label":"seconds"},"SetIntervalBlock":{"name":"Run Every","label1":"second(s)","label2":"time(s)"},"AssignBlock":{"name":"Assign"},"ComputeBlock":{"name":"Calculate"},"NumberBlock":{"name":"Numerical Value"},"RandomBlock":{"name":"Random number","label1":"from","label2":"to","label3":""},"StringBlock":{"name":"String","prompt":"Please enter the string."},"EvalBlock":{"name":"Run","prompt":"Input JavaScript code here."},"ExpressionBlock":{"name":"IF","prompt":"Enter a conditional statement in JavaScript."}});
+res.addResource("en-us.blocks", {"categories":{"control":"Control","logic":"Logic","variable":"Variable","javascript":"JavaScript"},"IfBlock":{"name":"If ","then":"then","do":"run"},"RepeatBlock":{"name":"Repeat","do":"run"},"SetTimeoutBlock":{"name":"Run After Wait For","label":"seconds"},"SetIntervalBlock":{"name":"Run Every","label1":"second(s)","label2":"time(s)"},"AssignBlock":{"name":"Assign"},"ComputeBlock":{"name":"Calculate"},"NumberBlock":{"name":"Numerical Value"},"ProbBlock":{"name":"Probablity","suffix":"%"},"RandomBlock":{"name":"Random number","label1":"from","label2":"to","label3":""},"StringBlock":{"name":"String","prompt":"Please enter the string."},"EvalBlock":{"name":"Run","prompt":"Input JavaScript code here."},"ExpressionBlock":{"name":"IF","prompt":"Enter a conditional statement in JavaScript."}});
res.addResource("en-us.blocks", {"categories":{"moon":"MOON"},"EndBlock":{"name":"Finish"},"opt":{"link":{"web":"Web","page":"page"}},"SearchBlock":{"name":"Search"},"LinkBlock":{"name":"Hyperlink","prompt":{"page":"Enter a page ID.","web":"Enter a URL of Website."}},"PenBlock":{"name":"Pen","opt":{"thickness":"size","color":"color"}},"StickerBlock":{"name":"Sticker","label":{"tap":"on tapped","attach":"on pasted","detach":"on peeled from"}},"ListenerBlock":{"opt":{"scenePendown":"Pen down","scenePenmove":"Pen move","scenePenup":"Pen up","sceneEraserdown":"Eraser down","sceneErasermove":"Eraser move","sceneEraserup":"Eraser up"}},"BlackBlock":{"name":"Black Box","comment":"Input JavaScript code here."}});
-res.addResource("en-us.blocks", {"categories":{"puppet":"Puppet","behavior":"Behavior","listener":"On X","game":"Game"},"puppetImages":{"bear":"Bear","icon":"Icons","child":"Kids","pig":"Pig","tank":"Tank","car":"Car","knight":"Knight","monster":"Monster","plane":"Plane","starship":"Starship","explosion":"Explosion"},"bgImages":{"default":"select a background","beach":"Beach","desert":"Desert","sky":"Sky","hollywood":"Holleywood","eclipse":"Eclipse","space":"Space"},"opt":{"dir":{"horizontal":"horizontal","vertical":"vertical","all":"all direction","left":"left","right":"right","up":"up","down":"down","rightUp":"top right-hand","rightDown":"bottom right-hand","leftUp":"top left-hand","leftDown":"bottom left-hand"},"rot":{"cw":"clockwise","ccw":"counterclockwise"}},"PuppetBlock":{"name":"Puppet","prompt":"Rename the puppet."},"SignBoardBlock":{"name":"Text","prompt":{"name":"Rename the text.","content":"Input texts to be displayed."},"size":"text size","content":"content"},"NewPuppetBlock":{"name":"Add a Puppet"},"AddBehaviorBlock":{"name":"Add Behavior"},"DisplayBlock":{"name":"Display","opt":{"standAlone":"one","randomSetup":"many","randomAppearTop":"many come from top","randomAppearBottom":"many come from bottom","randomAppearRight":"many come from right","randomAppearLeft":"many come from left","interval":"Interval","initial":"initial number"}},"MoveBlock":{"name":"Motion","opt":{"zigzag":"zigzag","tapMove":"jump to tapped point","tapChase":"move to tapped point","move":"Move in a direction","moveRandomDir":"move in a random direction","moveby":"move a specific distance"}},"SpecialBlock":{"name":"Special","opt":{"biggerdir":"enlarge","smallerdir":"shrink","rot":"rotate","die":"disappear"}},"FrameBlock":{"prompt":{"frame":"Enter a number of frame","speed":"Enter a number of speed"},"opt":{"frame":"frame","speed":"speed"}},"StartPinBlock":{"name":"Start Location","suffix":" place(s)","add":"add location"},"CollisionBlock":{"name":"On Collision with","whenHit":"then","opt":{"t":"removed","f":"nothing happened"},"score":"score"},"HitpointBlock":{"name":"HP","opt":{"inc":"increase by","dec":"decrease by","set":"set to"}},"ListenerBlock":{"name":"On","then":"","opt":{"enterframe":"Time elapsed","touchend":"Puppet tapped","sceneTouchend":"Screen tapped","hit":"Collision with something","init":"Appearing on screen","actordie":"Removed from screen","actordieall":"Eliminated"}},"TargetHitBlock":{"name":"On collision with","then":""},"ColorBlock":{"name":"Color"},"TimerBoardBlock":{"name":"Timer Display","opt":{"countdown":"count down","countup":"count up"},"timeup":"Time up","sec":"second(s)","timeleft":"time left"},"ScoreBoardBlock":{"name":"ScoreBoard","scoreup":"score changed"},"ScoreBlock":{"name":"Score"},"GameOverBlock":{"name":"Gameover"},"GameClearBlock":{"name":"Game Clear"},"BackgroundBlock":{"name":"Background"},"PuppetExpressionBlock":{"opt":{"f100":"once every 100 frames","f50":"once every 50 frames","f30":"once every 30 frames","f10":"once every 10 frames"}},"PropertyBlock":{"prompt":"Enter the name of variable to be added.","add":"add new...","self":"Variable","other":"Opponents' Variable"},"FrameSequenceBlock":{"opt":{"veryfast":"very fast","fast":"fast","normal":"normal","slow":"slow","veryslow":"very slow"}},"SignalBlock":{"name":"Signal","prompt":"Name the signal"}});
+res.addResource("en-us.blocks", {"categories":{"puppet":"Puppet","behavior":"Behavior","listener":"On X","game":"Game"},"puppetImages":{"bear":"Bear","icon":"Icons","child":"Kids","pig":"Pig","tank":"Tank","car":"Car","knight":"Knight","monster":"Monster","plane":"Plane","starship":"Starship","explosion":"Explosion"},"bgImages":{"default":"select a background","beach":"Beach","desert":"Desert","sky":"Sky","hollywood":"Holleywood","eclipse":"Eclipse","space":"Space","table":"Game table","rpg":"RPG","race":"Road","black":"Black background","blockg":"2D scroll block ground","actiong":"2D scroll dirt ground"},"ses":{"coin":"Coin","alarm":"Alarm","alarml":"Long alarm","correct":"Correct","incorrect":"Incorrect","explosion":"Explosion","bounce":"Bounce","break":"Break","gameover":"Gameover","jingle":"Jingle"},"opt":{"dir":{"horizontal":"horizontal","vertical":"vertical","all":"all direction","left":"left","right":"right","up":"up","down":"down","rightUp":"top right-hand","rightDown":"bottom right-hand","leftUp":"top left-hand","leftDown":"bottom left-hand"},"rot":{"cw":"clockwise","ccw":"counterclockwise"}},"PuppetBlock":{"name":"Puppet","prompt":"Rename the puppet."},"SignBoardBlock":{"name":"Text","prompt":{"name":"Rename the text.","content":"Input texts to be displayed."},"size":"text size","content":"content"},"NewPuppetBlock":{"name":"Add a Puppet"},"AddBehaviorBlock":{"name":"Add Behavior"},"DisplayBlock":{"name":"Display","opt":{"standAlone":"one","randomSetup":"many","randomAppearTop":"many come from top","randomAppearBottom":"many come from bottom","randomAppearRight":"many come from right","randomAppearLeft":"many come from left","interval":"Interval","initial":"initial number"}},"MoveBlock":{"name":"Motion","opt":{"zigzag":"zigzag","tapMove":"jump to tapped point","tapChase":"move to tapped point","move":"Move in a direction","moveRandomDir":"move in a random direction","moveby":"move a specific distance"}},"SpecialBlock":{"name":"Special","opt":{"biggerdir":"enlarge","smallerdir":"shrink","rot":"rotate","die":"disappear"}},"FrameBlock":{"prompt":{"frame":"Enter a number of frame","speed":"Enter a number of speed"},"opt":{"frame":"frame","speed":"speed"}},"StartPinBlock":{"name":"Start Location","suffix":" place(s)","add":"add location"},"CollisionBlock":{"name":"On Collision with","whenHit":"then","opt":{"t":"removed","f":"nothing happened"},"score":"score"},"HitpointBlock":{"name":"HP","opt":{"inc":"increase by","dec":"decrease by","set":"set to"}},"ListenerBlock":{"name":"On","then":"","opt":{"enterframe":"Time elapsed","touchend":"Puppet tapped","sceneTouchend":"Screen tapped","hit":"Collision with something","init":"Appearing on screen","actordie":"Removed from screen","actordieall":"Eliminated"}},"TargetHitBlock":{"name":"On collision with","then":""},"ColorBlock":{"name":"Color"},"TimerBoardBlock":{"name":"Timer Display","opt":{"countdown":"count down","countup":"count up"},"timeup":"Time up","sec":"second(s)","timeleft":"time left"},"ScoreBoardBlock":{"name":"ScoreBoard","scoreup":"score changed"},"ScoreBlock":{"name":"Score"},"GameOverBlock":{"name":"Gameover"},"GameClearBlock":{"name":"Game Clear"},"SEBlock":{"name":"Play sound"},"BackgroundBlock":{"name":"Background"},"PuppetExpressionBlock":{"opt":{"f100":"once every 100 frames","f50":"once every 50 frames","f30":"once every 30 frames","f10":"once every 10 frames"}},"PropertyBlock":{"prompt":"Enter the name of variable to be added.","add":"add new...","self":"Variable","other":"Opponents' Variable","global":"Global Variable"},"FrameSequenceBlock":{"opt":{"veryfast":"very fast","fast":"fast","normal":"normal","slow":"slow","veryslow":"very slow"}},"SignalBlock":{"name":"Signal","prompt":"Name the signal"}});
res.addResource("en-us", {"general":{"InputTextBox":{"prompt":"Enter a value here."}}});
res.addResource("en-us", {"main":{"close":"close","broken":{"data":"Invalid data"},"confirm":{"reset":{"message":"Are you sure to reset data?","t":"Yes","f":"No"}}}});
-res.addResource("ja-jp.blocks", {"categories":{"control":"制御","logic":"ロジック","variable":"変数","javascript":"JavaScript"},"IfBlock":{"name":"もし","then":"なら","do":"すること"},"RepeatBlock":{"name":"繰り返し","do":"すること"},"SetTimeoutBlock":{"name":"","label":"後に実行"},"SetIntervalBlock":{"name":"","label1":"秒ごとに","label2":"回実行"},"AssignBlock":{"name":"代入"},"ComputeBlock":{"name":"演算"},"NumberBlock":{"name":"数値"},"RandomBlock":{"name":"ランダムな数値","label1":"","label2":"から","label3":"まで"},"StringBlock":{"name":"文字列","prompt":"文字列を入力してください"},"EvalBlock":{"name":"実行","prompt":"実行したい式を入力してください"},"ExpressionBlock":{"name":"条件","prompt":"条件を入力してください"}});
+res.addResource("ja-jp.blocks", {"categories":{"control":"制御","logic":"ロジック","variable":"変数","javascript":"JavaScript"},"IfBlock":{"name":"もし","then":"なら","do":"すること"},"RepeatBlock":{"name":"繰り返し","do":"すること"},"SetTimeoutBlock":{"name":"","label":"後に実行"},"SetIntervalBlock":{"name":"","label1":"秒ごとに","label2":"回実行"},"AssignBlock":{"name":"代入"},"ComputeBlock":{"name":"演算"},"NumberBlock":{"name":"数値"},"ProbBlock":{"name":"確率","suffix":"%"},"RandomBlock":{"name":"ランダムな数値","label1":"","label2":"から","label3":"まで"},"StringBlock":{"name":"文字列","prompt":"文字列を入力してください"},"EvalBlock":{"name":"実行","prompt":"実行したい式を入力してください"},"ExpressionBlock":{"name":"条件","prompt":"条件を入力してください"}});
res.addResource("ja-jp.blocks", {"categories":{"moon":"MOON"},"EndBlock":{"name":"終了"},"opt":{"link":{"web":"Web","page":"Page"}},"SearchBlock":{"name":"検索"},"LinkBlock":{"name":"ハイパーリンク","prompt":{"page":"ページIDを入力してください","web":"リンクさせたいWebのUrlを入力してください"}},"PenBlock":{"name":"ペン","opt":{"thickness":"太さ","color":"色"}},"StickerBlock":{"name":"シール","label":{"tap":"タップされたとき","attach":"貼られたとき","detach":"剥がされたとき"}},"ListenerBlock":{"opt":{"scenePendown":"画面にペンが降ろされた","scenePenmove":"画面でペンが動いた","scenePenup":"画面からペンが離れた","sceneEraserdown":"画面に消しゴムが降ろされた","sceneErasermove":"画面で消しゴムが動いた","sceneEraserup":"画面から消しゴムが離れた"}},"BlackBlock":{"name":"ブラックボックス","comment":"スクリプト"}});
-res.addResource("ja-jp.blocks", {"categories":{"puppet":"パペット","behavior":"ビヘイビア","listener":"〇〇のとき","game":"ゲーム"},"puppetImages":{"bear":"くま","icon":"アイコン","child":"こども","pig":"ぶた","tank":"せんしゃ","car":"くるま","knight":"ナイト","monster":"モンスター","plane":"ひこうき","starship":"うちゅうせん","explosion":"ばくはつ"},"bgImages":{"default":"背景を選んでください","beach":"ビーチ","desert":"さばく","sky":"空","hollywood":"ハリウッド","eclipse":"日蝕","space":"宇宙"},"opt":{"dir":{"horizontal":"横","vertical":"縦","all":"全方向","left":"左","right":"右","up":"上","down":"下","rightUp":"右上","rightDown":"右下","leftUp":"左上","leftDown":"左下"},"rot":{"cw":"時計回り","ccw":"反時計回り"}},"PuppetBlock":{"name":"パペット","prompt":"パペットの名前を入力してください"},"SignBoardBlock":{"name":"テキスト","prompt":{"name":"テキストの名前を入力してください","content":"表示したいテキストを入力してください"},"size":"サイズ","content":"内容"},"NewPuppetBlock":{"name":"パペット追加"},"AddBehaviorBlock":{"name":"ビヘイビア追加"},"DisplayBlock":{"name":"出現","opt":{"standAlone":"ひとつだけでる","randomSetup":"たくさんでる","randomAppearTop":"上からたくさんでてくる","randomAppearBottom":"下からたくさんでてくる","randomAppearRight":"右からたくさんでてくる","randomAppearLeft":"左からたくさんでてくる","interval":"出てくる間隔","initial":"最初に出てくる数"}},"MoveBlock":{"name":"動き","opt":{"zigzag":"ジグザグに移動","tapMove":"タップしたところに位置変更","tapChase":"タップしたところに向かって移動","move":"1方向に移動","moveRandomDir":"ランダムな方向に移動","moveby":"指定した距離だけ移動"}},"SpecialBlock":{"name":"スペシャル","opt":{"biggerdir":"大きくなる","smallerdir":"小さくなる","rot":"回る","die":"消える"}},"FrameBlock":{"prompt":{"frame":"フレーム番号を入力してください","speed":"スピードを入力してください"},"opt":{"frame":"フレーム","speed":"スピード"}},"StartPinBlock":{"name":"スタート位置","suffix":"箇所","add":"追加"},"CollisionBlock":{"name":"あたる相手","whenHit":"あたると","opt":{"t":"消える","f":"消えない"},"score":"スコア"},"HitpointBlock":{"name":"HPを","opt":{"inc":"増やす","dec":"減らす","set":"設定"}},"ListenerBlock":{"name":"","then":"とき","opt":{"enterframe":"時間が進んだ","touchend":"パペットがタップされた","sceneTouchend":"画面がタップされた","hit":"当たった","init":"画面に現れた","actordie":"画面から消えた","actordieall":"全滅した"}},"TargetHitBlock":{"name":"","then":"と当たったとき"},"ColorBlock":{"name":"色"},"TimerBoardBlock":{"name":"タイマーボード","opt":{"countdown":"カウントダウン","countup":"カウントアップ"},"sec":"秒","timeup":"タイマーが終了した","timeleft":"残り時間"},"ScoreBoardBlock":{"name":"スコアボード","scoreup":"スコアが増えた"},"ScoreBlock":{"name":"スコア"},"GameOverBlock":{"name":"ゲームオーバー"},"GameClearBlock":{"name":"ゲームクリア"},"BackgroundBlock":{"name":"背景"},"PuppetExpressionBlock":{"opt":{"f100":"100コマに1度","f50":"50コマに1度","f30":"30コマに1度","f10":"10コマに1度"}},"PropertyBlock":{"prompt":"追加したい変数の名前を入力してください","add":"追加...","self":"変数","other":"相手の変数"},"FrameSequenceBlock":{"opt":{"veryfast":"とても速い","fast":"速い","normal":"普通","slow":"遅い","veryslow":"とても遅い"}},"SignalBlock":{"name":"シグナル送信","prompt":"シグナルの名前を入力してください"}});
+res.addResource("ja-jp.blocks", {"categories":{"puppet":"パペット","behavior":"ビヘイビア","listener":"〇〇のとき","game":"ゲーム"},"puppetImages":{"bear":"くま","icon":"アイコン","child":"こども","pig":"ぶた","tank":"せんしゃ","car":"くるま","knight":"ナイト","monster":"モンスター","plane":"ひこうき","starship":"うちゅうせん","explosion":"ばくはつ"},"bgImages":{"default":"背景を選んでください","beach":"ビーチ","desert":"さばく","sky":"空","hollywood":"ハリウッド","eclipse":"日蝕","space":"宇宙","table":"テーブル","rpg":"RPG","race":"道路","black":"黒背景","blockg":"ブロック床","actiong":"地面"},"ses":{"coin":"コイン","alarm":"アラーム","alarml":"アラーム2","correct":"ピンポン","incorrect":"ブー","explosion":"ばくはつ","bounce":"ポヨン","break":"ガシャン","gameover":"ゲームオーバー","jingle":"ジャーン"},"opt":{"dir":{"horizontal":"横","vertical":"縦","all":"全方向","left":"左","right":"右","up":"上","down":"下","rightUp":"右上","rightDown":"右下","leftUp":"左上","leftDown":"左下"},"rot":{"cw":"時計回り","ccw":"反時計回り"}},"PuppetBlock":{"name":"パペット","prompt":"パペットの名前を入力してください"},"SignBoardBlock":{"name":"テキスト","prompt":{"name":"テキストの名前を入力してください","content":"表示したいテキストを入力してください"},"size":"サイズ","content":"内容"},"NewPuppetBlock":{"name":"パペット追加"},"AddBehaviorBlock":{"name":"ビヘイビア追加"},"DisplayBlock":{"name":"出現","opt":{"standAlone":"ひとつだけでる","randomSetup":"たくさんでる","randomAppearTop":"上からたくさんでてくる","randomAppearBottom":"下からたくさんでてくる","randomAppearRight":"右からたくさんでてくる","randomAppearLeft":"左からたくさんでてくる","interval":"出てくる間隔","initial":"最初に出てくる数"}},"MoveBlock":{"name":"動き","opt":{"zigzag":"ジグザグに移動","tapMove":"タップしたところに位置変更","tapChase":"タップしたところに向かって移動","move":"1方向に移動","moveRandomDir":"ランダムな方向に移動","moveby":"指定した距離だけ移動"}},"SpecialBlock":{"name":"スペシャル","opt":{"biggerdir":"大きくなる","smallerdir":"小さくなる","rot":"回る","die":"消える"}},"FrameBlock":{"prompt":{"frame":"フレーム番号を入力してください","speed":"スピードを入力してください"},"opt":{"frame":"フレーム","speed":"スピード"}},"StartPinBlock":{"name":"スタート位置","suffix":"箇所","add":"追加"},"CollisionBlock":{"name":"あたる相手","whenHit":"あたると","opt":{"t":"消える","f":"消えない"},"score":"スコア"},"HitpointBlock":{"name":"HPを","opt":{"inc":"増やす","dec":"減らす","set":"設定"}},"ListenerBlock":{"name":"","then":"とき","opt":{"enterframe":"時間が進んだ","touchend":"パペットがタップされた","sceneTouchend":"画面がタップされた","hit":"当たった","init":"画面に現れた","actordie":"画面から消えた","actordieall":"全滅した"}},"TargetHitBlock":{"name":"","then":"と当たったとき"},"ColorBlock":{"name":"色"},"TimerBoardBlock":{"name":"タイマーボード","opt":{"countdown":"カウントダウン","countup":"カウントアップ"},"sec":"秒","timeup":"タイマーが終了した","timeleft":"残り時間"},"ScoreBoardBlock":{"name":"スコアボード","scoreup":"スコアが増えた"},"ScoreBlock":{"name":"スコア"},"GameOverBlock":{"name":"ゲームオーバー"},"GameClearBlock":{"name":"ゲームクリア"},"SEBlock":{"name":"音を鳴らす"},"BackgroundBlock":{"name":"背景"},"PuppetExpressionBlock":{"opt":{"f100":"100コマに1度","f50":"50コマに1度","f30":"30コマに1度","f10":"10コマに1度"}},"PropertyBlock":{"prompt":"追加したい変数の名前を入力してください","add":"追加...","self":"変数","other":"相手の変数","global":"グローバル変数"},"FrameSequenceBlock":{"opt":{"veryfast":"とても速い","fast":"速い","normal":"普通","slow":"遅い","veryslow":"とても遅い"}},"SignalBlock":{"name":"シグナル送信","prompt":"シグナルの名前を入力してください"}});
res.addResource("ja-jp", {"general":{"InputTextBox":{"prompt":"値を入力してください"}}});
res.addResource("ja-jp", {"main":{"close":"とじる","broken":{"data":"データが壊れています"},"confirm":{"reset":{"message":"本当にリセットしますか?","t":"する","f":"やめる"}}}});
}());
diff --git a/App/MOONBlock/lib/moon.puppet.enchant.js b/App/MOONBlock/lib/moon.puppet.enchant.js
index b0013de..475b9e2 100755
--- a/App/MOONBlock/lib/moon.puppet.enchant.js
+++ b/App/MOONBlock/lib/moon.puppet.enchant.js
@@ -1,4 +1,7 @@
(function(global) {
+
+ enchant.ENV.SOUND_ENABLED_ON_MOBILE_SAFARI = true;
+
(function(getMetrics) {
var ctx = enchant.Surface._staticCanvas2DContext;
enchant.Label.prototype.getMetrics = function(text) {
@@ -195,7 +198,13 @@
function preload() {
return loadAssets(userAssets.map(function(fileName) {
- return [ 'images/' + fileName, fileName ];
+ var base;
+ if (/\.wav$/.test(fileName)) {
+ base = 'sound/se/';
+ } else {
+ base = 'images/';
+ }
+ return [ base + fileName, fileName ];
}), true);
}
diff --git a/App/MOONBlock/lib/nineleap.enchant.js b/App/MOONBlock/lib/nineleap.enchant.js
index fd7b4d5..500c2eb 100755
--- a/App/MOONBlock/lib/nineleap.enchant.js
+++ b/App/MOONBlock/lib/nineleap.enchant.js
@@ -1,8 +1,8 @@
/**
* @fileOverview
* nineleap.enchant.js
- * @version 0.3.1 (2012/11/15)
- * @requires enchant.js v0.4.0 or later
+ * @version 0.3.4 (2013/04/03)
+ * @requires enchant.js v0.6.3 or later
*
* @description
* enchant.js extension for 9leap.net
@@ -11,16 +11,16 @@
* (9leapにアップロードした後のみランキング画面にジャンプする)
*
* @usage
-
- var core = new Core(320, 320);
-
- core.onload = function(){
- // executed after player pushed "START"
- // ...
- if(some.condition)core.end(score, result);
- };
-
- core.start();
+ *
+ * var core = new Core(320, 320);
+ *
+ * core.onload = function(){
+ * // executed after player pushed "START"
+ * // ...
+ * if(some.condition)core.end(score, result);
+ * };
+ *
+ * core.start();
*/
(function() {
@@ -76,125 +76,44 @@
this.endScene = new SplashScene();
this.endScene.image = this.assets['end.png'];
+ this.removeEventListener('load', arguments.callee);
});
this.scoreQueue = false;
this.started = false;
coreStart = false; // deprecated
},
- loadImage: function(src, callback) {
- if (callback == null) {
- callback = function() {
- };
- }
- this.assets[src] = enchant.Surface.load(src);
- this.assets[src].addEventListener('load', callback);
- },
-
- start: function() {
- var core = this;
-
- var onloadTimeSetter = function() {
- this.currentTime = this.getTime();
- this._nextTime = 0;
- this.removeEventListener('load', onloadTimeSetter);
- this.running = true;
- this.ready = true;
- this._requestNextFrame();
- };
- this.addEventListener('load', onloadTimeSetter);
-
- if (this._intervalID) {
- window.clearInterval(this._intervalID);
- } else if (this._assets.length) {
-
- if (enchant.Sound.enabledInMobileSafari && !core._touched &&
- enchant.ENV.VENDOR_PREFIX === 'webkit' && enchant.ENV.TOUCH_ENABLED) {
- console.log("mobile_first");
- var scene = new enchant.Scene();
- scene.backgroundColor = '#000';
- var size = Math.round(core.width / 10);
- var sprite = new enchant.Sprite(core.width, size);
- sprite.y = (core.height - size) / 2;
- sprite.image = new enchant.Surface(core.width, size);
- sprite.image.context.fillStyle = '#fff';
- sprite.image.context.font = (size - 1) + 'px bold Helvetica,Arial,sans-serif';
- var width = sprite.image.context.measureText('Touch to Start').width;
- sprite.image.context.fillText('Touch to Start', (core.width - width) / 2, size - 1);
- scene.addChild(sprite);
- document.addEventListener('touchstart', function() {
- core._touched = true;
- core.removeScene(scene);
- core.start();
- }, true);
- core.pushScene(scene);
- return;
- }
-
- var o = {};
- var assets = this._assets.filter(function(asset) {
- return asset in o ? false : o[asset] = true;
- });
- var tAssets = (this._twitterAssets != undefined) ? this._twitterAssets : [];
- var nAssets = (this._netpriceData != undefined) ? this._netpriceData : [];
- var mAssets = (this._memoryAssets != undefined) ? this._memoryAssets : [];
- var loaded = 0;
- var total = assets.length + tAssets.length + nAssets.length + mAssets.length;
- var i, l;
- var loadListener = function() {
+ _requestPreload: function() {
+ var o = {};
+ var loaded = 0,
+ len = 0,
+ loadFunc = function() {
var e = new enchant.Event('progress');
e.loaded = ++loaded;
- e.total = total;
- core.dispatchEvent(e);
- if (loaded === total) {
- core.removeScene(core.loadingScene);
- core.dispatchEvent(new enchant.Event('load'));
- }
+ e.total = len;
+ enchant.Core.instance.loadingScene.dispatchEvent(e);
};
- for (i = 0, l = assets.length; i < l; i++) {
- this.load(assets[i], loadListener);
- }
- for (i = 0, l = tAssets.length; i < l; i++) {
- this.loadImage(tAssets[i], function() {
- var e = new enchant.Event('progress');
- e.loaded = ++loaded;
- e.total = total;
- core.dispatchEvent(e);
- if (loaded === total) {
- core.removeScene(core.loadingScene);
- core.dispatchEvent(new enchant.Event('load'));
- }
- });
- }
- for (i = 0, l = mAssets.length; i < l; i++) {
- this.loadImage(mAssets[i], function() {
- var e = new enchant.Event('progress');
- e.loaded = ++loaded;
- e.total = total;
- core.dispatchEvent(e);
- if (loaded === total) {
- core.removeScene(core.loadingScene);
- core.dispatchEvent(new enchant.Event('load'));
- }
- });
- }
+ this._assets
+ .concat(this._twitterAssets || [])
+ .concat(this._netpriceData || [])
+ .concat(this._memoryAssets || [])
+ .reverse()
+ .forEach(function(asset) {
+ var src, name;
+ if (asset instanceof Array) {
+ src = asset[0];
+ name = asset[1];
+ } else {
+ src = name = asset;
+ }
+ if (!o[name]) {
+ o[name] = this.load(src, name, loadFunc);
+ len++;
+ }
+ }, this);
- for (i = 0, l = nAssets.length; i < l; i++) {
- this.loadImage(nAssets[i], function() {
- var e = new enchant.Event('progress');
- e.loaded = ++loaded;
- e.total = total;
- core.dispatchEvent(e);
- if (loaded === total) {
- core.removeScene(core.loadingScene);
- core.dispatchEvent(new enchant.Event('load'));
- }
- });
- }
- this.pushScene(this.loadingScene);
- } else {
- this.dispatchEvent(new enchant.Event('load'));
- }
+ this.pushScene(this.loadingScene);
+ return enchant.Deferred.parallel(o);
},
end: function(score, result, img) {
diff --git a/App/MOONBlock/lib/puppet.enchant.js b/App/MOONBlock/lib/puppet.enchant.js
index 15c660a..30e84a3 100755
--- a/App/MOONBlock/lib/puppet.enchant.js
+++ b/App/MOONBlock/lib/puppet.enchant.js
@@ -17,7 +17,9 @@ enchant.puppet = {
'chara2.png', 'chara3.png', 'chara3.png', 'chara4.png',
'chara5.png', 'chara6.png', 'chara7.png', 'starship.png',
'enemy01.png', 'effect0.gif', 'eclipse.png', 'hollywood.png',
- 'desert.png', 'beach.png', 'sky.png', 'spacebg.png'
+ 'desert.png', 'beach.png', 'sky.png', 'spacebg.png',
+ 'table.png', 'rpg.png', 'race.png', 'black.png',
+ 'blockg.png', 'actiong.png'
]
};
@@ -935,21 +937,23 @@ enchant.puppet.Theatre = enchant.Class.create(parentModule.Core, {
collisionAll: function() {
var constructors = enchant.puppet.Actor.constructors;
var hit = [];
- var Constructor, instances, instance, collision, collisionName, memo, result, other;
+ var iw, ih, Constructor, instances, instance, collision, collisionName, otherCollection, memo, other, r;
for (var ConstructorName in constructors) {
Constructor = constructors[ConstructorName];
instances = Constructor.collection;
for (var i = 0, l = instances.length; i < l; i++) {
instance = instances[i];
+ iw = instance.width;
+ ih = instance.height;
memo = {};
for (var j = 0, ll = instance.collision.length; j < ll; j++) {
collisionName = instance.collision[j];
if (!memo[collisionName]) {
- /*jshint loopfunc:true */
- result = instance.intersect(enchant.puppet.Actor.constructors[collisionName]);
- for (var k = 0, lll = result.length; k < lll; k++) {
- other = result[k];
- if (instance !== other) {
+ otherCollection = constructors[collisionName].collection;
+ for (var k = 0, lll = otherCollection.length; k < lll; k++) {
+ other = otherCollection[k];
+ r = (iw + ih + other.width + other.height) >> 3;
+ if (instance !== other && instance.within(other, r)) {
hit.push([ instance, other ]);
}
}
diff --git a/App/MOONBlock/main.js b/App/MOONBlock/main.js
index bbd7bf5..e1d1e65 100755
--- a/App/MOONBlock/main.js
+++ b/App/MOONBlock/main.js
@@ -16,6 +16,8 @@ enchant.block.dropdown.assets = [ 'images/dropdown.9.png' ];
enchant.block.blocks.puppet.SignBoardBlock.DEFAULT_COLOR = '#ffffff';
+enchant.ENV.SOUND_ENABLED_ON_MOBILE_SAFARI = true;
+
if (/Eagle/.test(navigator.userAgent)) {
(function(getMetrics) {
var ctx = enchant.Surface._staticCanvas2DContext;
@@ -125,7 +127,7 @@ function compile() {
'"lib/moon.puppet.enchant.js"' +
'], function() {' +
'enchant(); enchant.puppet.prepareTheatre({ assets:' +
- JSON.stringify(searchImagePath()) +
+ JSON.stringify(searchImagePath().concat(searchSEPath())) +
'});' +
blockScript +
"});");
@@ -144,8 +146,19 @@ function abortByLoadError(e) {
}
}
+function removeDups(set) {
+ var ret = [];
+ return set.filter(function(elem) {
+ var exists = (ret.indexOf(elem) !== -1);
+ if (!exists) {
+ ret.push(elem);
+ }
+ return !exists;
+ });
+}
+
function searchImagePath() {
- return [
+ return removeDups([
function searchStickerImagePath() {
return enchant.puppet.STICKER_IMAGE_PROPERTIES
.map(function(prop) {
@@ -190,7 +203,14 @@ function searchImagePath() {
})
.reduce(function(a, b) {
return a.concat(b);
- }, []);
+ }, []));
+}
+
+function searchSEPath() {
+ return removeDups(enchant.block.blocks.game.SEBlock.collection
+ .map(function(block) {
+ return block.getSentence('sesrc');
+ }));
}
enchant.LoadingScene = enchant.Class.create(enchant.Scene, {
@@ -264,6 +284,19 @@ entry
var width = metrics.width;
var height = metrics.height;
var core = enchant.Core.instance;
+ core.preload({
+ 'alarm.wav': 'sound/se/alarm.wav',
+ 'coin.wav': 'sound/se/coin.wav',
+ 'alarm.wav': 'sound/se/alarm.wav',
+ // 'alarm_long.wav': 'sound/se/alarm_long.wav',
+ 'correct.wav': 'sound/se/correct.wav',
+ 'incorrect.wav': 'sound/se/incorrect.wav',
+ 'explosion.wav': 'sound/se/explosion.wav',
+ 'bounce.wav': 'sound/se/bounce.wav',
+ 'break.wav': 'sound/se/break.wav',
+ 'gameover.wav': 'sound/se/gameover.wav',
+ 'jingle.wav': 'sound/se/jingle.wav'
+ });
core.onload = function() {
function isAllowedRemoving(block) {
return !(block instanceof enchant.block.blocks.moon.StickerBlock);
@@ -470,7 +503,6 @@ entry
blockGroup.scaleY = scale;
}
};
-
};
core.start();
});
@@ -596,6 +628,14 @@ window.onload = function() {
.forEach(function(path) {
editor.addFileDependency(path, 'images/' + path);
});
+
+ [
+ 'alarm.wav', 'coin.wav', 'alarm.wav', 'alarm_long.wav', 'correct.wav', 'incorrect.wav',
+ 'explosion.wav', 'bounce.wav', 'break.wav', 'gameover.wav', 'jingle.wav'
+ ].forEach(function(path) {
+ editor.addFileDependency('sound/se/' + path, 'sound/se/' + path);
+ });
+
editor.addFileDependency('lib/MOON.js', 'lib/MOON.js');
editor.addFileDependency('lib/enchant.js', 'lib/enchant.js');
editor.addFileDependency('lib/ui.enchant.js', 'lib/ui.enchant.js');
diff --git a/App/MOONBlock/sandbox.js b/App/MOONBlock/sandbox.js
index 6a9ee98..7260b3d 100755
--- a/App/MOONBlock/sandbox.js
+++ b/App/MOONBlock/sandbox.js
@@ -1,7 +1,21 @@
enchant();
enchant.puppet.Theatre.create({
- assets: [ 'clear.png' ]
+ showScore: false,
+ assets: {
+ 'clear.png': 'clear.png',
+ 'alarm.wav': 'sound/se/alarm.wav',
+ 'coin.wav': 'sound/se/coin.wav',
+ 'alarm.wav': 'sound/se/alarm.wav',
+ // 'alarm_long.wav': 'sound/se/alarm_long.wav',
+ 'correct.wav': 'sound/se/correct.wav',
+ 'incorrect.wav': 'sound/se/incorrect.wav',
+ 'explosion.wav': 'sound/se/explosion.wav',
+ 'bounce.wav': 'sound/se/bounce.wav',
+ 'break.wav': 'sound/se/break.wav',
+ 'gameover.wav': 'sound/se/gameover.wav',
+ 'jingle.wav': 'sound/se/jingle.wav'
+ }
});
window.addEventListener('message', function(e) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment