Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Alterar variável para uma instância
- GM_PC_Jogos
- Novato
- Reações: 0
- Mensagens: 15
Alterar variável para uma instância
Boa noite pessoal.
Fiz um "laser beam" com a ajuda de um tutorial do youtube, mas agora não estou conseguindo atribuir dano a uma única instância do inimigo, vou tentar explicar o código:
obj_jogador evento step:
if!(instance_exists(obj_laser_4)){
instance_create_layer(obj_jogador.x + (sprite_width / 2., obj_jogador.y, "Instances", obj_laser_4);
}
if(keyboard_check_released(vk_space)){
instance_destroy(obj_laser_4);
}
obj_laser_4 no evento create: (laser bean)
direction = 0;
fimx = 0;
fimy = 0;
tamanho = 0;
obj_laser_4 no evento step:
x = obj_jogador.x + 50;
y = obj_jogador.y;
var tamanho_max = 900;
for(i = 0; i < tamanho_max ; i++){
fimx = x + lengthdir_x(i, direction);
fimy = y + lengthdir_y(i, direction);
tamanho = i;
if(collision_point(fimx, fimy, obj_teste_inimigo, false, false)){
break;
}
}
obj_laser_4 no evento draw: (laser bean)
for(j = 0 ; j < tamanho ; j++){
draw_sprite_ext(spr_laser_4, 0, x + lengthdir_x(j, direction), y + lengthdir_y(j, direction), 1, random_range(0.8, 1.2), direction, c_white, 1);
}
Vou tentar resumir o que está acontecendo. Cria uma única instância do obj_laser_4 e no evento draw do obj_laser_4 aumenta o tamanho do sprite para o valor de no máximo 900 pixels em linha reta apenas.
No evento step do obj_laser_4 é onde está acontecendo a checagem da colisão, com o collision_point que diminui o tamanho do laser se encostar no inimigo.
Agora vem o problema....O inimigo possui uma variável vida = 100...eu gostaria que ao acertar cada instância desse inimigo, atribuísse um dano, mas pela colisão estar na no evento step, não sei como posso fazer isso. Tentei o with(obj_inimigo) order.vida -= 1 por exemplo, mas não funciona. Se eu coloco obj_inimigo.vida -=1, diminui a vida de todos inimigos....
E aproveitando o tópico, estou meio confuso com isso, porque o other funciona no evento collision e pega uma única instância?
Consigo fazer isso sem estar no evento collision?
Quem puder ajudar eu agradeço.
Fiz um "laser beam" com a ajuda de um tutorial do youtube, mas agora não estou conseguindo atribuir dano a uma única instância do inimigo, vou tentar explicar o código:
obj_jogador evento step:
if!(instance_exists(obj_laser_4)){
instance_create_layer(obj_jogador.x + (sprite_width / 2., obj_jogador.y, "Instances", obj_laser_4);
}
if(keyboard_check_released(vk_space)){
instance_destroy(obj_laser_4);
}
obj_laser_4 no evento create: (laser bean)
direction = 0;
fimx = 0;
fimy = 0;
tamanho = 0;
obj_laser_4 no evento step:
x = obj_jogador.x + 50;
y = obj_jogador.y;
var tamanho_max = 900;
for(i = 0; i < tamanho_max ; i++){
fimx = x + lengthdir_x(i, direction);
fimy = y + lengthdir_y(i, direction);
tamanho = i;
if(collision_point(fimx, fimy, obj_teste_inimigo, false, false)){
break;
}
}
obj_laser_4 no evento draw: (laser bean)
for(j = 0 ; j < tamanho ; j++){
draw_sprite_ext(spr_laser_4, 0, x + lengthdir_x(j, direction), y + lengthdir_y(j, direction), 1, random_range(0.8, 1.2), direction, c_white, 1);
}
Vou tentar resumir o que está acontecendo. Cria uma única instância do obj_laser_4 e no evento draw do obj_laser_4 aumenta o tamanho do sprite para o valor de no máximo 900 pixels em linha reta apenas.
No evento step do obj_laser_4 é onde está acontecendo a checagem da colisão, com o collision_point que diminui o tamanho do laser se encostar no inimigo.
Agora vem o problema....O inimigo possui uma variável vida = 100...eu gostaria que ao acertar cada instância desse inimigo, atribuísse um dano, mas pela colisão estar na no evento step, não sei como posso fazer isso. Tentei o with(obj_inimigo) order.vida -= 1 por exemplo, mas não funciona. Se eu coloco obj_inimigo.vida -=1, diminui a vida de todos inimigos....
E aproveitando o tópico, estou meio confuso com isso, porque o other funciona no evento collision e pega uma única instância?
Consigo fazer isso sem estar no evento collision?
Quem puder ajudar eu agradeço.
Re: Alterar variável para uma instância
Dá uma olhada nesse vídeo (esse é o terceiro de 4, você talvez queira ver os outros).
https://youtu.be/fV7POmEc-SA
É um modelo bem parecido, mas com o retorno da instancia, acho mais prático enviar o vídeo do que explicar tudo '
https://youtu.be/fV7POmEc-SA
É um modelo bem parecido, mas com o retorno da instancia, acho mais prático enviar o vídeo do que explicar tudo '
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
- GM_PC_Jogos
- Novato
- Reações: 0
- Mensagens: 15
Re: Alterar variável para uma instância
Muito obrigado None pela ajuda
Estou vendo os vídeos e estou tentando entender o que esta acontecendo =)
Dar um tiro dentro do outro tiro, esta meio confuso no início para mim....kkkk
vlw None....vou ver com calma depois os vídeos.
Estou vendo os vídeos e estou tentando entender o que esta acontecendo =)
Dar um tiro dentro do outro tiro, esta meio confuso no início para mim....kkkk
vlw None....vou ver com calma depois os vídeos.
Re: Alterar variável para uma instância
Não é um tiro dentro do outro, a linha só está lá para ser um auxílio visual.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes