[TUTORIAL] achar um objeto atraves de uma string

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

[TUTORIAL] achar um objeto atraves de uma string

Mensagem por itarodrigo em Qui 23 Set 2010, 22:04

Nome: Achar um objeto atraves de uma string
Descrição: sabe se existe um objeto atraves de uma string
Nível de dificuldade: mediano
Requerimentos: 8 - Pro/Lite
Desenvolvimento:
oi pessoal,

estive agora a pouco tentando desenvolver um codigo no qual através de uma string com o nome de um objeto, eu possa selecionar o mesmo.

de inicio, vamos criar um script com o seguinte codigo:
Código:

var i;
i = 1
while (object_exists(i))
{
if object_get_name(i) == argument0
{
return i;
}
else
{
i += 1;
}
}
return -1;

o meu script vai se chamar scr_acha_objeto.

depois crie um objeto chamado ob_controle esse objeto (no meu caso) é apenas um pixel, que vai seguindo o mouse com o intuito de servir como selecionador mesmo.

no ob_controle ou no seu objeto, crie um evento Global_left_button (que pega um clique em qualquer ponto da tela e ponha o seguinte codigo nele:
Código:

s = get_string("Nome do Objeto",0);

if scr_acha_objeto(s)
{instance_create(x,y,scr_acha_objeto(s))}
else
{show_message("Não existe o objeto solicitado!")}

crie alguns objetos para teste e inicie o game. clique em qualquer lugar da room e escreva o nome do objeto que voce deseja criar. o mesmo deverá aparecer.

qualquer dúvida ou erro no codigo, fico a disposicao para ajudar, e tambem sei que posso contar com o pessoal da moderacao, que tem me ajudado bastante.

abraços.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] achar um objeto atraves de uma string

Mensagem por Convidad em Dom 26 Set 2010, 12:44

Olá itarodrigo!

Realmente é um script bastante útil no desenvolvimento do jogo, tratar com nomes de objetos dessa forma pode deixar que o id de instância seja "deixado de lado", tornando a programação mais fácil em casos onde não se usa objetos iguais em uma mesma room.

Uma falha no Game Maker, acredito, é a forma como ele trada os ids de recursos e objetos (não o de instância). O id de instância é aquele que é atribuído durante a execução do jogo e apesar de ser imutável durante o jogo, ele é "dinâmico" do ponto de vista de que qualquer instãncia pode assumir um determinado id, em processos distintos é claro, pois não há id's iguais.

Já o id de recurso é aquele atribuído aos recursos e objetos adicionados ao jogo, durante a elaboração do projeto. Um fato interessante é que, quando um recurso é excluído o id do mesmo deveria ficar disponível para outro mas isso não acontece. Se um objeto com id 10 for excluído, o Game Maker aponta aquele id como um recurso ou objeto que não existe, mas podemos ainda ter os objetos 11, 12, 13...

Desta forma, acredito que o script iria parar no primeiro recurso excluído do jogo, mas poderíamos pegar o id do último recurso adicionado para fazer um laço em todos e resolver este problema.

De cabeça agora eu não lembro (desculpe!), mas há uma função que adiciona um objeto novo objeto ao jogo e retorna o id. De acordo com este id, podemos conferir todos os números entre o 1 e o id para conferir se o objeto ou recurso existe e retornar seu nome.

Um abraço!

Convidad
Convidado


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