Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2003
Antigol Antigol is offline
Miembro
 
Registrado: dic 2003
Ubicación: Argentina
Posts: 14
Poder: 0
Antigol Va por buen camino
Algoritmo de movimiento

Bueno tal como me recomendaron, abro esta nueva discusión para hacer una pregunta:

Estoy programando un juego de fútbol que estaba haciendo en VB pero preferí hacerlo en Delphi ahora.

Yo necesito lo siguiente:

Tengo un control TImage, que se encuentra en por ejemplo las coordenadas left= 500 y top= 1000.

SUpongamos que yo quiero que el objeto se mueva hasta el punto left= 1300 y top= 1200 pero obviamente que se mueva despacio punto por punto pq la persona tiene que verlo.

Yo hice un algoritmo que lo que hace es devolverme de cuanto en cuanto tiene que moverse la TImage para llegar al punto 1300,1200.

Por ejemplo el numero que me tira el algoritmo es: 3 y 6 entonces la TImage se moveria 3 de left y 6 de top asi hasta llegar al punto 1300,1200, de esa manera se ve como el TImage se va moviendo.

Sería asi por ej

imagen.top=1000 +resultado_algoritmo_y (en este caso 3)
imagen.left=500 + resultado_algoritmo_x (en este caso 6)

La cuestión es que yo quiero darle una velocidad que yo quiera por ejemplo en vez de moverse de a 3 y 6, quiero que el número máximo sea 1 por lo que se movería de 1 y 0.5. (ya que 0.5 es la mitad de 1 lo mismo que 3 de 6). Entonces la velocidad se la daría multiplicando el 1 y el 0.5 por 5 por ejemplo (la pelota se moveria a una velocidad "virtual" de 5 pero punto por punto sería de left 5 y de top 2.5)

Por lo tanto sería, antes de la multipliacion por 5

imagen.top=1000 +resultado_algoritmo_y (en este caso 0.5)
imagen.left=500 + resultado_algoritmo_x (en este caso 1)

Y después de la multipliacion por 5

imagen.top=1000 +resultado_algoritmo_y (en este caso 2.5)
imagen.left=500 + resultado_algoritmo_x (en este caso 5)

Hasta ahi vamos bien, el problema surge que ese algoritmo me devuelve siempre 1 (que es lo que quiero) y otro número que obviamente es menor que 1 y es con decimales y las propiedades top y left no aceptan decimales.

En visual basic lo hacía sin problemas pq no me jodia conque no podia mezclar real con integer pero acá en delphi no se como hacer.

Imagino que esta restricción no tendrá algun "truco" para salvarla por lo que seguramente tengo que hacer un algoritmo que me permita buscar otro camino.

Bueno espero haberme explicado bien adios!

Última edición por Antigol fecha: 08-12-2003 a las 05:11:06.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:35:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi