elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...  (Leído 3,189 veces)
SilentBolt

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...
« en: 8 Agosto 2017, 04:18 am »

Hola!!!, soy yo otra vez xD... bueno estuve haciendo un programa en el cual aparecen varios asteriscos que se deben mover al mismo tiempo pero, no estoy del todo seguro de como hacer que estas dos funciones se ejecuten al mismo tiempo, investigue y consegui unos comandos los cuales se usan con la libreria windows.h usando hilos pero quisiera saber si alguno de ustedes me puede dar otras alternativas, porque nunca he utilizado la libreria windows.h  :(, porque sino tendre que aprender a usarlo autodidacto.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...
« Respuesta #1 en: 8 Agosto 2017, 11:27 am »

Explica lo de los asteriscos que se mueven al mismo tiempo.

Probablemente no necesites hilos para eso. Ten en cuenta que el procesador es mucho más rápido que la vista humana, con lo cual mover un asterisco y luego mover el otro es lo mismo que hacerlo "al mismo tiempo".


En línea

SilentBolt

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...
« Respuesta #2 en: 9 Agosto 2017, 03:11 am »

en realidad, lo que quiero hacer es una clase de juego de guerra xD, pero de asteriscos, y que cada vez que presionas una tecla el asterisco aparezca y empieze a moverse a la izquierda, como si fuera una tropa, ahora viene mi problema necesito hacer una funcion que haga el movimiento del asterisco (sin parar) y otra que reciba por tecla la accion del usuario (donde aparecera el asterisco)
En línea

0and6

Desconectado Desconectado

Mensajes: 49


Ver Perfil
Re: Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...
« Respuesta #3 en: 9 Agosto 2017, 06:29 am »

ok, ok quires hacer un juego, la libreria windows.h generalmente la utilizan para crear funciones que pinten los caracteres en una consola, borrarlos, detectar el teclado, no se si tambien el sonido, etc, etc.

un juego sencillo solo es un bucle infinito, dentro de el se ejecutan funciones que las podriamos reducir en leer teclado, actualizar movimientos, dibujar nuevas posiciones; estas funciones se ejecutan una detras de la otra y el ciclo se repite, para que se logre un efecto de que las balas/tanques estan en movimiento un juego lo que hace es dibujar alrededor de 30/60 veces por segundo, y esto nos da una sensacion de movimiento

Tu no necesitas hilos, aunque los puedes implementas, solo necesitas crear un bucle que se ejecute unas 30 veces por segundo y dentro de ese bucle lees el teclado y dibujas.
En línea

SilentBolt

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...
« Respuesta #4 en: 9 Agosto 2017, 22:12 pm »

Tal como dices, uso un bucle que imprime infinitamente los movimientos en pantalla, lo que sucede es que yo quiero que el asterisco se mueva continuamente, pero cada vez que avanza, este se detiene a causa de que el programa esta esperando por teclado la accion del usuario, lo que quiero es que el asterisco se mueva continuamente y a la vez el el programa espere la accion del jugador (donde enviara el siguiente asterisco), no se si me explico.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Realizar dos operaciones al mismo tiempo en un mismo programa ayuda...
« Respuesta #5 en: 9 Agosto 2017, 22:28 pm »

La verdad, yo en tu caso me plantearía empezar a utilizar una librería para gráficos (como SFML, por ejemplo), y hacer el juego con gráficos.
Una consola, al fin y al cabo, es una consola. Es dar vuetas de más.


En cualquier caso, si sigues con esto:

- ¿Utilizas C o C++? Si utilizas C++, la librería estandar tiene threads a partir de C++11 (un estandar relativamente antiguo, asi que probablementelo tengas). Su include es <thread> y la clase se llama "thread", y son muy sencillos e usar.

- Sin threads de C++, puedes usar los de windows. Son algo más "complejos", pero bueno, bien englobado todo en funciones, todo se hace sencillo.

- Otra opción es, con 1 solo thread, dibujar y ver si hay teclas pulsadas. Para esto, sin bloquear la aplicación leyendo la entrada del usuario, puedes usar la función de la WinAPI "GetAsyncKeyState", que te dice si una tecla está pulsada o no.

Vistas estas alternativas, ¿cuál elegirías?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines