Autor Tema: Mover fondo 2D  (Leído 414 veces)

Jubbbey

  • New Jammer
  • *
  • Mensajes: 30
  • Molas: 2
Mover fondo 2D
« en: 19 de Junio de 2016, 06:43:26 pm »
Hola amigos programadores. Tengo una pequeña duda:
Resulta que tengo un fondo en un juego 2D y he hecho un código para que este mueva su "renderer" a la izquierda o derecha según donde vaya mi personaje. Hasta ahí bien, pero, como he usado el Time.time, si el personaje cambia de dirección o si está un rato parado y luego anda, claro, el fondo pega un salto y se ve bastante feo. Alguna idea o ayuda para arreglar esto?
El código, resumiendo, está así:

if (personaje.velocity.x > 2f) {
         
         GetComponent<Renderer> ().material.mainTextureOffset = new Vector2 (((Time.Time) * velocidad) % 1, 0);

Muchas gracias por la ayuda!!    P.D. He probado el resto de funciones que me ofrece Time, pero nada.....
   

JuDelCo

  • En evolución
  • Socio
  • Super Jammer
  • ***
  • Mensajes: 240
  • Molas: 35
  • The Game
    • Twitter
Re:Mover fondo 2D
« Respuesta #1 en: 19 de Junio de 2016, 10:25:33 pm »
Creo que el offset que le aplicas no debería estar basado en el tiempo, sino en el offset anterior


var anteriorOffset = GetComponent<Renderer> ().material.mainTextureOffset.x;

GetComponent<Renderer> ().material.mainTextureOffset = new Vector2 ((anteriorOffset + (Time.Time * velocidad)) % 1, 0);



Deberías usar Time.time solo para usarlo de delta con respecto a la velocidad, pero no como base del nuevo valor.

Jubbbey

  • New Jammer
  • *
  • Mensajes: 30
  • Molas: 2
Re:Mover fondo 2D
« Respuesta #2 en: 20 de Junio de 2016, 04:07:27 pm »
Muchas gracias. Lo he hecho así y ahora si va bien.


UUps... Ahora se ha generado otro problema. Lo he visto cuando he jugado el nivel completo. Resulta que conform va pasando el tiempo o el personaje anda más metros, la velocidad del fondo va aumentando exponencialmente.
Más tarde me pondré con ello a ver si logro dar con el fallo, pero me da que va a seguir siendo el Time