TitaniumAppceleratorを使用しています。
ゲーム用に作成したボタンの配列があります。プレーヤーごとに1つのボタンの配列があります。また、プレーヤーオブジェクトの配列があり、それぞれに「スコア」プロパティがあります。
プレイヤーがすべてに値が割り当てられているボタンの1つを押すと、このボタンが属するプレイヤーはスコアを更新します。
各プレーヤーのボタンのセットを作成する方法は次のとおりです。
for(var i=0;i<7;i++){
playerButtons[i] = Titanium.UI.createButton({
myPlayer: thePlayer,
index: i,
value: 50,
touchEnabled: true,
});
}
ボタンが属するプレーヤーに「myPlayer」のプロパティを設定しています。これは、押したときにプレーヤーに関連付けることができるようにするためであり、更新するスコアを知るためです。このforループは、ゲームの開始時に呼び出される関数内にあり、それが属するプレーヤーオブジェクトを保持する「thePlayer」変数が渡されます。ただし、ここでは切断されているようです。例:プレーヤー1のスコアがたとえば0で、50に相当するボタンが押された場合、次のいずれかを実行します。これは、プレーヤーのスコアのオブジェクトプロパティには影響しません。
(「これ」は押されたボタンです)
var totalScore = 50;
this.myPlayer.score = totalScore;
player[1].score = totalScore;
Ti.API.debug(player[1].score) //this prints out 0, not 50
なぜプレイヤーのスコアを変更できないのかわかりません。これが十分に明確であることを願っています。