Переработка системы счета
QNicolya Дата: Вт, 27 Дек 2011, 19:29 | Сообщение # 1
God gave Rock'N'Roll to you
Сообщений: 3369
Награды:
3
Репутация:
352
Статус: Offline
И так, буду говорить без прелюдий... Скачал я исходники ПэкМэна, и столкнулся с кучей проблем. Многие из них я уже решил, остались только главные. И одна из них, это система счета. Вообще, меня в ней все устраивает... Почти... Не может же быть аркада без штрафов? Так вот, есть два скрипта: Контроллер врагов Code
var howLong = 1.0; var howFast = 8.0; private var nextUpdate = 0.0; private var direction : Vector3; function Update () { if (Time.time > nextUpdate) { nextUpdate = Time.time + (Random.value * howLong); direction = Random.onUnitSphere; direction.y = 0; direction.Normalize (); direction *= howFast; direction.y = 1.5 - transform.position.y; } var controller = GetComponent(CharacterController); controller.Move(direction * Time.deltaTime); }
и Система счета Code
var scoreDisplay : GUIText; var smallPelletScore = 10; var superPelletScore = 100; private var score = 0; function Update () { scoreDisplay.text = "Score: " + score; } function OnTriggerEnter (other : Collider) { if (other.name == "BasicPellet(Clone)") { score += smallPelletScore; } else if (other.name == "SuperPellet(Clone)") { score += superPelletScore; } Destroy (other.gameObject); }
Так вот, в чем вся суть вопроса? Как сделать, что бы при столкновении с врагом у тебя отнималось -n очков? Заранее, всем спасибо.
Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
Сообщение отредактировал Dekterev - Ср, 28 Дек 2011, 13:40
Сообщение И так, буду говорить без прелюдий... Скачал я исходники ПэкМэна, и столкнулся с кучей проблем. Многие из них я уже решил, остались только главные. И одна из них, это система счета. Вообще, меня в ней все устраивает... Почти... Не может же быть аркада без штрафов? Так вот, есть два скрипта: Контроллер врагов Code
var howLong = 1.0; var howFast = 8.0; private var nextUpdate = 0.0; private var direction : Vector3; function Update () { if (Time.time > nextUpdate) { nextUpdate = Time.time + (Random.value * howLong); direction = Random.onUnitSphere; direction.y = 0; direction.Normalize (); direction *= howFast; direction.y = 1.5 - transform.position.y; } var controller = GetComponent(CharacterController); controller.Move(direction * Time.deltaTime); }
и Система счета Code
var scoreDisplay : GUIText; var smallPelletScore = 10; var superPelletScore = 100; private var score = 0; function Update () { scoreDisplay.text = "Score: " + score; } function OnTriggerEnter (other : Collider) { if (other.name == "BasicPellet(Clone)") { score += smallPelletScore; } else if (other.name == "SuperPellet(Clone)") { score += superPelletScore; } Destroy (other.gameObject); }
Так вот, в чем вся суть вопроса? Как сделать, что бы при столкновении с врагом у тебя отнималось -n очков? Заранее, всем спасибо. Автор - QNicolya Дата добавления - 27 Дек 2011 в 19:29
Aswo Дата: Ср, 28 Дек 2011, 12:34 | Сообщение # 2
КЗОИ
Сообщений: 1031
Награды:
18
Репутация:
430
Статус: Offline
В функцию function OnTriggerEnter (other : Collider) впиши еще одно условие: Code
if (other.name == "*тут имя того, с кем столкнулся*") { score -= *тут сколько вычитать*; }
Вроде бы как-то так.
end.
Сообщение В функцию function OnTriggerEnter (other : Collider) впиши еще одно условие: Code
if (other.name == "*тут имя того, с кем столкнулся*") { score -= *тут сколько вычитать*; }
Вроде бы как-то так. Автор - Aswo Дата добавления - 28 Дек 2011 в 12:34
QNicolya Дата: Ср, 28 Дек 2011, 12:58 | Сообщение # 3
God gave Rock'N'Roll to you
Сообщений: 3369
Награды:
3
Репутация:
352
Статус: Offline
Aswo , вписал, ошибки исправил. Но при столкновении очки не отнимаются... Получилось так: Новый скрипт счета Code
var scoreDisplay : GUIText; var smallPelletScore = 10; var superPelletScore = 100; var MinusScore = 200; private var score = 0; function Update () { scoreDisplay.text = "Score: " + score; } function OnTriggerEnter (other : Collider) { if (other.name == "BasicPellet(Clone)") { score += smallPelletScore; } else if (other.name == "SuperPellet(Clone)") { score += superPelletScore; } else if (other.name == "Blinky") { score -= MinusScore; } Destroy (other.gameObject);
Предупреждение! Есть-же тег code! Лепите спойлеры где надо и не надо... Dekterev
Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
Сообщение отредактировал Dekterev - Ср, 28 Дек 2011, 13:44
Сообщение Aswo , вписал, ошибки исправил. Но при столкновении очки не отнимаются... Получилось так: Новый скрипт счета Code
var scoreDisplay : GUIText; var smallPelletScore = 10; var superPelletScore = 100; var MinusScore = 200; private var score = 0; function Update () { scoreDisplay.text = "Score: " + score; } function OnTriggerEnter (other : Collider) { if (other.name == "BasicPellet(Clone)") { score += smallPelletScore; } else if (other.name == "SuperPellet(Clone)") { score += superPelletScore; } else if (other.name == "Blinky") { score -= MinusScore; } Destroy (other.gameObject);
Предупреждение! Есть-же тег code! Лепите спойлеры где надо и не надо... Dekterev Автор - QNicolya Дата добавления - 28 Дек 2011 в 12:58
Aswo Дата: Ср, 28 Дек 2011, 13:02 | Сообщение # 4
КЗОИ
Сообщений: 1031
Награды:
18
Репутация:
430
Статус: Offline
QNicolya , else убери.Добавлено (28.12.2011, 13:02) --------------------------------------------- И проверь имя, такое ли оно.
end.
Сообщение QNicolya , else убери.Добавлено (28.12.2011, 13:02) --------------------------------------------- И проверь имя, такое ли оно.
Автор - Aswo Дата добавления - 28 Дек 2011 в 13:02
QNicolya Дата: Ср, 28 Дек 2011, 13:07 | Сообщение # 5
God gave Rock'N'Roll to you
Сообщений: 3369
Награды:
3
Репутация:
352
Статус: Offline
Aswo , имя такое, даже с убранным елсом не работает.
Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
Сообщение Aswo , имя такое, даже с убранным елсом не работает.Автор - QNicolya Дата добавления - 28 Дек 2011 в 13:07
Aswo Дата: Ср, 28 Дек 2011, 13:11 | Сообщение # 6
КЗОИ
Сообщений: 1031
Награды:
18
Репутация:
430
Статус: Offline
QNicolya , триггер есть на врагах? Если нет, то повесь и столкновение опиши с триггом (имя его).
end.
Сообщение QNicolya , триггер есть на врагах? Если нет, то повесь и столкновение опиши с триггом (имя его).Автор - Aswo Дата добавления - 28 Дек 2011 в 13:11
QNicolya Дата: Ср, 28 Дек 2011, 13:26 | Сообщение # 7
God gave Rock'N'Roll to you
Сообщений: 3369
Награды:
3
Репутация:
352
Статус: Offline
Aswo , триггер повесил, все равно не работает. А как правильно описать столкновение с триггером?
Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
Сообщение Aswo , триггер повесил, все равно не работает. А как правильно описать столкновение с триггером?Автор - QNicolya Дата добавления - 28 Дек 2011 в 13:26
Aswo Дата: Ср, 28 Дек 2011, 13:38 | Сообщение # 8
КЗОИ
Сообщений: 1031
Награды:
18
Репутация:
430
Статус: Offline
Ну так-то у тебя вроде правильно. Попробуй вот так: Code
function OnTriggerEnter (other : Collider) { if (other.gameObject.name == "BasicPellet(Clone)") { score += smallPelletScore; } else if (other.gameObject.name == "SuperPellet(Clone)") { score += superPelletScore; } Destroy (other.gameObject); if (other.gameObject.name == "Blinky") { score -= MinusScore; } }
end.
Сообщение Ну так-то у тебя вроде правильно. Попробуй вот так: Code
function OnTriggerEnter (other : Collider) { if (other.gameObject.name == "BasicPellet(Clone)") { score += smallPelletScore; } else if (other.gameObject.name == "SuperPellet(Clone)") { score += superPelletScore; } Destroy (other.gameObject); if (other.gameObject.name == "Blinky") { score -= MinusScore; } }
Автор - Aswo Дата добавления - 28 Дек 2011 в 13:38
QNicolya Дата: Ср, 28 Дек 2011, 13:40 | Сообщение # 9
God gave Rock'N'Roll to you
Сообщений: 3369
Награды:
3
Репутация:
352
Статус: Offline
Aswo , все равно, не работает. У тебя скайп есть? Будет проще.
Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
Сообщение Aswo , все равно, не работает. У тебя скайп есть? Будет проще.Автор - QNicolya Дата добавления - 28 Дек 2011 в 13:40
Aswo Дата: Ср, 28 Дек 2011, 14:19 | Сообщение # 10
КЗОИ
Сообщений: 1031
Награды:
18
Репутация:
430
Статус: Offline
Я дома после 17:10 по МСК буду. Если без меня не помогут, то помогу. Кстати этот скрипт на Player ведь висит?
end.
Сообщение Я дома после 17:10 по МСК буду. Если без меня не помогут, то помогу. Кстати этот скрипт на Player ведь висит? Автор - Aswo Дата добавления - 28 Дек 2011 в 14:19
QNicolya Дата: Ср, 28 Дек 2011, 15:23 | Сообщение # 11
God gave Rock'N'Roll to you
Сообщений: 3369
Награды:
3
Репутация:
352
Статус: Offline
Aswo , конечно висит В ЛС Aswo
Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
Сообщение Aswo , конечно висит В ЛС Aswo Автор - QNicolya Дата добавления - 28 Дек 2011 в 15:23