Página 1 de 1

Ajuda com botoes

Enviado: Sáb Jun 11, 2016 7:08 pm
por nicoca
alguem poderia me fala como faço pra tipo o carrinho chega perto de uma televisão ai pressiona ma tecla ela liga so que quando faço do jeito que sei ele pode aperte de qual quer lugar como faço pra fazer somente usando o personagem estiver na frente da televisão ?

Re: Ajuda com botoes

Enviado: Sáb Jun 11, 2016 7:48 pm
por Ark
Faz com colisão, se ele colidir com o objeto aperte tal botão e liga.

Re: Ajuda com botoes

Enviado: Sáb Jun 11, 2016 9:29 pm
por nicoca
ta as qual o comando ?

Re: Ajuda com botoes

Enviado: Sáb Jun 11, 2016 9:46 pm
por vikintor
Boa noite nicoca 
No meu caso costumo fazer uma "gambiarra" que geralmente funciona bem:
Alem do player eu crio um outro objeto (com sprite de um quadrado pequeno) vou chamar ele de obj_collider.  

No create do player coloco este código

Código: Selecionar todos

instance_create(0,0,obj_collider)
No step do player coloco algo assim:

Código: Selecionar todos

if keyboard_check(vk_right) {x+=9 obj_collider.x = x+32}
Significa: Ao apertar a tecla da direita o player se movera a nove passos nesta direção, enquanto o objeto obj_collider será fixado na frente do player a 32 passos a direita.

Se forem as quatro direções:

Código: Selecionar todos

if keyboard_check(vk_right) {x+=9 obj_collider.x = x+32}
if keyboard_check(vk_up) {y-=9 obj_collider.y = y-32}
if keyboard_check(vk_down) {y+=9 obj_collider.y = x+32}
if keyboard_check(vk_left) {x-=9 obj_collider.x = x-32}
Agora no objeto da televisão eu coloco uma colisão entre ele e o obj_collider
No STEP coloco esse código:

Código: Selecionar todos

if keyboard_check_pressed(ord("Z"))
{
// E aqui vai o seu código da TV ligando e desligando.[/size]
}
Você pode trocar o "Z" por qualquer outra tecla.
Se acaso a TV deva ser ligada pressionando SPACE ficaria assim:

Código: Selecionar todos

if keyboard_check_pressed(vk_space)
{
// E aqui vai o seu código da TV ligando e desligando.
}

Re: Ajuda com botoes

Enviado: Dom Jun 12, 2016 12:12 am
por Ark
voce pode fazer uma verificação de colisão com place_meeting, fazendo uma verificação exata da mascara do player com a televisão. ou criar um colider msm, com as posições do player.
ex : if place_meeting(x+sign(hsp),y,obj_televisão){
//liga e desliga 
}

Re: Ajuda com botoes

Enviado: Dom Jun 12, 2016 10:58 am
por ValdeciVieira
Ja fiz esse codigo varias vezes

Re: Ajuda com botoes

Enviado: Dom Jun 12, 2016 1:18 pm
por chicoweb

Código: Selecionar todos

d = 32 // distancia da televisao em que ele pode ligar
if position_meeting(x-d,y,obj_televisao) and keyboard_check_pressed(ord("X")){
    // Coloque aqui o cpdigo que ele liga a tv
    ligar_tv()
}
No código acima ele liga a com o tecla X e a televisão esta a esquerda dele, se ela estiver em cima, usa no Y

Código: Selecionar todos

x,y-d,obj_televisao
Se tiver em outra posição ai vc calcula ai que e facil

OBS: Eu não  uso o place_meeting, acho mil vezes melhor o position.