C++ boucle de jeu exemple
Quelqu'un peut-il écrire une source d'un programme qui a juste une "boucle de jeu", qui ne cesse de boucle jusqu'à ce que vous appuyez sur la touche Echap, et le programme affiche une image de fond. Heres la source, que j'ai droit maintenant, mais j'ai utiliser SDL_Delay(2000);
de garder le programme en vie pendant 2 secondes, pendant laquelle le programme est gelé.
#include "SDL.h"
int main(int argc, char* args[]) {
SDL_Surface* hello = NULL;
SDL_Surface* screen = NULL;
SDL_Init(SDL_INIT_EVERYTHING);
screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
hello = SDL_LoadBMP("hello.bmp");
SDL_BlitSurface(hello, NULL, screen, NULL);
SDL_Flip(screen);
SDL_Delay(2000);
SDL_FreeSurface(hello);
SDL_Quit();
return 0;
}
Je veux juste que le programme sera ouvert jusqu'à ce que j'appuie sur la touche Echap. Je sais comment la boucle fonctionne, je ne sais pas si j'en œuvre à l'intérieur de la main()
fonction, ou à l'extérieur. J'ai essayé les deux, et les deux fois il a échoué. Si vous pouviez m'aider, ce serait super 😛
Spécifiez impossible, s'il vous plaît.
Avez-vous déjà essayé un moteur de recherche? Il y a des milliers de tutoriels en ligne couvrant exactement ce dont vous avez besoin.
Suivre ce tutoriel pour apprendre la SDL en C++: lazyfoo.net/SDL_tutorials/index.php
Je déteste quand les gens disent: "avez-vous essayé de chercher?". Vraiment, il n'y a pas de but à une réponse comme ça.
OriginalL'auteur David | 2010-06-12
Vous devez vous connecter pour publier un commentaire.
Essayé avec quelque chose comme
? Vous pouvez trouver de nombreux tutoriels et un exemple, juste un recherche rapide exemple.
Ajout de la note: WaitEvent "gèle" le programme de sorte que vous ne pouvez pas faire n'importe quoi .. vous attendez; d'autres attendent la technique peut être désiré (comme PollEvent, ou WaitEvent de nouveau après la initializtion d'un timer).
il le fait, si votre "jeu", la première n'est pas réellement un jeu, alors il n'a pas besoin d'exactement une "boucle de jeu", car il n'a rien à être mis à jour dans l'intervalle, et vous (l'OP) sont demander juste pour "montrer une image jusqu'à ce que vous appuyez sur un bouton", ce qui était mon interprétation de l'OP question. Pour ne pas mentionner que d'un événement pour que la boucle peut être déclenché par minuterie - cité dans la réponse elle-même.
OriginalL'auteur ShinTakezou
Ici est un exemple de travail. Au lieu d'utiliser une trame de la réglementation du temps, vous pouvez également utiliser SDL_WaitEvent.
Quel est le problème avec le fait d'être CPU intensive? Si j'achète un CPU, je veux le jeu de l'utiliser. Si il était assis à 100% d'utilisation, je serais en pensée sur l'achat d'une plus rapide, afin de ne pas goulot d'étranglement de la GPU.
OriginalL'auteur dmarth
Puisque vous êtes déjà à l'aide de SDL, vous pouvez utiliser le
SDL_PollEvent
la fonction pour exécuter une boucle d'événement, vérifier pour voir si la clé de la conférence de presse a été ESC. Regarde comme ce serait le long des lignes demySDL_Event.key.keysym.sym == SDLK_ESCAPE
.OriginalL'auteur Marc Bollinger
Ouais il n'est pas conçue comme un copier-coller la réponse, mais c'est un moyen rapide d'obtenir ce que l'OP voulait. 3, 4, et 5 sont faciles à satisfaire et à développer.
Qu'est-ce que kbhit défini comme ici?
Si vous vous posez la mauvaise question, vous obtenez une mauvaise réponse, cela a répondu à la question. Détesterais voir l'utilisation de la RAM si vous êtes allé pour une tasse de thé.
OriginalL'auteur Inverse