###概要
初の質問ですので質問の仕方などに不備があるかもしれません。
JavaScriptでは代入演算子では【参照】の扱いになってしまうため、
<コード1>のように無名関数で回避しようと試みましたが、
相変わらず不具合が発生しています。
######<コード1>
JavaScript
1for (var EventID = 0; EventID < MapData[3].length; EventID++) { 2 Ctx4.drawImage(TipImg, 16 * (MapData[3][EventID]["TipID"] % 8), 16 * (Math.floor(MapData[3][EventID]["TipID"] / 8)), 16, 16, 16 * MapData[3][EventID]["Position"][0], 16 * MapData[3][EventID]["Position"][1], 16, 16); 3 4 switch (MapData[3][EventID]["Type"]) { 5 case 1: 6 var X = MapData[3][EventID]["Position"][0], Y = MapData[3][EventID]["Position"][1]; 7 var Fuc = EventFucs[EventID]; 8 9 Timers.push(setInterval((function (X, Y, Fuc) { 10 return function () { 11 if (CharaPos[0] == X && CharaPos[1] == Y) { 12 Fuc(); 13 } 14 } 15 })(X, Y, Fuc), 10)); 16 17 break; 18 19 case 2: 20 var X = MapData[3][EventID]["Position"][0], Y = MapData[3][EventID]["Position"][1]; 21 var Fuc = EventFucs[EventID]; 22 23 Keys.push(function (Event) { 24 (function (X, Y, Fuc) { 25 if (Event.keyCode == Resource.SystemData.Key.Decide) { 26 if ((CharaPos[0] == X && CharaPos[1] == Y + 1) && CharaPos[2] == R.DIRECTION.N) { 27 Fuc(); 28 } else if ((CharaPos[0] == X && CharaPos[1] == Y - 1) && CharaPos[2] == R.DIRECTION.S) { 29 Fuc(); 30 } else if ((CharaPos[0] == X + 1 && CharaPos[1] == Y) && CharaPos[2] == R.DIRECTION.W) { 31 Fuc(); 32 } else if ((CharaPos[0] == X - 1 && CharaPos[1] == Y) && CharaPos[2] == R.DIRECTION.E) { 33 Fuc(); 34 } 35 } 36 })(X, Y, Fuc); 37 }); 38 39 document.addEventListener("keydown", Keys[i]); 40 41 break; 42 } 43}
###詳細
現在自由研究の作品としてRPGを製作しています。
幾つかのイベントを登録したはずが、
最後に登録したイベントのみが反映されるという不具合が発生しております。
###実際に使用しているサイト
[The Called Name](https://genbuproject.github.io/Genbu-Project-Official-Site/Content/The Called Name)
###元ソース
RPG Helper Alpha 1.3.js
RPG Helper Alpha 1.3.css
ご回答宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/28 04:00
2016/08/28 04:41