Очки для увеличения здоровья
|
|
Adom | Дата: Среда, 24 Июля 2013, 19:58 | Сообщение # 1 |
Печенька!
Сейчас нет на сайте
| Как сделать чтобы если ты убьешь врага то игроку начисляется определенное количество очков.И за эти очки он может купить например 25 хп к текущему значению броню и тд. Вот скрипт Жизней писал его сам .
Код using UnityEngine; using System.Collections;
public class XP : MonoBehaviour { public Transform Player; public Transform Bullet; public float xp = 0; public float Health; public float CurXP; // Use this for initialization void Start () { xp = 100; } // Update is called once per frame void Update () { } void OnTriggerEnter(){ if(GameObject.FindWithTag("Bullet")){ xp -=1; CurXP -=0.5f; if(xp <0){ Destroy(GameObject.FindWithTag("Player")); } } } void OnGUI(){ GUI.Label(new Rect(10, Screen.height - 40, 120, 20),"HP:"+CurXP+ "/"+Health); } }
Сообщение отредактировал Adom - Четверг, 25 Июля 2013, 00:05 |
|
| |
Alastar | Дата: Среда, 24 Июля 2013, 20:16 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Молодежь в конец обленилась уже
Big Boobs (+18 only!)
|
|
| |
Adom | Дата: Среда, 24 Июля 2013, 20:22 | Сообщение # 3 |
Печенька!
Сейчас нет на сайте
| Не я просто ищу направление как все это сделать я не прошу написать что-то готовое а просто объяснить как это реализовать.
|
|
| |
Alastar | Дата: Среда, 24 Июля 2013, 20:38 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Переменными
Big Boobs (+18 only!)
|
|
| |
Adom | Дата: Среда, 24 Июля 2013, 20:43 | Сообщение # 5 |
Печенька!
Сейчас нет на сайте
| ааа я уже пытался но ничего не вышло. Там у меня 3 скрипта 1 это скрипт который хранит все очки и добавляет к игроку хп,2 это скрипт жизней врага когда он умирает значение HP равняется 0 и тогда я делаю так.GetComponent<скрипт>.().название переменной значение;Все идет нормально но к хп ничего не прибавляеться.
|
|
| |
Kira | Дата: Среда, 24 Июля 2013, 21:04 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Adom, На скрипте врага, получи ссылку на на игрока(гейм обжиг). Затем получи ссылку на скрипт, и от туда на переменную. Перед смертью, сообщи об этом игроку, вызвав нужную функцию.
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
Adom | Дата: Среда, 24 Июля 2013, 21:18 | Сообщение # 7 |
Печенька!
Сейчас нет на сайте
| Спасибо все но уже решил.
Добавлено (24.07.2013, 21:14) --------------------------------------------- Хм а где можно найти за сколько сообщений можно получить следуйщий ранг ?
Добавлено (24.07.2013, 21:18) --------------------------------------------- Вот скрипты которые я использую. //
Код using UnityEngine; using System.Collections;
public class RPG : MonoBehaviour { public int A; public Transform rpg; // Use this for initialization void Start () {
}
// Update is called once per frame void Update () {
} void OnGUI(){ if(A == 1){ if(GUI.Button(new Rect(10,10,50,100),"Up")){ rpg.GetComponent<XP>().CurXP = 125; } } } } // Код using UnityEngine; using System.Collections;
public class Xp2 : MonoBehaviour { public Transform Enemy; public float HP; public Transform RPG; // Use this for initialization void Start () { HP = 100; }
// Update is called once per frame void Update () { if(HP <0){ HP =0; if(HP == 0){ GetComponentInChildren<Xp2>().HP =0; } } if(HP < 6){ RPG.GetComponent<RPG>().A = 1; } } void OnTriggerEnter(){ if(GameObject.FindWithTag("Bullet2")){ HP -=5; }else{ HP +=0; } if(HP == 0){ Destroy(GameObject.FindWithTag("Body")); }else{ if(HP == 0){ Destroy(gameObject); } } } } // Код using UnityEngine; using System.Collections;
public class XP : MonoBehaviour { public Transform Player; public Transform Bullet; public float xp = 0; public float Health; public float CurXP; // Use this for initialization void Start () { xp = 100; } // Update is called once per frame void Update () { } void OnTriggerEnter(){ if(GameObject.FindWithTag("Bullet")){ xp -=1; CurXP -=0.5f; if(xp <0){ Destroy(GameObject.FindWithTag("Player")); } } } void OnGUI(){ GUI.Label(new Rect(10, Screen.height - 40, 120, 20),"HP:"+CurXP+ "/"+Health); } } Как сделать чтобы чтобы допустим у игрока прибавилось еще 1 очко и он нажимает кнопку и ему прибавилось еще 25 хп и так далее пока игрок получает очки.
Сообщение отредактировал Adom - Среда, 24 Июля 2013, 23:21 |
|
| |
true_abrakadabra | Дата: Среда, 24 Июля 2013, 22:49 | Сообщение # 8 |
Unity3d - ван лав
Сейчас нет на сайте
| Тег [code] для кого? Я даже смотреть на эту простыню не хочу
Ниндзя
|
|
| |
Adom | Дата: Пятница, 26 Июля 2013, 13:42 | Сообщение # 9 |
Печенька!
Сейчас нет на сайте
| Ауу
|
|
| |
allods | Дата: Пятница, 26 Июля 2013, 14:38 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| Ау? волки развелись
|
|
| |
Adom | Дата: Пятница, 26 Июля 2013, 15:33 | Сообщение # 11 |
Печенька!
Сейчас нет на сайте
| Добавлено (26.07.2013, 15:33) --------------------------------------------- Как сделать чтобы чтобы допустим у игрока прибавилось еще 1 очко и он нажимает кнопку и ему прибавилось еще 25 хп и так далее пока игрок получает очки. Как это сделать ?
|
|
| |
pixeye | Дата: Пятница, 26 Июля 2013, 19:01 | Сообщение # 12 |
Red Winter Software
Сейчас нет на сайте
| Настоятельно не рекомендую всем кто начал писать свою "RPG" хранить переменные здоровья, атак, да и практически любого сложного атрибута в виде простого числового значения: Так или иначе практически с каждым атрибутом будет связана целая цепочка других переменных и если все это намешать в одну кашу то работать потом будет неудобно:)
Структуры и классы. В первую очередь у вас обязательно может возникнуть необходимость хранить такие вещи как: текущее значение, базовое, минимальное, максимальное. Это удобно объединять в структуры и держать в классе типа Stat в котором так же хранить модификаторы и массивы бафов относящихся к конкретному атрибуту и производить все вычисления там же
Лично я разделил статы на целочисловые (хп, атака, броня) и процентного типа ( рейты точности,уворота,критшанса )
Так же не мешайте логику интерфейса и игровую логику в одну кучу. В идеале надо распланировать так, что игра могла бы работать сама по себе без монитора:) Впоследствии оч удобно править (либо отображение либо логику)
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
Adom | Дата: Пятница, 26 Июля 2013, 19:15 | Сообщение # 13 |
Печенька!
Сейчас нет на сайте
| Я ничего не понял тк я новичек в скриптописании
|
|
| |
Kira | Дата: Пятница, 26 Июля 2013, 19:22 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Adom, почитай это - Шилдт Г. Полное руководство С#4.0
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
Adom | Дата: Пятница, 26 Июля 2013, 19:58 | Сообщение # 15 |
Печенька!
Сейчас нет на сайте
| Ага Добавлено (26.07.2013, 19:58) --------------------------------------------- Для меня это выглядит очень тяжело поэтому я пока уберу RPG в сторону.
|
|
| |
lapendown | Дата: Суббота, 27 Июля 2013, 00:22 | Сообщение # 16 |
постоянный участник
Сейчас нет на сайте
| Adom, убери лет на 10... Цитата Дата рождения:31 Августа 2000 [ 12 Дева ]
|
|
| |
Adom | Дата: Суббота, 27 Июля 2013, 09:26 | Сообщение # 17 |
Печенька!
Сейчас нет на сайте
| Я просто пытаюсь всему этому научиться и понять как все это делать, и то что мне 12 не значит что я школоло которое ничего не не знает кроме игр.А ты я так понял намекаешь на это.И то что ты написал играть в песочнице это подойдет и для тебя а я буду дальше учить языки программирования и Unity
Сообщение отредактировал Adom - Суббота, 27 Июля 2013, 09:30 |
|
| |