Conectar-se
Quem está conectado
19 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 19 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Fazer player voar

em Qua 06 Abr 2011, 12:17
Olá! Estou criando um jogo de plataforma, na qual o player é um robô, lógicamente os jogos de plataforma tem pulos e td mais, mas o meu robô não pode pular, pois ele não tem pernas, é tipo um tanque de guerra, mas eu queria que ele flutuasse (aparece uma luz embaixo dele e ele vai "voando"), vc pode ficar flutuando a qualquer altura, mas tem um tempo, ou seja, a flutuação usa uma força, quando essa força acaba, o robô cai. Alguém pode me ajudar a fazer ele flutuar? e se possível colocar o tempo de flutuação, por favor? Espero q tenha explicado certo, qqer coisa, eh soh perguntar.


Última edição por andreh em Qua 13 Abr 2011, 16:00, editado 3 vez(es)
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 10/06/2010
Número de Mensagens : 2704
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 10

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Fazer player voar

em Qua 06 Abr 2011, 12:52
Está aqui serve?
Pesquise antes de postar, só escrevi voar.


Espero ter ajudado...
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Fazer player voar

em Qua 06 Abr 2011, 13:02
Pois é! Malz ae!
Eu postei a dúvida e só depois lembrei q deveria ter procurado primeiro, é que eu tava precisando demais disso ,mas enfim, obrigado.

Mas agora vem a Segunda pergunta: Tem como eu fazer ele flutuar por determinado tempo?
ou seja, eu aperto pra ele voar, ai uma barrinha vai esvazeando, e quando ficar toda vazia o player cai.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Fazer player voar

em Qua 06 Abr 2011, 14:26
Use um alarm. Quando o alarm chegar a zero, adicione a gravidade.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Fazer player voar

em Qua 06 Abr 2011, 17:24
Por favor, me ajudem a criar um alarm. Depois que o saim postou eu procurei mto sobre alarm, mas nao achei nd que se encaixasse no meu caso. Por favor me ajudem, o q eu quero eh o seguinte: quando o player estiver flutuando, começa o alarm, ai qndo chegar em zero é pra fazer ele descer, eu quero isso para nao deixar o jogador se aproveitar da flutuação.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Fazer player voar

em Qua 06 Abr 2011, 17:32
Alarms são eventos, como create, collision ou draw. É possível fazer seus próprios alarms, mas não é necessário.
no começo da flutuação: alarm[0]=tempo_que_você_quiser_que_flutue
no evento alarm0: gravity=um_valor_qualquer
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Fazer player voar

em Qua 06 Abr 2011, 17:53
não esta dando certo! tem como vc postar um código explicando ou fazer uma engine?(se não é pedir de mais!).
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Fazer player voar

em Qui 07 Abr 2011, 11:41
código:
create
Código:
voando=false //checa se está voando
gravity=0              //gravidade
velocidade=4          //pra andar na horizontal

step
Código:
if keyboard_check_pressed(vk_up) && place_meeting(x,y+1,obj_chao){ //se apertou a tecla de voar sem estar voando
 voando=true  //avisa pro computador que está voando
 alarm[0]=30  //liga o alarme
 }

if keyboard_check_released(vk_up){ //se soltou a tecla (provavelmente, é porque quer cair)
 voando=false //deixa cair
 alarm[0]=-1
 }

if voando==false && !place_meeting(x,y+1,obj_chao) //se não está voando nem está no chão
 gravity=1 //começa a cair

//aqui, eu deixo pra você fazer o código de aterrissar. Eu sempre apronto um balaio de gato, nessa parte
//o usual é usar move_contact_solid em caso de colisão

//e, pra andar para os lados:
x+=(keyboard_check(vk_right)-keyboard_check(vk_left))*velocidade

alarm0
Código:
voando=0

draw
Código:
cor_antiga=draw_get_color()
draw_sprite(sprite_index,image_index,x,y)
if voando{ //alguns efeitos (toscos) pra quando estiver voando
 draw_luz //claro que isso é uma piada. Você que define como quer fazer a "luz"
 draw_set_color(c_red)
 draw_rectangle(x-50,y-10,x+50,y+10,0)
 draw_set_color(c_green)
 draw_rectangle(x-50,y-10,x-50+100*(alarm[0]/30),y+10,0)
 draw_set_color(cor_antiga) //pra não atrapalhar outros eventos
 }


Última edição por saim em Sex 08 Abr 2011, 14:57, editado 4 vez(es) (Razão : correções e melhorias)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Fazer player voar

em Qui 07 Abr 2011, 17:11
No primeiro pulo dá td certo, mas depois o player trava, não consigo ir para os lados e ele não flutua mais, apenas dá pequenos pulos. fiz colisão com o bloco, mas não funcionou!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Fazer player voar

em Sex 08 Abr 2011, 09:56
"pulo"? Meu código não permite que o player pule. Pra isso, tenho que elaborar ele um pouco mais. Já que o primeiro dá certo, me parece que o problema é na colisão.
Me mostre seu código pra colisão (eu me embanano nessa hora, mas a coisa sai) e explique se quer permitir o pulo, mesmo. Se quiser, é imprescindível mudar o código.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Fazer player voar

em Sex 08 Abr 2011, 13:56
Eu me expressei mal, pulo= flutuar (malz ae, eu não quero que ele pule)! Agora, a colisão, imagine td, move_contact_solid, um codigo que não deixa o player afundar no bloco, speed=0, até no drag'n'drop eu tentei, mas ele trava, e dá pra ver q ele não afunda no chão, alguma coisa está cancelando a flutuação,pq na primeira flutuação funciona, mas depois não,apenas dá uns pulinhos, se puder me ajudar, eu agradeço!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Fazer player voar

em Sex 08 Abr 2011, 14:22
Acho que você não está zerando a gravidade, mas espera um pouquinho que vou editar a mensagem com mais informações.

Recomendo debugar. Sabe o que é debugar? É uma tradução medonha pra "debug". Você roda o jogo com aquele botão "play" vermelho e verifica o valor das variáveis. Clica no botão "+" e adiciona qual variável de qual objeto você quer olhar. No caso, as variáveis são:
player.voando
player.gravity
player.alarm[0]
==>claro que é pra substituir "player" pelo nome do seu objeto
veja se está tudo como esperado, ou seja, ao apertar a tecla pra cima, você espera que esteja assim
player.voando=true
player.gravity=0
player.alarm[0]=30 e baixando
Ao soltar a tecla ou ao alarm[0] chegar a zero, você espera encontrar:
player.voando=false
player.gravity=1
player.alarm[0]=-1 //na verdade, tenho que mudar um pouco o step, só mais um minutinho que eu altero ele lá em cima pronto, alterei

Ao cair/aterrissar, você espera encontrar o seguinte:
player.voando=false
player.gravity=0
player.alarm[0]=-1

Se estiver tudo conforme esperado, o erro realmente está em algum outro lugar. Estando qualquer coisa fora do esperado, me avise.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Fazer player voar

em Sex 08 Abr 2011, 15:21
aaeeeeee! encontrei o erro! mto obrigado saim, primeiro por ter me ajudado e segundo pela paciencia, eu nao sabia pra q servia o debug, agora sei!
Sabe qual foi o erro?
Ele começava com gravidade zero certinho, ai ele flutuava, e quando caía, a gravidade não zerava, continuava 1, aí eu não conseguia me mexer, mas aí eu coloquei um Senão nessa condição, escrevendo gravity=0:
Código:
if voando==false && !place_meeting(x,y+1,obj_chao) //se não está voando nem está no chão
 gravity=1 //começa a cair
else
gravity=0
e agora ele zera a gravidade, vlw saim, o debug é uma grande ajuda, eu nunca ia saber que a gravidade não tava zerando!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Fazer player voar

em Sex 08 Abr 2011, 16:04
O debug é muito útil, acho que o manual devia gastar um pouco mais de texto explicando como usá-lo. Eu já pastei um bocado até conseguir usar essa ferramenta efetivamente e até hoje ainda tenho umas dúvidas.
Que bom que foi resolvido! Eu faria diferente, simplesmente mandaria gravidade pra zero na colisão, mas seu método parece até mais eficaz.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum