Consegui desenhar um objeto caindo até colidir com outro e parar. A intenção era fazer uma movimentação de plataforma. Quando toco na tela o objeto pula, mas eu queria realizar um pulo mais suave, e do jeito que fiz o objeto some da tela e cai devagar até tocar o chão. Segue abaixo a lógica:
quando atinge o 100 o objeto deveria cair. Mesmo o objeto caindo da forma certa, para subir está subindo de uma vez. Alguém consegue dizer o problema nessa lógica? Desde já agradeço.
Provavelmente isso se da ao fato de ser por for, ou seja, vai do processador do celular. Executar de 0 a 99 pra um processador é um trabalho que não demora nem 1s.
B
BrunoLeonardo
Na verdade é um problema de lógica somente. Eu até consegui resolver. Na descida, a cada incremento, eu limpo a tela e desenho denovo, por isso a descida fica suave. Mas o salto eu fiz um laço ao clicar na tela. Então o laço executa todo primeiro para depois desenhar e eu tive que mudar esse laço. Mesmo assim não ficou bom do jeito que eu quero pois ao saltar o objeto agora fica flutuando. Mais um problema de lógica. Acho que vou ter que repensar toda a lógica do salto.
//ao clicar na tela faz objeto saltarpublicbooleanonTouchEvent(MotionEventevent){if(player.colide(chao)){limiteSalto=player.y-300;player.salta();}returnfalse;}//logica da física do objetoif(!player.colide(chao)&&!player.saltou){player.cai();}elseif(player.saltou&&player.y>limiteSalto){player.sobe();}
B
BrunoLeonardo
Acabou que deu certo fazendo o seguinte.
//ao tocar a tela faz objeto saltarif(player.colide(chao)){player.salta();limiteSalto=player.y-300;}//logica da física do objetoif(!player.colide(chao)&&player.saltou){if(player.y>limiteSalto){player.salta();}else{player.cai();player.saltou=false;}}elseif(player.colide(chao)){player.saltou=false;}else{player.cai();player.saltou=false;}