User Tag List

Resultados 1 al 6 de 6

Tema: Consejos sobre el movimiento del personaje

  1. #1

    Fecha de ingreso
    Jun 2005
    Ubicación
    Ourense
    Mensajes
    4,315
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    281
    Agradecer Thanks Received 
    225
    Thanked in
    Agradecido 130 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2

    Question Consejos sobre el movimiento del personaje

    Bueno, pues tengo un proyecto en mente al que voy dando pinceladas de vez en cuando (cuando tenga algo visible subo una demo xDD) y tengo una pequeña suda sobre como mover al personaje.
    El personaje está en la pantalla superior y se mueve de izquierda a derecha tocando con el styus en la tactil (según la coordenada X del stylus es la coordenada X del personaje), el problemilla/duda que tengo es el siguiente:
    -Tal como lo tengo ahora (coordenada x del personaje igual a la coordenada x del stylus), si mueves el stylus de izquierda a derecha se ve perfecto (animacion del personaje avanzando), pero si por ejemplo, levantas el stylus y pinchas en cualquier lao, el personaje aparece en ese lado sin dar la sensacion de movimiento, y lo que queria hacer es que al pinchar en la tactil, el personaje se mueva a esa coordenada.
    Ya he tocado algo pero no me ha resultado, he hecho lo siguiente:
    Código:
    		sprtx= PA_GetSpriteX(1,0);
    		
    		if (sprtx > movx)
    		{
    		   if (sprtx != movx)
    		   {
    				do
    				{
    				   sprtx-=3;
    			         } while (sprtx == movx);
    	            }	
    		}
    		else
    		{
    			if (sprtx != movx)
    			{
    				do
    				{
    					sprtx+=3;
    				} while (sprtx == movx);
    			}				
    		}
                     PA_SetSpriteXY(1,0,sprtx, movy);
    ]
    El problema de este codigo es, que cuando inicia el juego el sprite esta quietecito, pero cuando mueves por primera vez al sprite le dan "temblores" xDDDD vamos, que no está ni en un sitio ni en otro :P quería saber alguna forma de poder arreglar esto ya que no se me ocurre ninguna :P

  2. #2

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,707
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    233
    Agradecer Thanks Received 
    763
    Thanked in
    Agradecido 475 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    Borralo y hazlo de cero xDDD

  3. #3

    Fecha de ingreso
    Aug 2005
    Mensajes
    9,463
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Eso mismo he pensado yo xD

  4. #4

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,707
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    233
    Agradecer Thanks Received 
    763
    Thanked in
    Agradecido 475 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    Código:
    		sprtx= PA_GetSpriteX(1,0);
    //Sacas el sprite, bien
    
    		
    		if (sprtx > movx)
    		{
    		   if (sprtx != movx)
    //si es mayor siempre será distinto, esto sobra
    		   {
    				do
    				{
    				   sprtx-=3;
    //repintado?
    			         } while (sprtx == movx);
    //hacer mientras sean iguales? no hemos dicho que son distintos?
    	            }	
    		}
    		else
    		{
    			if (sprtx != movx)
    			{
    				do
    				{
    					sprtx+=3;
    //repintado?
    				} while (sprtx == movx);
    //hacer mientras sean iguales? no hemos dicho que son distintos?
    			}				
    		}
                     PA_SetSpriteXY(1,0,sprtx, movy);

    Código:
    		sprtx= PA_GetSpriteX(1,0);
    		
    		if (sprtx > movx)
    		{
    				do
    				{
    if ((sprtx-movx) < 3) then sprtx-=(sprtx-movx);
    else{
    				   sprtx-=3;
    }
    //PINTADO
    
    			         } while (sprtx != movx);
    	            }	
    		}
    		else
    		{
    				do
    				{
    if ((movx-sprtx) < 3) then sprtx+=(movx-sprtx);
    else{
    				   sprtx+=3;
    }
    //PINTADO
    			         } while (sprtx != movx);
    	            }	
    		}
                     PA_SetSpriteXY(1,0,sprtx, movy);
    Ahi tienes, puede que me haya equivocado con los movx-sprtx y estén cambiados en cada caso.

  5. #5

    Fecha de ingreso
    Jun 2005
    Ubicación
    Ourense
    Mensajes
    4,315
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    281
    Agradecer Thanks Received 
    225
    Thanked in
    Agradecido 130 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    joe, no me entero de una mierda xDDDDD

  6. #6

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,707
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    233
    Agradecer Thanks Received 
    763
    Thanked in
    Agradecido 475 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    Mira, un buen punto de comienzo es ésto: http://www.mailxmail.com/curso/infor...capitulo18.htm

    Y pensar si tu código cumple con:

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •