GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


Como criar um NPC?

4 participantes

Ir para baixo

Como criar um NPC? Empty Como criar um NPC?

Mensagem por Luiz Raizen Dom 20 Jan 2013, 20:36

Olá galera, tenho uma enorme dúvida me incomodando, desde manhã eu estou mexendo no Game Maker 8,
estou criando um jogo de RPG do Pokémon, e estou com muitos problemas para criar um NPC, tipo queria
fazer com que o NPC ficasse andando aleatóriamente no cenário, em outras palavras os movimentos de um
NPC comum de RPG, mas quando o personagem encostar nele, enquanto eu tiver encostado se eu apertar
uma determinada tecla que no caso pretendia colocar a letra Z, o NPC olharia na direção do meu personagem
e aí abriria a caixa de mensagem da fala do NPC, por favor, eu imploro pra vcs Ç.Ç me dêm uma força pra
programar isso ta muito dificil, e pra piorar estou aprendendo aos poucos como mexer no GM, já uso ele faz
tempo, mas pra mim ainda é muito complicado. Por favor galera pesso a ajuda de quem ter uma idéia de
como programar um evento desse, e muito Obrigado desde já!
Luiz Raizen
Luiz Raizen

Data de inscrição : 26/08/2012
Reputação : 0
Número de Mensagens : 39
Prêmios : Como criar um NPC? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Como criar um NPC? Empty Re: Como criar um NPC?

Mensagem por saim Seg 21 Jan 2013, 07:53

O que você quer, na verdade, é um monte de eventos, não apenas um.
Pra movimentação aleatória, você pode escolher a direção com o choose, mesmo. Faça isso de tempos em tempos, porque colocar isso no step vai dar a impressão de um ataque epiléptico.
Mais legal ainda, se o cenário for dividido numa grid regular (como costuma acontecer nos jogos de pokemón), é usar uma engine dos fantasmas de pacman, ou seja, só permitir mudar de direção se estiver alinhado à grid.

Pro NPC se virar pra direção do jogador, basta colocar o código ao apertar a tecla (direction = point_direction(x, y, jogador.x, jogador.y), algo assim), mas pra permanecer virado, você precisa de um esboço de uma máquina de estados finitos.
Código:
SE (está conversando) {
fica firado pro jogador, com as caixas de diálogo, etc.
}
SENÃO {
fica caminhando, como se tivesse perdido as lentes de contato
}

Outra forma é colocar um tipo de "pausa" no jogo. Você faz o NPC virar para o jogador, grava a tela numa surface, desativa tudo e cria um objeto que mostra essa surface e faz o diálogo rolar por cima dela. As personagens vão estar "mortas", mas o jogador não vai perceber.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Como criar um NPC? Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Como criar um NPC? Empty Re: Como criar um NPC?

Mensagem por Rodrigo Santiago Seg 21 Jan 2013, 08:07

Voce sabe criar scripts?
ingredientes
collision line
Uma variavel global
Uma variavel no NPC

Como fazer
NPC andar aleatoriamente

[create]
alarm[0]=30
[alarm0]
var temp
temp=choose(0,1,2,3,4)
hspeed=0;vspeed=0;
switch(temp){
case 0:hspeed=2;break;
case 1:hspeed=-2;break;
case 2:vspeed=2;break;
case 3:vspeed=-2;break;
}
alarm[0]=30

NPC detectar
[step]
if collision_line(x,y,lenghtdir_x(64,direction),lengthdir_y(64,direction){
global.pause=1
instance_create(textox,0,0)
}

obj textox(vc pode criar um para cada fala, ou usar uma variavel pra ele saber qual e a fala), vc faz pra esse objeto escrever o texto e na hora q vc apertar z o global.pause=0.
Nao esqueca de colocar um if em TODOS os objetos que se movem no jogo para eles pararem com global.pause

eu tbm to fazendo jogo de pokemon, na verdade 2, legend e dota.
Rodrigo Santiago
Rodrigo Santiago

Games Ranking : Nota B

Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Reputação : 73
Número de Mensagens : 1281
Prêmios : Como criar um NPC? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 3 Prata x 1 Bronze x 3

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

Ir para o topo Ir para baixo

Como criar um NPC? Empty Re: Como criar um NPC?

Mensagem por Luiz Raizen Sex 25 Jan 2013, 17:17

Muito obg galera, tive q reler os comentários de vcs, algumas vezes para entender, como disse estou aprendendo a mexer no game maker aos poucos, e ainda me enrolo muito na programação, mas acho q consegui entender, vou tentar programar, seguindo as instruções de vcs, e ver a q da mais certo no meu caso, se por acaso eu ñ acabar conseguindo eu dou um edit aki, muiiito obg!
Luiz Raizen
Luiz Raizen

Data de inscrição : 26/08/2012
Reputação : 0
Número de Mensagens : 39
Prêmios : Como criar um NPC? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Como criar um NPC? Empty Re: Como criar um NPC?

Mensagem por vinians Sex 25 Jan 2013, 18:06

Amigo, a maneira mais fácil que conheço para fazer isso é usando "paths". Você cria a path e ele fica andando. Quando passar perto dele você define a velocidade da path para zero, nisso ele para. Veja:
1-Va até o criador de paths e crie uma path qualquer para teste.
Agora no Evento Create do objeto do NCP:
Código:

path_start(sua_path, 1, 2, true); // atribui a path a instancia do NPC
Agora no Evento de Colisao voce coloca o codigo de acordo com a posicao. Isso depende dos seus sprites, por isso nao vou colocar exemplo pra voce. Mas voce pode usar a funcao point_direction() para calcular a direcao entre o NCP e o jogador.
Flws!
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Como criar um NPC? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Como criar um NPC? Empty Re: Como criar um NPC?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos