Gracias Gracias:  0
Resultados 1 al 1 de 1

Tema: Mover un sprite SFML c++

  1. #1
    Miembro Nuevo
    Fecha de ingreso
    Aug 2011
    Ubicación
    Reconquista
    Mensajes
    14

    Post Mover un sprite SFML c++

    Hola a todos.. tengo una duda en un TP que nos dieron en la universidad, es el siguiente:

    Tengo un sprite de una Nave, y tengo unos cuantos sprites de unos objetos espaciales (rocas), la actividad consta en que la nave se mueva con un MRUV (Movimiento Rectilineo Uniformemente Variado) siguiendo el mouse, pero no que aparesca donde esta el mouse sino que lo siga, por ej:

    Si mi mouse esta en la posición "X= 80" "Y= 80" y mi sprite de la nave en la posición "X= 0" "y= 0" la aceleración debería de ser 80 para el eje X y 80 para el eje Y, tomando la aceleración en cada frame.. así en caso de que en un frame el mouse se mueva o el sprite avance la aceleración varia.. esto es lo que tengo de código hasta ahora en la parte de física:

    Código:
    	
    ////////////////////////////////////Variables//////////////////////////////////////////////////
    float delta_t = 0.0f;			//Delta del tiempo
    float Posix = 400.f;				//La posición en x
    float Posiy = 300.f;				//La posición en y
    float Vix = 0.0f;				//Velocidad x
    float Viy = 0.0f;				//Velocidad y
    float ax = 0.0f;				//aceleración en el eje x
    float ay = 0.0f;				//aceleración en el eje y
    ////////////////////////////////////////////////////////////////////////////////////////////////
    
    //limitamos los frames
    App->SetFramerateLimit(60);
    
    //Calculamos delta_t y lo multiplicamos por 10 para que sea visiblemente más atractivo
    delta_t = App->GetFrameTime();
    
    	
    //Calculamos la distancia de la nave al mouse
    ax = Nave.GetPosition().x - (in.GetMouseX());	//Calculamos la distancia
    ay = Nave.GetPosition().y - (in.GetMouseY());	//Calculamos la distancia
    
    //Calculamos Vix, Viy, Posix, Posiy
    Viy = Viy - (ax * delta_t);
    Vix = Vix - (ay * delta_t);
    Posix = Posix + (Vix * (delta_t)) + 0.5 * (ax) * ((delta_t) * (delta_t));
    Posiy = Posiy + (Viy * (delta_t)) + 0.5 * (ay) * ((delta_t) * (delta_t));	
    
    Nave.SetPosition(Posix, Posiy);
    Última edición por thhedocctor; 01-12-2011 a las 21:21
    "No permitas que nadie diga que eres incapaz de hacer algo, ni si quiera yo. Si tienes un sueño, debes conservarlo. Si quieres algo, sal a buscarlo, y punto. ¿Sabes?, la gente que no logra conseguir sus sueños suele decirles a los demás que tampoco cumplirán los suyos"
    Will Smith

Temas similares

  1. Deglose de Sprite TVC
    Por 3dpoder en el foro Anuncios de Televisión
    Respuestas: 0
    Último mensaje: 26-06-2014, 18:56
  2. anuncio Sprite camuflaje global
    Por 3dpoder en el foro Anuncios de Televisión
    Respuestas: 0
    Último mensaje: 23-07-2012, 10:54
  3. Renders Sprite Grafiti
    Por ldilan03 en el foro Trabajos Finalizados
    Respuestas: 0
    Último mensaje: 27-03-2012, 02:00
  4. XSI Problema con el nodo sprite
    Por Hideoko88 en el foro Materiales y Texturizado
    Respuestas: 0
    Último mensaje: 26-08-2011, 12:44
  5. Blender BLENDER - Creacion de Sprite 3D
    Por IsGreen en el foro Blender
    Respuestas: 2
    Último mensaje: 28-03-2009, 17:40

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •