Y ahora estoy a tope con C++.
Si pretendes dominar C++, más vale que le dediques varios añitos... no es algo que se pueda controlar al 100% con un par de añitos de experiencia
Una funcion run() llama a Act(), Paint() y run() (si se llama a sí misma). Esta ultima pasados 0.017s.
Eso se llama recursividad... si intentas hacer eso en un juego programado en código nativo, el juego va a morir en un par de segundos porque te has quedado sin pila. Lo más normal es que la función "run" tenga un bucle que ejecute "Act()", "Paint()", y añada una pausa del tiempo que sea necesario... sin recursividad.
Busco hacer juegos a base de puro codigo. Nada de usar motores externos que despues dan errores que no tienen nada que ver con mi codigo. (Eso mismo me paso con Blender y por eso lo dejé de lado.)
Para diseñar ese juego vas a hacer uso de la librería estándar... que aunque funciona estupendamente no está exenta de algún que otro bug.
Además también te vas a tener que apoyar en el sistema operativo... que también suelen ser famosos por tener bugs.
Moraleja: No tengas tanto miedo a usar librerías externas. Una cosa es que quieras aprender y por eso decides reinventar la rueda, pero a la hora de la verdad hay que ser práctico.
Lo que quiero saber es: ¿Hay algo como el run() que acabo de explicar? ¿Se puede hacer en C++ que una funcion se llame a sí misma al cabo de X segundos o milisegundos sin que en ningún momento el programa quede como "no responde"? ¿Como lo hago exactamente? (se coger las teclas pulsadas y el ratón con OpenGL [mas o menos...])
* En C++ no hay nada expecífico como el run() que acabas de comentar
* En C++ se puede programar la recursividad sin ningún problema... eso si, si no le pones límite, tu programa no saldrá bien parado
* Ejemplo de recursividad:
void func( )
{
printf( "1" );
func( ); // Se llama a sí misma
}
int main( )
{
func( );
}
(lo ideal como respuesta es: sentencia(parametros), forma de uso de la sentencia, librería necesaria para usarla y tipos de los parametros [int, double, char, string, boolean, matriz, tupla].)
Esta información podría ser útil si utilizases una librería externa para el motor gráfico, como no es así te lo tienes que currar todo tu.
- Utilizo Codeblocks 13.12.
El IDE que uses no es relevante. Eso únicamente te afecta a tí, asi que lo mejor es elegir uno con el que te sientas cómodo.
- Estoy enfocado a usar OpenGL. (Por cabezonería. No pienso en hacer juegos DirectX.)
Pues fíjate que DirectX obtiene mejores rendimientos y es más portable (dentro de las diferentes versiones de Windows y de tarjetas gráficas) que OpenGL, aun así tienes tus motivos y es una opción perfectamente válida.
PD.: no me apetece iniciar un debate sobre qué es mejor OpenGL o DirectX.
En Resumen. En C++ puedes hacer lo que te propongas, pero al ser un lenguaje de más bajo nivel que javascript, vas a tener que estar más atento a lo que haces... aquí no hay barreras y es muy fácil salirse del camino... eso sí, la satisfacción de hacer un programa completo compensa
Un saludo.