Я использую Titanium Appcelerator.
У меня есть набор кнопок, которые я создал для игры. Существует один массив кнопок на игрока.
У меня также есть массив объектов игрока, и у каждого есть свойство "Score".
Когда игрок нажимает одну из кнопок, для которых все имеют назначенное значение, игрок, которому принадлежит эта кнопка, должен обновить свой счет.
Вот как я создаю набор кнопок для каждого игрока:
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, я делаю одно из следующих действий, которые не влияют на свойство объекта для счета игрока:
(нажата кнопка "this")
var totalScore = 50;
this.myPlayer.score = totalScore;
player[1].score = totalScore;
Ti.API.debug(player[1].score) //this prints out 0, not 50
Не знаю, почему я не могу изменить счет игрока. Надеюсь, это достаточно ясно.