Game Iniciante

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Game Iniciante

Mensagem por desenvolvedorr em Qua 06 Ago 2014, 16:07

Olá tudo bem?

Gostaria de uma força se possível, de uma Engine que o personagem movimentasse em 3 posições (esquerda, centro e direita) para desviar de objetos que caem nessas três posições aleatoriamente (random) e que a velocidade fosse aumentando para dificultar o desvio dos objetos, quando algum objeto colidisse com o personagem o jogo finalizava dando o score.

Desde já agradeço a atenção.

desenvolvedorr

Número de Mensagens : 4
Data de inscrição : 06/08/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por Lighter em Qua 06 Ago 2014, 16:12

Gostaria de uma força se possível, de uma Engine que o personagem movimentasse em 3 posições (esquerda, centro e direita)
Centro ou Para cima? Especifique o tipo de jogo que vc esta desenvolvendo, Top-down (visão por cima), plataforma (jogos com gravidade)...

Lighter

Ranking : Sem avaliações
Número de Mensagens : 307
Idade : 18
Data de inscrição : 16/01/2014
Reputação : 29
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://google.com

Voltar ao Topo Ir em baixo

Explicando melhor

Mensagem por desenvolvedorr em Qua 06 Ago 2014, 16:58

Lighter escreveu:Gostaria de uma força se possível, de uma Engine que o personagem movimentasse em 3 posições (esquerda, centro e direita)
Centro ou Para cima? Especifique  o tipo de jogo que vc esta desenvolvendo, Top-down (visão por cima), plataforma (jogos com gravidade)...


Prezado,
Esta é a representação do jogo que estou querendo onde:
1 - Tecla Seta para esquerda o personagem pula para esquerda desviando das pedras.
2 - Tecla Seta para direita o personagem pula para direita desviando das pedras.
3 - As pedras vão caindo, aumentam de velocidade e são randomicas para dificultar o nivel.
4 - Se o desvio for bem sucedido aumenta o score, se não finaliza mostrando o score final.

obs.: o movimento do personagem é igual o do jogo "Timberman" para celular.


desenvolvedorr

Número de Mensagens : 4
Data de inscrição : 06/08/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por Lighter em Qua 06 Ago 2014, 17:31

No timberman a movimentação do jogador é instantânea, então:

1 - Tecla Seta para esquerda o personagem pula para esquerda desviando das pedras.
2 - Tecla Seta para direita o personagem pula para direita desviando das pedras.
Step do Player
Código:
if keyboard_check_pressed(vk_right){ // se pressionar 'flecha' direita
 x+=10 // troque o 10 pela distancia que vc quer que ele 'pule'
}
if keyboard_check_pressed(vk_left){
 x-=10
}
// troque o 10 por quanto pixels vc quer que ele mova ao apertar a tecla

3 - As pedras vão caindo, aumentam de velocidade e são randomicas para dificultar o nivel.
4 - Se o desvio for bem sucedido aumenta o score, se não finaliza mostrando o score final.
Para fazer isso vamos fazer um contador de pedras para aumentar o nível, se a pedra bater no chão quer dizer que o player desvio, então aumentara a dificuldade;

Create da pedra
Código:
xx = irandom_range(0,room_width) // posição x da pedra gerara randomicamente

step da pedra
Código:
x = xx // posição da pedra será igual a posição gerada no create

if place_meeting(x,y,obj_chao){ // caso a pedra colida com o chão
 global.pontos +=1 // aumenta o pontuação
 instance_destroy()
}
vspeed := 10*pontos/10 // velocidade da pedra é diretamente proporcional a pontuação

Isso é uma base, esses códigos nem sempre são eficaz, existe formas melhores de você adapta-los esses algoritmos seu jogo.


Última edição por Lighter em Qua 06 Ago 2014, 18:35, editado 1 vez(es)

Lighter

Ranking : Sem avaliações
Número de Mensagens : 307
Idade : 18
Data de inscrição : 16/01/2014
Reputação : 29
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://google.com

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por desenvolvedorr em Qua 06 Ago 2014, 18:13

Lighter escreveu:No timberman a movimentação do jogador é instantânea, então:

1 - Tecla Seta para esquerda o personagem pula para esquerda desviando das pedras.
2 - Tecla Seta para direita o personagem pula para direita desviando das pedras.
Step do Player
Código:
if keyboard_check_pressed(vk_right){ // se pressionar 'flecha' direita
 x+=10 // troque o 10 pela distancia que vc quer que ele 'pule'
}
if keyboard_check_pressed(vk_left){
 x-=10
}
// troque o 10 por quanto pixels vc quer que ele mova ao apertar a tecla

3 - As pedras vão caindo, aumentam de velocidade e são randomicas para dificultar o nivel.
4 - Se o desvio for bem sucedido aumenta o score, se não finaliza mostrando o score final.
Para fazer isso vamos fazer um contador de pedras para aumentar o nível, se a pedra bater no chão quer dizer que o player desvio, então aumentara a dificuldade;

Create da pedra
Código:
xx = irandom_range(0,room_width) // posição x da pedra gerara randomicamente

step da pedra
Código:
x = xx // posição da pedra será igual a posição gerada no create

if place_meeting(x,y,obj_chao){ // caso a pedra colida com o chão
 global.pontos +=1 // aumenta o pontuação
 instance_destroy()
}
vspeed := 10*pontos/10 // velocidade da pedra é diretamente proporcional a pontuação

Isso é uma base, esses códigos nem sempre são eficaz, existe formas melhores de você adaptado esses algoritmos seu jogo.


OK - com a movimentação do personagem
Esta acontecendo o seguinte erro:

"
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of  Step Event0
for object obj_Arma:

Push :: Execution Error - Variable Get -1.pontos(100001, -1)
at gml_Object_obj_Arma_StepNormalEvent_1 (line 7) -     vspeed := 10*pontos/10 // velocidade da pedra é diretamente proporcional a pontuação
############################################################################################

"

Estou trabalhando com 3 objetos:
Obj_Explorador - Personagem
Obj_Arma - que são os objetos que caem
Obj_Chao - que é a base em que o personagem de movimenta

Além do erro o obj_arma não esta caindo esta parado.

desenvolvedorr

Número de Mensagens : 4
Data de inscrição : 06/08/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por Lighter em Qua 06 Ago 2014, 18:33

anonimo escreveu:OK - com a movimentação do personagem
Esta acontecendo o seguinte erro:
altera todas as variáveis pontos por 'global.pontos', e no create do obj_explorador coloque 'global.pontos = 0'

Lighter

Ranking : Sem avaliações
Número de Mensagens : 307
Idade : 18
Data de inscrição : 16/01/2014
Reputação : 29
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://google.com

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por desenvolvedorr em Qua 06 Ago 2014, 18:50

Lighter escreveu:
anonimo escreveu:OK - com a movimentação do personagem
Esta acontecendo o seguinte erro:
altera todas as variáveis pontos por 'global.pontos', e no create do obj_explorador coloque 'global.pontos = 0'


O erro sumiu beleza, agora o obj_arma não cai. Continua parado.

Mais uma vez agradeço a atenção...

desenvolvedorr

Número de Mensagens : 4
Data de inscrição : 06/08/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por Lighter em Qua 06 Ago 2014, 21:15

Altere o vspeed do obj_arma para vspeed= 5

Lighter

Ranking : Sem avaliações
Número de Mensagens : 307
Idade : 18
Data de inscrição : 16/01/2014
Reputação : 29
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://google.com

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por fabert em Qua 06 Ago 2014, 21:28

Lighter escreveu:Altere o vspeed do obj_arma para vspeed= 5

legal, fiz alguns testes.
o obj_arma depois que coloquei vspeed =5 cai uma vez e não volta a cair mais.
e tambem não está aparecendo o score na tela.

fabert

Número de Mensagens : 17
Idade : 27
Data de inscrição : 28/07/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.2britos.com.br

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por AxeInLine em Qua 06 Ago 2014, 21:50

Hunm, já estou seguindo este tópico desde a sua criação, mas só agora vou ter coragem de mostrar a minha cara...
Como já percebi, o movimento do player já está pronto, então vamos ao "score" e ao objeto que fica caindo...
Primeiro, vamos programar o obj_arma...  Antes de tudo, crie um objeto e chame-o de o que quiser, neste exemplo vou chama-lo de objCtrl, no create dele:
Código:
alarm[0]=1;//este representa o tempo em que o obj_arma vai demorar para obter mais velocidade
alarm[1]=10;//este o tempo que ele é criado, ambos os valores podem ser modificados
global.velocidade=0.5;//esta é a velocidade do obj_arma
No evento "alarm0":
Código:
global.velocidade+=0.1;
alarm[0]=1;
No "alarm1":
Código:
instance_create(irandom_range(128,room_width-128),0,obj_arma);//ou o nome do obj_arma, substitua "128" o tamanho da sprite do objeto
Agora no obj_arma, no step:
Código:
vspeed=global.velocidade;
No evento de colisão com o chão:
Código:
instance_destroy();
Agora crie outro objeto, chame-o do o que quiser, eu o chamarei de objDraw.
No evento draw dele coloque isto:
Código:
draw_text(10,10,"Pontos; "+string(global.pontos));//Os dois 10 são as posições onde o texto será desenhado.
Caso não tenha feito nada para aumentar o valor da variavel pontos, coloque no evento creat do objDraw:
Código:
alarm[0]=1;//setei o alarm[0] deste evento como 1 step
No evento Alarm0:
Código:
global.pontos+=1;
alarm[0]=1;
Coloque estes outros objetos na room e fim...
Teste agora e veja se deu certo, se der, viva feliz! Happy

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por fabert em Qua 06 Ago 2014, 22:15

AxeInLine escreveu:Hunm, já estou seguindo este tópico desde a sua criação, mas só agora vou ter coragem de mostrar a minha cara...
Como já percebi, o movimento do player já está pronto, então vamos ao "score" e ao objeto que fica caindo...
Primeiro, vamos programar o obj_arma...  Antes de tudo, crie um objeto e chame-o de o que quiser, neste exemplo vou chama-lo de objCtrl, no create dele:
Código:
alarm[0]=1;//este representa o tempo em que o obj_arma vai demorar para obter mais velocidade
alarm[1]=10;//este o tempo que ele é criado, ambos os valores podem ser modificados
global.velocidade=0.5;//esta é a velocidade do obj_arma
No evento "alarm0":
Código:
global.velocidade+=0.1;
alarm[0]=1;
No "alarm1":
Código:
instance_create(irandom_range(128,room_width-128),0,obj_arma);//ou o nome do obj_arma, substitua "128" o tamanho da sprite do objeto
Agora no obj_arma, no step:
Código:
vspeed=global.velocidade;
No evento de colisão com o chão:
Código:
instance_destroy();
Agora crie outro objeto, chame-o do o que quiser, eu o chamarei de objDraw.
No evento draw dele coloque isto:
Código:
draw_text(10,10,"Pontos; "+string(global.pontos));//Os dois 10 são as posições onde o texto será desenhado.
Caso não tenha feito nada para aumentar o valor da variavel pontos, coloque no evento creat do objDraw:
Código:
alarm[0]=1;//setei o alarm[0] deste evento como 1 step
No evento Alarm0:
Código:
global.pontos+=1;
alarm[0]=1;
Coloque estes outros objetos na room e fim...
Teste agora e veja se deu certo, se der, viva feliz! Happy


Boa noite, que bom que apareceu pra ajudar  Laughing 
segui os passos corretamente, aparece o score corretamente, mais ele só fica aumentando e eu acho que o nosso amigo quer que cada obj_arma que o personagem consiga desviar conte como 1 ponto no score. fiquei curioso como faz isso.

a outra parte que tambem não está dando é o mesmo problema que estou enfrentando no meu game, o obj_arma cai só uma vez
e não fica caindo para o personagem desviar e contar os pontos.
o que está acontecendo no meu, é que ele cai, colide com o chão e destroi e não cria mais.

fabert

Número de Mensagens : 17
Idade : 27
Data de inscrição : 28/07/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.2britos.com.br

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por AxeInLine em Qua 06 Ago 2014, 22:32

(sou tão importante assim para você?) O_O Agora que notei que o tópico é de outro e não do fabert O_O
Acaba que eu me esqueci de uma coisa no objCtrl, no evento alarm[1], logo abaixo do "instance_creat" coloque isso:
Código:
alarm[1]=10;//Fabert, coloque aqui o tempo que eu te dei no outro topico;
Isso ocorre porque eu esqueci de colocar para fazer o loop...
Caso for realmente isso, caso ele queira que só adicione pontos depois de desviar, então apaga o evento creat e o evento alarm[0] do objDraw, e no obj_arma, no evento de colisão com o chão(novamente '--):
Código:
global.pontos += 1;
Coloque o "instance_detroy" que tem, embaixo disso, porque se não, o objeto será destruido antes de poder adicionar o ponto...
(Vou copiar o Alex Fc do meu jeito(mas ainda vou copiar!)) Até!

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por Lighter em Qua 06 Ago 2014, 23:16

Oi Axel blz?

Fabert, desenvolvedorr até mesmo pro Axel(zoera kk), criei uma engine pra auxilia-los no processo de criação de jogos desse tipo, liberei o download pelo google drive, assim vocês poderem estudar os códigos. A engine esta toda comentada e é fácil entendimento, nível: elemental.

A engine traz através dos códigos as seguintes características:
* Gerador de objetos arma, que aumenta de velocidade gradativamente;
* O objeto arma sempre sera gerado, próximo ao jogador;
* Contador de pontos;
* O objeto arma sempre sera gerado na mesma escala, 32.. 64.. 128 na room, para seguir o mesmo padrão do obj_player que se move em 32 pixels.

Até que ficou divertida, mas para ficar perfeita você devera adapta-la para o seu jogo;

Download Aqui:

Flw, espero ter ajudado galera, bons estudos;

Lighter

Ranking : Sem avaliações
Número de Mensagens : 307
Idade : 18
Data de inscrição : 16/01/2014
Reputação : 29
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://google.com

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por fabert em Qui 07 Ago 2014, 00:16

Lighter e AxeInLine obrigado pela ajuda, vou estudar e tentar fazer algo, muito obrigado mesmo, isso vai ajudar muito  cheers 

fabert

Número de Mensagens : 17
Idade : 27
Data de inscrição : 28/07/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.2britos.com.br

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por wicttor.sullivan.2 em Sab 22 Nov 2014, 17:33

acho que vcs estão so esquendo do.... place_free, porque se n gente! o buneco bugaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

wicttor.sullivan.2

Número de Mensagens : 27
Data de inscrição : 12/11/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Game Iniciante

Mensagem por Conteúdo patrocinado Hoje à(s) 12:22


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum