Jump to content

Recommended Posts

Posted

😕

em 1 noite e uma manha acabei este jogo!

meu recorde.

isso prova que estou a evuluir...

quero que vejam meu video logo depois descarreguem meu jogo no 4 shared onde estará indicado em baixo do video...

o jogo chamasse: brick que o objetivo é derrobar tijolos...

aumentei minhas capacidades em movimentar um objeto em uma determinada direçao e muitas outras capacidades!

mandem comentarios e criticas(bugs,melhorias...)

obrigado 😁

link do video: http://www.youtube.com/watch?v=kC17hqZ5wQs&context=C4f83188ADvjVQa1PpcFM6_LL7rsPZ_Ax7mlQnCJgypv5nQVrKAb8=

Posted

Um clone do arkanoid.

Tem bom aspecto sem dúvida. Kudos para o teu ambiente de produção: windows xp + dev-c++!

Porque não um jogo novo inventado por ti? Já vimos tantas vezes os mesmo jogos a serem implementados. Quem sabe se não se torna num clássico.

Posted

Repito o que o HappyHippyHippo disse, tens que organizar mais o codigo, utilizar OOP(Programacao orientada a objectos) e talvez criar uma framework(ou motor de jogo) para ajudar em projectos futuros.

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."

Posted

Podias ter gasto mais meia horita a meter um off no video. É que quando acabas de sublinhar uma linha já eu estou a acabar de ler o texto que apresentas no bloco de notas 😕

E, também me parece que o teu código podia ser melhor. Linhas tão grandes e tão parecidas estão mesmo a berrar para serem convertidas numa abordagem mais bonitinha.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Repito o que o HappyHippyHippo disse, tens que organizar mais o codigo, utilizar OOP(Programacao orientada a objectos) e talvez criar uma framework(ou motor de jogo) para ajudar em projectos futuros.

eu não sei trabalhar com classes...

o que é um framework e o que queres dizer com motor de jogo???

Posted

Podias ter gasto mais meia horita a meter um off no video. É que quando acabas de sublinhar uma linha já eu estou a acabar de ler o texto que apresentas no bloco de notas 😉

E, também me parece que o teu código podia ser melhor. Linhas tão grandes e tão parecidas estão mesmo a berrar para serem convertidas numa abordagem mais bonitinha.

desculpa lá isso da lentidão...

é que o meu gravador ás vezes appressa o video, por isso eu fasso muito lento porquqe tenho medo que o gravador mostre isso demasiado depressa e ninguem conssiga ler!

mas da-me um exemplo de linhas bonitas 😕

Posted

eu não sei trabalhar com classes...

o que é um framework e o que queres dizer com motor de jogo???

Umas das grandes vantagens(ou nao 😉) de C++ face ao C, e' programação orientada a objectos, herança de classes etc.

http://pt.wikipedia.org/wiki/Framework

http://pt.wikipedia.org/wiki/Motor_de_jogo

mas da-me um exemplo de linhas bonitas 😕

Linhas "bonitas" sao linhas pequenas, faceis de perceber por exemplo o codigo para criar uma window em Windows API e':

//1a window
if ((hwnd = CreateWindowEx(dwExStyle,
		window->GetClassAppName(),
		window->GetTitleName(),
		dwStyle |							// Defined Window Style
		WS_CLIPSIBLINGS |					// Required Window Style
		WS_CLIPCHILDREN,					// Required Window Style
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		WindowRect.right-WindowRect.left,	// Calculate Window Width
		WindowRect.bottom-WindowRect.top,	// Calculate Window Height
		NULL,
		NULL,
		this->m_hInstance,
		this)) == false) 
{
	OUTPUTDEBUGTEXT("Error creating window!\n");
	return 0;
}

//2a window
if ((hwnd = CreateWindowEx(dwExStyle,window->GetClassAppName(),window->GetTitleName(),dwStyle | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,CW_USEDEFAULT,CW_USEDEFAULT,WindowRect.right-WindowRect.left,WindowRect.bottom-WindowRect.top,NULL,NULL,this->m_hInstance,this)) == false) 
{
OUTPUTDEBUGTEXT("Error creating window!\n");
return 0;
}

Qual dos 2 preferes? A 1a ou a 2a?

PS: O codigo e' exactamente igual, tirando a identacao. O que quero e' que me digas qual e' que achas mais "bonito" e mais pratico de ler

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."

Posted

Quando estás a mostrar o código há lá 5 linhas que começam com:

if (quadrados[quadradosvezx][quadradosvezy] == N) ...

As linhas em si são todas iguais, excepto o N que é um valor de 1 a 5, e os valores de 3 argumentos no final. Fazer copy-paste e alterar é fácil, mas parece-me melhor se espetares os argumentos num array bidimensional e fazeres uma chamada a um método com o valor N utilizado na comparação e extrair os valores do array, havendo apenas uma chamada em código.

Repara também que, como estás a utilizar apenas ifs nesse conjunto de linhas, mesmo que já se saiba que nessa posição está um 1, o computador vai verificar se lá está um 2, e depois se lá está um 3, e depois se lá está um 4 e, finalmente... se lá está um 5. Nesses casos e que o valor não vai alterar e não é suposto continuares a fazer comparações, mais vale utilizar else ifs.

De qualquer forma, na minha primeira sugestão, podes colocar o código de apenas uma linha, sem necessidade do if. Mas para ficar ainda mais bonito, e para evitares o impacto de estares a chamar uma função para chamar mais funções, podes colocar isso numa inline function, a que dás um nome mais sugestivo como "desenhaBloco(int i)" que se torna mais simples de ler e não tem impacto nenhum na velocidade do teu código.

Não vi mais, porque estar a ler o código num video é bastante chato. Mas é uma coisa que se repara rapidamente quando se está a ver o video porque é a ocasião em que fazes um scroll na horizontal. Penso que deves imaginar um scroll horizontal como uma má prática de programação 😕

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Repito o que o HappyHippyHippo disse, tens que organizar mais o codigo, utilizar OOP(Programacao orientada a objectos) e talvez criar uma framework(ou motor de jogo) para ajudar em projectos futuros.

Eu concordo com a maior parte das sugestões. Mas esta de OOP 'ser melhor' é que me deixa sempre tipo facepalm.

OOP é um paradigma, como tal, por definição, não pode 'ser melhor'. Quando muito pode ser mais adequado a algumas situações, mas nesse caso há que apurar quais. E mais importante, em que medida é que é mais adequado que outro paradigma.

Posted

Eu concordo com a maior parte das sugestões. Mas esta de OOP 'ser melhor' é que me deixa sempre tipo facepalm.

OOP é um paradigma, como tal, por definição, não pode 'ser melhor'. Quando muito pode ser mais adequado a algumas situações, mas nesse caso há que apurar quais. E mais importante, em que medida é que é mais adequado que outro paradigma.

Umas das grandes vantagens(ou nao 😕 ) de C++ face ao C, e' programação orientada a objectos, herança de classes etc.

Se ignorar-mos o OOP, heranca de classes, templates, etc. O codigo sera muito parecido com o C, e penso que cada linguagem tenha uma forma para programar.

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."

Posted

Se ignorar-mos o OOP, heranca de classes, templates, etc. O codigo sera muito parecido com o C, e penso que cada linguagem tenha uma forma para programar.

Sim, a grande diferença entre C++ e C é que a primeira tem suporte para programação orientada a objectos por via da sua implementação de classes. Se tirarmos essa parte do C++, ficamos praticamente com C, há apenas umas diferenças aqui e ali.

É válida a pergunta: para quê usar C++ se não se está a usar programação orientada a objectos?

Talvez o código dele até compila como C. Ou talvez ele precise de usar uma biblioteca ou ferramenta que só tena suporte para C++. Mas parece que a principal razão foi: o seuqram não se preocupou com isso, pegou no seu ide, escreveu um programa e compilou co o compilador que estava a jeito. Para mim é razão que chegue.

Seuqram, continua a hackar uns jogos, a melhor maneira de aprender é praticar. Quando achares que o teu método não é produtivo  que chegue, começas a aprender tecnicas mais avançadas por necessidade.

Um conselho:

Publica alguns jogos como open source.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.