Ir ao conteúdo
  • Cadastre-se

Colocando tempo em um jogo


RRafa

Posts recomendados

Ola pessoal

eu sou novato na parte de programação, eu tenho um trabalho para fazer, em C++, que é um jogo, conhecido popularmente como Akanoide, e um dos desafio que eu não estou conseguindo fazer é imprimir o tempo na tela ao mesmo tempo que o jogo roda.

O que eu tenho que fazer é o seguinte, quando der 20minutos de jogo, e n terminar o jogo, fim de jogo, so que o tempo eu consegui fazer mas quando coloco esse arquivo no jogo o tempo vai passando, mas o jogo para porque o tempo vai rodando.

queria saber se alguem tem alguma dica para esse meu codigo funcionar o jogo e o tempo ao mesmo tempo sem travar o jogo ou o tempo.

brigado

codigo do tempo:


#include <stdio.h>
#include <time.h>
#include <conio2.h>

void aguarda (int segundos) {
clock_t final_espera;
final_espera = clock () + segundos * CLOCKS_PER_SEC ;
while (clock() < final_espera) {}
}

void tempo () {
int a =0,b=0,c=0;
printf ("... Iniciando a Contagem ...\n");

while(a != 2){
b=0;
while(b <= 9){
c=0;
while(c != 6){
int n = 0;
while (n <= 9) {
gotoxy(1,5);
printf ("%d",a);
gotoxy(2,5);
printf ("%d",;
gotoxy(3,5);
printf (":");
gotoxy(4,5);
printf ("%d",c);
gotoxy(5,5);
printf ("%d",n++);
aguarda (1);
}
c++;
}
b++;
}
a++;
}
}

Link para o comentário
Compartilhar em outros sites

Para poder jogar e ter o tempo na tela sem um interferir no outro, precisará rodar de modo paralelo, para o seu caso seria usando threads, mas isso é um nível mais avançado.

Caso contrário, terá de atualizar o tempo a cada término de iteração do usuário com o sistema, ou seja, registra o tempo quando o jogo começa e quando o usuário iteragir, atualiza o tempo.

De qualquer forma, se lhe interessar, segue o link em como criar thread no windows:

http://msdn.microsoft.com/en-us/library/ms682516%28v=VS.85%29.aspx

Link para o comentário
Compartilhar em outros sites

Olá ScreenBlack

brigado pelo site que você me enviou, mas sinceramente, ainda ta muito avançado para mim, não consegui entender quase nada de verdade, mas vou pesquisar sobre o código do site que você me enviou, vai demorar ate conseguir, mos o importante é tentar

Agora sobre o que você falou depois, eu modifiquei ali o código no final colocando alguns breaks, por um lado ate foi com o jogo, só que assim a velocidade do jogo diminuiu, e o tempo deu erro pois não modifica os segundos.

mas brigadão pela ajuda, vou tentar aprender melhor sobre as funções e os códigos.

Link para o comentário
Compartilhar em outros sites

Fiz um exemplo bem simples, mas a ideia seria essa:


#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>

int main(void)
{
time_t tempo_final;
time_t tempo_agora;
struct tm *tempo_ext;
char *tempo_string;
int opcao;

tempo_final = time(NULL) + 1200; // 20 minutos a partir de agora

tempo_ext = localtime(&tempo_final); // Conversao para tempo local
tempo_string = malloc( sizeof(char) * strlen(asctime(tempo_ext)) ); // Aloca memoria para armazenar o tempo em formato string
strcpy(tempo_string, asctime(tempo_ext)); // Copia o tempo em formato de string
tempo_string[strlen(tempo_string)-1] = '\0'; // Remove a quebra de linha que o asctime adiciona

printf("O programa encerrara as: %s\n\n\n", tempo_string);

free(tempo_string); // Libera memoria alocada

while ( difftime(tempo_final, time(NULL)) > 0 )
{
/* Leitura da hora */
time(&tempo_agora); // Carrega conteudo para o momento atual
tempo_ext = localtime(&tempo_agora); // Conversao para tempo local

/* Conversao de tipo */
tempo_string = malloc( sizeof(char) * strlen(asctime(tempo_ext)) ); // Aloca memoria para armazenar o tempo em formato string
strcpy(tempo_string, asctime(tempo_ext)); // Copia o tempo em formato de string

tempo_string[strlen(tempo_string)-1] = '\0'; // Remove a quebra de linha que o asctime adiciona

printf("[tempo restante: %.2f][%s] Escolha um numero: ", difftime(tempo_final, time(NULL)) / 60, tempo_string );
fflush(stdin);
scanf("%d", &opcao);

free(tempo_string); // Libera memoria alocada
}

return 0;
}

Sempre que o usuário interagir, o 'while()' verá se o tempo já expirou.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!