Пятница, 22 Ноября 2024, 09:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Если счет меньше 1 - не впускать дальше
Knife_KillДата: Воскресенье, 04 Января 2015, 21:08 | Сообщение # 1
частый гость
Сейчас нет на сайте
В общем, есть вырвиглазный код (ниже) и нужно сделать условие - если герой собрал меньше 1 звездочки - не впускать его дальше. Несколько часов ломал голову, так и не додумался как сделать.

Код
using UnityEngine;
using System.Collections;

public class Controll : MonoBehaviour {
   
  public float jump = 100;
  public float maxSpeed;
  public GameObject heroes;
  public float score;
  public string lovel;

  void Update ()  
  {
   if(Input.GetKeyDown(KeyCode.W)||Input.GetKeyDown(KeyCode.UpArrow))
   {
    heroes.rigidbody2D.AddForce(new Vector2(0f, jump));
   }
   if(Input.GetKey(KeyCode.D)||Input.GetKey(KeyCode.RightArrow))
   {
    heroes.rigidbody2D.velocity = new Vector2(maxSpeed, rigidbody2D.velocity.y);
   }
   if(Input.GetKey(KeyCode.A)||Input.GetKey(KeyCode.LeftArrow))
   {
    heroes.rigidbody2D.velocity = new Vector2((-maxSpeed), rigidbody2D.velocity.y);
   }
   if(Input.GetKeyDown(KeyCode.R))
   {
    Application.LoadLevel(Application.loadedLevel);
   }
   if(Input.GetKeyDown(KeyCode.Escape))
   {
    Application.Quit();
   }
  }

  void OnTriggerEnter2D(Collider2D col)
  {
   if(col.gameObject.tag == "Die"||col.gameObject.tag == "Saw")
   {
    Application.LoadLevel(Application.loadedLevel);
   }
   if(col.gameObject.tag == "End")
   {
    Application.LoadLevel(lovel);
   }
   if(col.gameObject.tag == "Star")
   {
    score++;
    Destroy(col.gameObject);
   }
  }
}


Ах да, еще вопросик - как сделать чтобы камера четко была зафиксирована на предмете и не крутилась с ним? Если я делаю ее "дочерней" предмету, то она крутится, как это исправить?

Зарание благодарю.
yavlДата: Воскресенье, 04 Января 2015, 21:30 | Сообщение # 2
частый гость
Сейчас нет на сайте
Цитата Knife_Kill ()
условие - если герой собрал меньше 1 звездочки - не впускать его дальше.

if (score >= 1.0f) {
nextlevel();
}
else nevpuskat();
Knife_KillДата: Воскресенье, 04 Января 2015, 21:56 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата yavl ()
if (score >= 1.0f) {
nextlevel();
}
else nevpuskat();

Спасибо, работает. Странно, до этого писал похожее - не работало, но тогда я указывал вместо >= просто > и вместо 1.0f указывал 1, неужели в этом проблема?


Сообщение отредактировал Knife_Kill - Воскресенье, 04 Января 2015, 21:58
NEBRДата: Воскресенье, 04 Января 2015, 23:28 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Цитата Knife_Kill ()
вместо 1.0f указывал 1, неужели в этом проблема?

не, с этим проблем быть не должно. флоат переменные целочисленные не требуют добавления буквы f


King Size #Gamiron12
MANMANAДата: Воскресенье, 04 Января 2015, 23:31 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Цитата NEBR ()
но тогда я указывал вместо >= просто > и вместо 1.0f указывал 1, неужели в этом проблема?

скорее всего где-то было условие вида if(score<=1) и/или if(score=1) или if(score<1)
либо скобочки не там, их отсутствие
ну и как вариант - не туда были добавлены строки


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Воскресенье, 04 Января 2015, 23:32
Knife_KillДата: Понедельник, 05 Января 2015, 00:12 | Сообщение # 6
частый гость
Сейчас нет на сайте
Ладно, в любом случае спасибо.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг