CrynB Posted August 5, 2013 at 08:09 PM Report #520907 Posted August 5, 2013 at 08:09 PM Boas pessoal, sou novo neste forum, por isso peço desculpa se a minha dúvida já foi questionada e/ou resolvida. Já procurei bastante mas não encontrei. Por isso pedia uma ajuda, gostava de fazer a "interface gráfica" de um pequeno jogo como por exemplo, o slide puzzle. Como podem ver um exemplo nesta foto. Alguém me sabe e/ou consegue ajudar? Desde já obrigado,
nelsonr Posted August 5, 2013 at 08:52 PM Report #520911 Posted August 5, 2013 at 08:52 PM Boas CrynB, provavelmente tens várias hipoteses, mas convêm especificares quais os limites. Queres usar uma biblioteca gráfica? Tem de ser multiplataforma? Eu normalmente uso o SFML (http://www.sfml-dev.org/)
CrynB Posted August 5, 2013 at 09:39 PM Author Report #520915 Posted August 5, 2013 at 09:39 PM boas nelsonr, agradeço por me responderes. Eu sou um pouco novato ainda, mas eu para programar c++ uso o Microsoft Visual Studio 2012 e/ou Eclipse. "Queres usar uma biblioteca gráfica? Tem de ser multiplataforma?" A estas questões não te sei responder, mas eu gostava de fazer como a print que mostrei no eclipse por exemplo, um video ou tutorial iria ajudar bastante 😄 também já procurei na net, mas ainda não consegui encontrar nada, por isso recorri a este fórum. Muito obrigado, se mais alguém me pudesse ajudar, ficaria agradecido.
nelsonr Posted August 5, 2013 at 10:00 PM Report #520916 Posted August 5, 2013 at 10:00 PM Podes dar uma vista de olhos no SFML como tinha dito. Exemplo de como abrir uma janela gráfica: http://www.sfml-dev.org/tutorials/2.0/graphics-draw.php Desenhar formas http://www.sfml-dev.org/tutorials/2.0/graphics-shape.php Verificar periféricos http://www.sfml-dev.org/tutorials/2.0/window-inputs.php Também tens por exemplo o SDL (http://www.libsdl.org/) e o Allegro (http://alleg.sourceforge.net/) 1 Report
CrynB Posted August 6, 2013 at 08:55 PM Author Report #521021 Posted August 6, 2013 at 08:55 PM (edited) Mais uma vez, obrigado nelson. Eu ainda não consegui perceber muito bem, por isso queria pedir que me ajudassem num exemplo prática. Neste simples "jogo", alguém me consegue ajudar, ou seja, alguém consegue fazer o que pretendo e que não se importe de partilhar? #include <iostream> #include <stdlib.h> //para poderem usar o rand() #include <windows.h> //para poderem usar o GetTickCount() using namespace std; /* VARIÁVEIS GLOBAIS Estas variáveis podem ser usadas por todas as funções do programa! */ int escolha; //as escolhas do utilizador int numero; //o numero para adivinhar int ContadorTentativa; //conta o numero de tentativas int numeroTentativa; //numero disponivel de tentativas bool done = false; void Dica(int escolha); //mostra uma dica void Menu(); //menu do jogo void inGame(); //dentro do jogo void novoJogo(); //cria novo jogo void Ganhou(); //mensagem mostrada a quem ganhou void Perdeu(); //... a quem perdeu int getRandom(int de, int ate) //gera numeros aleatorios { int random; ate -= de; random = rand() % (ate + 1) + de; return random; } int main() { srand(GetTickCount()); cout << "Bem-Vindo ao JOGO ADIVINHA O NUMERO - VERSAO 2" << endl; cout << "Por Joao Portela a.k.a. Agnor" << endl; while(!done) { Menu(); } cin.get(); return 0; //ja viram que main pequeno? } void Menu() { cout << "\nO que pretende fazer?" << endl; cout << "\n1 - Novo jogo" << endl; cout << "2 - Sair" << endl; cin >> escolha; switch(escolha) { case 1: novoJogo(); break; case 2: done = true; //acaba o loop do while break; default: cout << "\nErro...Tecla errada" << endl; Menu(); //volta ao menu break; } } void novoJogo() { ContadorTentativa = 0; cout << "\nEscolha o nivel de dificuldade:" << endl; cout << "1 - 1 a 10" << endl; cout << "2 - 1 a 20" << endl; cout << "3 - 1 a 30" << endl; cout << "4 - 1 a 40" << endl; cout << "E por ai a diante " << endl; cin >> escolha; if (escolha <= 0) { cout << "\nErro, numero menor ou igual a 0...\nIniciando com nivel 1" << endl; escolha = 1; } cout << "\nEscolheu de 1 a " << escolha * 10 << endl; numeroTentativa = escolha + 1; numero = getRandom(1, 10*escolha); inGame(); } void inGame() { if ((numeroTentativa - ContadorTentativa) > 0) { cout << "\nNumero de tentativas restantes: " << numeroTentativa - ContadorTentativa << endl; cout << "Insira um numero: "; cin >> escolha; ContadorTentativa++; if (escolha == numero) { Ganhou(); } else { Dica(escolha); } } else { Perdeu(); } } void Ganhou() { cout << "\nParabens, Ganhou!!!" << endl; } void Perdeu() { cout << "\nPode ser que tenhas mais sorte para a proxima... perdeste..." << endl; } void Dica(int escolha) { if (escolha < numero) cout << "\nTem que apostar mais para cima" << endl; else cout << "\nTem que apostar mais para baixo" << endl; inGame(); } Mais uma vez, muito obrigado. Edited August 7, 2013 at 10:44 AM by Baderous geshi
nelsonr Posted August 6, 2013 at 08:59 PM Report #521023 Posted August 6, 2013 at 08:59 PM Passar de modo texto para grafico não é algo que se possa fazer assim num exemplo simples. Em modo gráfico (e pelo exemplo), tens de ter botões a funcionar, texturas, etc
pikax Posted August 7, 2013 at 08:31 AM Report #521054 Posted August 7, 2013 at 08:31 AM da' uma vista de olhos aqui http://lazyfoo.net/SDL_tutorials/index.php Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
CrynB Posted August 7, 2013 at 12:31 PM Author Report #521071 Posted August 7, 2013 at 12:31 PM Muito obrigado a todos. Eu irei continuar a minhas pesquisas e vou ver o que vocês sugeriram. Quero mesmo conseguir fazer algo parecido aquela print xD
Hubsch Posted August 21, 2013 at 09:51 PM Report #522342 Posted August 21, 2013 at 09:51 PM O autor dessa aplicaçao usou "allegro" se nao me engano.
Nothing Forest Posted August 29, 2013 at 05:59 PM Report #522915 Posted August 29, 2013 at 05:59 PM Eu também te recomendo SFML, fiz um jogo e achei a biblioteca bastante flexível .. Podes sempre ver os tutoriais do CodingMadeEasy.
CrynB Posted September 1, 2013 at 08:58 PM Author Report #523141 Posted September 1, 2013 at 08:58 PM Obrigado pessoal, eu ainda estou a estudar esta parte 😉
eatg75 Posted September 15, 2013 at 10:30 PM Report #524660 Posted September 15, 2013 at 10:30 PM @CrynB aconselho-te a dares uma vista de olhos no Clanlib SDK, que e um SDK de densolvimento de aplicacoes graficas : como jogos, simulacoes, etc... alem de ser multiplataforma existem bastante exemplos de como utilizar o SDK. Em relacao a tua primeira questao em como desenhar o menu de um jogo parecido com a da fotografia o processo resume-se em desenhar a imagem de fundo e desenhar a imagem de cada entrada do menu em uma determinada posicao, depois obtendo o retangulo de cada imagem, a seguir obter o comprimento do texto utilizando a fonte num determinado tamanho e desenha-lo centrado no retangulo, o processo resume-se a algo como isto. Victarion seized the dusky woman by the wrist and pulled her to him. Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see. Moqorro's dark eyes seemed to shine. Moqorro - I see dragons.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now