Conectar-se

Esqueci minha senha

Últimos assuntos
» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

» Tipo de Draw que dê melhor fps...
Sex 21 Ago 2015, 12:25 por Pai véi

» Banco de Dados online fácil de configurar
Sex 21 Ago 2015, 11:47 por Pai véi

» Ficou estranho esse efeito na terra?
Qua 19 Ago 2015, 20:08 por Adriel

» Você consegue decifrar o que é isso?
Qua 19 Ago 2015, 15:48 por Mateus O de Andrade

» Texto centralizado em sprite 64x64
Qua 19 Ago 2015, 14:00 por Vandson Fernandes

» [Tutorial] Um Único Script para Todos Diálogos do Jogo
Ter 18 Ago 2015, 22:12 por dharrison

» VIDEO AULAS - Plataforma - Recriando Super Mario
Ter 18 Ago 2015, 20:44 por Adriel

» Ajuda deixar room maior
Ter 18 Ago 2015, 15:56 por Stickman

» OST - Rain From The Past (Para Main Themes)
Seg 17 Ago 2015, 23:00 por Jessezyn

» #DGM Aula 01 - Views
Seg 17 Ago 2015, 00:16 por victor13.

» Alguém sabe as dimensões de um galaxy s5?
Dom 16 Ago 2015, 20:06 por vitorfernandes13

» Conquer The Kingdom
Dom 16 Ago 2015, 12:13 por DVictorPS

» [Ajuda] Bug ds_list
Dom 16 Ago 2015, 08:27 por Witen

» câmera seguir player com touch control android
Sab 15 Ago 2015, 15:05 por Lighter

» Apk não roda no celular
Sab 15 Ago 2015, 12:10 por xLuiZzz


Bot atirar no player apenas se estiver "vendo" ele

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

Bot atirar no player apenas se estiver "vendo" ele

Mensagem por peixoto em Dom 19 Jan 2014, 21:50

Como faço para que o obj_inimigo checar se o player está dentro do "campo de visão"(ou seja em frente) a ele para executar o código que o faz atirar?(Sendo que esse obj_inimigo fica mudando de angulo conforme anda, sendo para direita = 0º).
avatar
peixoto

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por WellingtonBecker em Dom 19 Jan 2014, 21:55

Ola amigo, tente esse código:

STEP DO INIMIGO

Código:
if distance_to_object(obj_player) < distancia { faz sua ação}
:
avatar
WellingtonBecker

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 09/05/2013
Número de Mensagens : 820
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por peixoto em Dom 19 Jan 2014, 22:31

Isso ja conheço.
O que quero é que caso ele esteja a x pixels de distancia(essa parte ja sei) e olhando na direção do player(não no ponto exato, só na direção(direita,esquerda,cima ou baixo)) que ele execute o script de atirar.
avatar
peixoto

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por Object em Dom 19 Jan 2014, 22:45

Olá , eu acho que posso ajudar coloque isto no step do inimigo :
Código:
if distance_to_object(obj_player)<=100 and place_meeting(x-100,y,obj_player{
atirar=true//Olhe este código simples, se a distancia para o obj_player for menor que 100 e o obj_player estiver perto do lado esquerdo dele ele atira eu acho que vai funfar

CASO NÃO FUNCIONE

Crie uma linha quase que invisivel que só você sabe que ela esta lá e faça ela seguir o inimigo , crie um evento de create na linha e coloque:
Código:
global.atirar=false
Agora crie um evento de colisão com o obj_player e coloque:
Código:
global.atirar =true
agora vá no inimigo no create e coloque:
Código:
global.atirar=false
agora vá no step e coloque:
Código:
if global.atirar=true{
image_angle=point_direction(x,y,obj_player)//vai fazer ele olhar para o player
instance_create(x,y,obj_bala)//ele vai criar a bala

Agora se eu te ajudei POR FAVOR clique na mãozinha de beleza do lado esquerdo
do meu perfil vai me ajudar
avatar
Object

Data de inscrição : 14/01/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por peixoto em Seg 20 Jan 2014, 08:53

Não sei se funciona desse jeito que citou object.
Eu usei o metodo(que tinha esquecido ._.)
Código:
obj_player.x>x //ver se está a direita
obj_player.x<x //ver se esta a esquerda
obj_player.y>y //ver se esta abaixo
obj_player.y<y //ver se está acima
.

Me lembrei desse "modo" ontem a noite quando fui dormir Razz
Mas ainda assim obrigado por tentar ajudar.
avatar
peixoto

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por AlexBosquin em Seg 20 Jan 2014, 13:27

eu vou precisar disso daki uns dias eheheheeh, então te recomendo criar um var que cheque o lado do player e do inimigo então nos dois crie:

CREATE:
Código:

side = image_xscale // o image_xscale retorna -1 para esquerda e 1 para a direita

então depois de por esse codigo no player e no inimigo faça isso no obj_inimigo:
STEP:
Código:

if (obj_player.side=1 && self.side=-1) or (obj_player.side=-1 && self.side=1) // se  o player estiver olhando para o inimigo...
{
//o que vc quer que aconteça
}

Ai lembra de adicionar o codigo de checar a distancia tbm xD, ah não precisa de usar o "self." pq como já esta no obj_inimigo não precisa mas eu ponho pra deixar mais organizado!
avatar
AlexBosquin

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 0

Ver perfil do usuário http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por chicoweb em Seg 20 Jan 2014, 16:24

Usa o método carioca  Cool :

Vamos supor os seguintes objetos:

obj_player
obj_inimigo
obj_inimigo_visao

1) Cria uma imagem assim:



Cria um objeto obj_inimigo_visao, e põe a imagem nesse objeto.

2) Step do obj_inimigo_visao:

Código:
// Roda conforme o inimigo
x = obj_inimigo.x
y = obj_inimigo.y
image_angle = obj_inimigo.image_angle

3) Create do obj_inimigo:

Código:
// Cria o campo de visão
instance_create(x,y,obj_inimigo_visao)

4) Com com iso ai quando vc rodar o jogo vai ver que cada inimigo tem uma visão como se fosse uma lanterna acesa na frente dele.

5) Pronto, agora cria o evento Collision (com o player) no obj_inimigo_visao, e dentro dele o código do seu tiro.

OBS: Para ocultar a visão é só colocar no create do obj_inimigo_visao:

Código:
visible = false

Rápido, rasteiro, sem código complicado, só na maciota kkkkkk
avatar
chicoweb

Ranking : Nota C
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Número de Mensagens : 666
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por AlexBosquin em Seg 20 Jan 2014, 18:59

chico esse metodo aumentaria alguns "bytes" no jogo kk, pois seria mais um objeto no game o outro metodo que eu disse não iria usar um objeto a mais, e como teria o codigo "if distance_to_object(obj_player)" ele poderia alterar a distancia que o inimigo ia checar para começar a atacar apenas alterando o valor na frente do codigo e no seu metodo teria que redimensionar a imagem da "lanterna". Mas claro fica a critério de cada um, mas quanto mais fácil e barato for melhor xD
avatar
AlexBosquin

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 0

Ver perfil do usuário http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por peixoto em Seg 20 Jan 2014, 19:54

Cara eu ja consegui ._.
Eu usei basicamente esses códigos:
http://gmbr.forumeiros.com/t28797-ia-top-down-estilo-rpg-e-shooter
(para andar e o obj saber para qual lado está virado)
e o script que citei ai acima(neste tópico aqui)
avatar
peixoto

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Bot atirar no player apenas se estiver "vendo" ele

Mensagem por Conteúdo patrocinado


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