[C++ Game][Aporte] Física gravedad y salto.

Iniciado por anonimo12121, 12 Mayo 2012, 17:32 PM

0 Miembros y 1 Visitante están viendo este tema.

anonimo12121

Bueno os pongo mi código de física para juegos de gravedad y salto.
Recordad que un objeto cae a 9,81 m/s  en la tierra por su gravedad. hecho un sistema parecido cambiado un poco la realidad XD

Y el sistema de salto lo he hecho parecido pero invertido.
VIDEO: HD

[youtube=425,350]http://www.youtube.com/watch?v=vIc5_asdCfQ[/youtube]
fisica.hpp
Código (cpp) [Seleccionar]
#ifndef _FISICAHPP_
#define _FISICAHPP_
using namespace std;
#include "fisica.hpp"
class Gravedad {
   private:
       float Intensidad;
       float Fuerza;
       float Tiempo;
   public:
       Gravedad();
       bool State(float fps);
       float GetFuerza();
       void Reset();
};

class Salto {
   private:
       float Intensidad;
       float Fuerza;
       float Tiempo;
   public:
       Salto();
       bool State(float fps);
       float GetFuerza();
       void Reset();
};
#endif]


fisica.cpp
Código (cpp) [Seleccionar]
#include "fisica.hpp"
Gravedad::Gravedad(){
   Intensidad=2.98;
   Fuerza=2.98;
}
bool Gravedad::State(float fps){
   Tiempo = Tiempo+(1000/fps);
   if(Tiempo>100){
       Tiempo=0;
       Fuerza=Fuerza+Intensidad;
       return true;
   }
   return false;
}
float Gravedad::GetFuerza(){
   return Fuerza;
}
void Gravedad::Reset(){
   Fuerza=0;
}



Salto::Salto(){
   Intensidad=2.98;
   Fuerza=12;
}
bool Salto::State(float fps){
   Tiempo = Tiempo+(1000/fps);
   if(Tiempo>100){
       Tiempo=0;
       Fuerza=Fuerza-Intensidad;
       if(Fuerza<0)Fuerza=0;
       return true;
   }
   return false;
}
float Salto::GetFuerza(){
   return Fuerza;
}
void Salto::Reset(){
   Fuerza=12;
}
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

david_BS

Buena, pero acordate que en los juegos online, hay una diferencia entre las frames (FPS) del cliente con las del server, es decir, para juegos como el Counter-Strike 1.5/1.6 por ejemplo, no sería un cálculo muy preciso si hacés algo que depende del servidor.

Esto lo digo si estás usando un hack para un juego online, pero si se trata de algo que sirve sólo del lado cliente está muy bien que uses las frames del cliente.

anonimo12121

Cuando haga modos online, haré una aplicación que sera servidor y el servidor hará todo solo mandara información al cliente. El cliente solo mandará información al servidor del tipo de tecla que se ha pulsado y esas cosas. Creo que se debe hacer así si me das más información lo agradecería.

Gracias por comentar. :)
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

david_BS

Cita de: Dr.Hacker++ en 12 Mayo 2012, 20:09 PM
Cuando haga modos online, haré una aplicación que sera servidor y el servidor hará todo solo mandara información al cliente. El cliente solo mandará información al servidor del tipo de tecla que se ha pulsado y esas cosas. Creo que se debe hacer así si me das más información lo agradecería.

Gracias por comentar. :)

claro, el servidor es el que maneja el juego y valida los datos y los envía al cliente para que el cliente pueda continuar el juego. El cliente presiona una tecla pero envía al server ese evento y el servidor determina que va a hacerse, cuando ya ha evaluado la situación envía los resultados al cliente para que el cliente pueda realizar esas acciones. Es obvio que en esta comunicación hay una diferencia de tiempo por lo que debes usar predicción+interpolación para compensar los datos de la predicción por un lado o los datos que se pierdan durante la comunicación (paquetes perdidos por problemas de conexión).

te recomiendo que veas algún motor gráfico o una sdk de algún juego moderno (no me refiero a un juego nuevo sino a un motor más o menos moderno), por ejemplo quake3 o Counter-Strike Source , para notar como se maneja todo esto que te había comentado







anonimo12121

Gracias. El link a la wiki muy original ehh!! xD, me podrías decir donde mirar lo del counter? Saludos.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746


anonimo12121

No es que este todavía interesado pero me gusta almacenar info :)
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746