Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Añadir +1 a un int...

Iniciado por ramunda, Agosto 29, 2016, 01:45:42 PM

Tema anterior - Siguiente tema
Agosto 29, 2016, 01:45:42 PM Ultima modificación: Agosto 29, 2016, 01:56:53 PM por ramunda
Buenas tardes
 
Tengo un problema con un int que aprenetemente es facul pero me lleva de cabeza.
 
Quiero añadir +1 a un public int en este caso numero de bolas al llegar a una puntuación...pues no hay manera.
 
Este script alberga el numero de bolas:
 

using UnityEngine;
using System.Collections;
public class BallManager : MonoBehaviour
{
public GameObject ball;
public Transform spawnPosition;
public TextMesh display;
public int lives = 3;
public bool gameOver = false;
AudioSource audio;
public GameObject luzx1;
public GameObject luzx2;
public GameObject luzx3;
 
   
void Update()
{
   AudioSource audio = GetComponent<AudioSource> ();
   //Check for gameover
   if (lives < ) {
      if (display) {
         display.text = "GAME OVER";
         gameOver = true;
      }
   }
   
   //Ball cae y no es game over
   if (!GameObject.FindGameObjectWithTag ("Ball") && !gameOver) {
      lives--;
      Instantiate (ball, spawnPosition.position, ball.transform.rotation);
      audio.Play ();
      luzx1.SetActive (true);
      luzx2.SetActive (false);
      luzx3.SetActive (false);
      ScoreManager.Instance.SetScorePower (1);
      //Update bolas restantes
      if(display)
      {
         display.text = "BOLAS RESTANTES: " + lives.ToString();
      }
   }
   
   if(gameOver)
   {
      if(Input.GetKeyDown(KeyCode.Return))
      {
         Application.LoadLevel(Application.loadedLevel);
      }
   
   }
}
}

 
Este es el que intento que añada una bola extra al llegar a xxxx puntos.
 

using UnityEngine;
using System.Collections;
public class ScoreManager : MonoBehaviour
{
public static ScoreManager Instance;
void Awake()
{
Instance = this;
}
public   int score =;
public   int scorebumper =50000;
public   int scoredianas =100;
public   int scoreagujeros =10000;
public   int scoretarjets =100;
public   int scorePower = 2;
public   int bankvalue =10000;
public    TextMesh display;
public GameObject Ballmanager;
private bool detener;
 
void Update()
{
   if (display)
   {
      display.text = score.ToString ("D8");
   }
   if (score == 10000 && detener == false) {
   Invoke("millonn",1);
}   
}
public   void ScoreUp(int points)
{
score += (points * scorePower);
}
public  void SetScorePower(int power)
{
   scorePower = power;
}
void millonn()
{
Debug.Log ("MILLLOOOOONNN");
   Ballmanager.GetComponent<BallManager> ().lives =+3 ;
}
}

 
Pues no hay manera me aumenta las 3 bolas...pero si me queda una bola antes de llegar a la puntuación me suma las 3.... si le pongo +1 me deja en 1....agradeceria un aire a este problema , 
 
Gracias de antemano y un saludo.
 
 

tendria que estar el mas antes del igual,supongo  que se te ha pasado pero esto es de preescolar de programacion xD xD
 

Ballmanager.GetComponent<BallManager> ().lives +=3 ;

 
luego algo asi mejor para comprobar
 

private int nextExtraBall = 0;
public int scoreExtraBall = 10000;
void Start(){
  nextExtraBall += scoreExtraBall;
}
if (score >= nextExtraBall && detener == false) {
    millonn();
         nextExtraBall += scoreExtraBall;
}

 
Y por ultimo, me parece un desproposito,XD por asi decirlo,XD el update del primer script,tu tienes que saber cuando se pierde una bola ,cuando se pierde una vida y cuando es game over, tener un update comprobando a cada frame no tiene sentido.
 
Salut y força al Can.... !!!  XD

Agosto 29, 2016, 06:26:21 PM #2 Ultima modificación: Agosto 29, 2016, 06:38:30 PM por ramunda
Er hahaha sihammer lo del +=3 lo tenia bien pero justamente copie el script al estar probando aver si era eso...
 
Igualmente con el +=3 no funciona no añade la bola.voy a probar el metodo 2 el que me has exouesto y si lo del up`dtae...XDDDD soy lerdo recuerdas hahahhaha.
 
Vale Metodo 2 ....
 
con una puntuación de 205000 me da 20 bolas extras.....y eso que le he puesto +1..
 
Esta multiplicando?
 
no lo entiendo
 
:(
 
 
 
 

Agosto 29, 2016, 07:11:39 PM #3 Ultima modificación: Agosto 29, 2016, 07:11:59 PM por hammer
Pues no deberia, asi tendria que funcionar, yo he puesto el scoreExtraBall en 10 000 por poner algo, pero si estas usando los scores que tienes en el manager,aunque ya habiamos dicho que no deberias xD xD, bumper 50 000, pues obviamente te sumara varias bolas en pocos frames,ponlo en 100 000 o 1 000 000

Cita de: hammer date=1472490699Pues no deberia, asi tendria que funcionar, yo he puesto el scoreExtraBall en 10 000 por poner algo, pero si estas usando los scores que tienes ,aunque ya habiamos dicho que no deberias xD xD, bumper 50 000, pues obviamente te sumara varias bolas en pocos frames,ponlo en 100 000 o 1 000 000
   


Si , esta vez si Maestro Yoda XD , al tener poca puntuación se multiplicaban con una puntuación de 100.000 funciona bien ,la única pega es que no se añade al instante sino que se añade cuando se pierde la bola, osea sabes que la tiene pero no se refeja hasta que se te va.
 
Seguramente por el "mal gestionado Update...." , pero ya vere como me las apaño.
 
Muchas gracias hammer otro 10 para ti :)
 
Un abrazo.

Etiquetas: