Created
August 30, 2013 04:28
-
-
Save esmasui/6386316 to your computer and use it in GitHub Desktop.
MOONBlockのdiff
MOONPhase2.4.1 > 2.5.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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