Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Ontem à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
14 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 14 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

Botar nome do objeto numa variavel

Página 1 de 2 1, 2  Seguinte

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

Botar nome do objeto numa variavel

Mensagem por Convidad em Qui 10 Fev 2011, 16:40

Ae galera tamo ai denovo enchendo o saco mas............

Como nome mesmo ja diz, como se faz para o nome de um objeto ser atribuido a uma variavel??????????

Flw galera!!!


Última edição por makerloko em Qui 10 Fev 2011, 18:24, editado 2 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por Datebanhawn em Qui 10 Fev 2011, 16:51

kara eu num tenho certeza mais acho que é impossível
e é por isso que eu sempre ponho por exemplo para uma bola no objeto eu ponho :
obj_bola
ai a variavel bola pode ser usada
avatar
Datebanhawn

Data de inscrição : 29/01/2011
Número de Mensagens : 182
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: Botar nome do objeto numa variavel

Mensagem por Convidad em Qui 10 Fev 2011, 16:58

@Datebanhawn

Nada é impossivel, kkkkkkkkkkkkk mas falando sério
eu quero tipo, obj_bola quando colidir,o valor da variavel global.obje seja o nome do objeto, que é obj_bola endendeu?

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por vinians em Qui 10 Fev 2011, 17:05

No Evento de Colisão
Código:

global.obje = id;
avatar
vinians

Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1

Ver perfil do usuário http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por GameMakerTutoriais em Qui 10 Fev 2011, 17:07

Se você quiser o nome (string) e não o id, você vai usar duas coisas então. A primeria é a constante de objeto object_index, e a segunda é uma função chamada object_get_name(). Supondo que a instância bola queira o nome do objeto que colidiu com ela, o código seria assim (no evento Collision):

Código:
nome_de_quem_colidiu_comigo := object_get_name(other.object_index);

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
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: Botar nome do objeto numa variavel

Mensagem por Convidad em Qui 10 Fev 2011, 17:29

@vinians

ID eu acho que ia ficar com o objeto especifico da Id, e qu preciso do nome do obj. Vlw mesmo a ajuda!

@Ninja8086

Era exatamente isso que eu queria vlw mesmo funcionou direitinho,
Vlw a todos!!!

EDIT:

Eu esqueci no fim, eu queria usar a sprite do objeto do valor da global.equipad em outro objeto tem como?

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por GameMakerTutoriais em Qui 10 Fev 2011, 19:17

Você quer usar a sprite do objeto que pegou o nome, certo?

Haverão inconveniências sérias. A primeira é que objeto é uma classe de instância, ou seja, pode ser qualquer instância do jogo. Então não há garantias de que o sprite armazenado será o correto.

Nesse caso é altamente recomendável usar o id a menos que esteja usando apenas uma instância por objeto (o que não justificaria, certo? pois você quer pegar um sprite de um objeto igual, que já exista).

Use o id pra armazenar o sprite.

Se mesmo assim você ainda quiser tentar usar o nome, tente usar isso aqui no objeto que quer colocar o sprite:

Código:
for (a := 0; a < instance_count; a += 1)
begin
      if object_get_name(instance_id[a].object_index) = global.equipad then
      begin
            sprite_index := instance_id[a].sprite_index;
            break;
      end;
end;


Ele retornará o sprite da primeira instância encontrada cuja classe de objeto seja a mesma da variável que você citou. Boa sorte.

Quando fizer outra pergunta, crie outro tópico pois eu quase não vi seu edit. O edit não atualiza o tópico como nova mensagem, então crie outro. Smile

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
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: Botar nome do objeto numa variavel

Mensagem por Shadow10 em Qui 10 Fev 2011, 20:17

Se o caso for não precisar escrever o nome todo do objeto e ter todos os objetos atribuidos em variaveis, faz assim.

Cria um objeto que vai carregar a variavél de todos os outros.
Exemplo:
obj_contole_total
Código:
global.obj_jogador = 1;
global.obj_parede = 2;
global.obj_piso = 3;

Pronto! Agora quando for invocar um objeto faz isso pela variavél correspondente a ele.

Um detalhe eu não fiz isso pra ver se da certo, mas vele a pena você tentar.
avatar
Shadow10

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/11/2010
Número de Mensagens : 429
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: Botar nome do objeto numa variavel

Mensagem por Super Games em Qui 10 Fev 2011, 21:32

Como assim Makerloko?Você quer que o valor da global.equipad faça exatamente ok?Porque não entendi seu Edit...
avatar
Super Games

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 10/06/2010
Número de Mensagens : 2704
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: Botar nome do objeto numa variavel

Mensagem por Convidad em Qui 10 Fev 2011, 21:49

@Ninja8086

eu não sei onde botar esses codigos, entao ja que conplica do jeito que eu quero nao tem como pegar a sprite do obj e atribuir a outro sem problemas, de um jeito mais facil???

@Shadow10

não entendi nada do seu jeito de resolver isso mas vlw ae

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por Anderson3d em Qui 10 Fev 2011, 22:38

Perdão mas, alguém pode citar um exemplo de funcionalidade para se atribuir nome de objetos à variáveis globais?
Tipo, com que interesse isso seria usado?

Não é mais fácil usar aquele sistema:
nome do objeto = obj_bola
se for verificar variaveis dele usa:
obj_bola.variavel

avatar
Anderson3d

Ranking : Nota A
Notas recebidas : A - A
Data de inscrição : 15/02/2009
Número de Mensagens : 1479
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por Convidad em Qui 10 Fev 2011, 22:52

@Anderson3d

É que eu quero usar a sprite do objeto que está na variavel global em outro objeto, se tu poder me ajudar......... pode ser sem presisar usar a var. global ok? flw galera amanha entro aki no topico denovo

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por Shadow10 em Qui 10 Fev 2011, 23:58

Se for assim é mais fácil você usar "sprite_index = sprite".
Ou é bom você esplicar exatamente o que você ta querendo fazer no seu jogo.scratch
avatar
Shadow10

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/11/2010
Número de Mensagens : 429
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: Botar nome do objeto numa variavel

Mensagem por Anderson3d em Sex 11 Fev 2011, 00:50

makerloko escreveu:@Anderson3d

É que eu quero usar a sprite do objeto que está na variavel global em outro objeto, se tu poder me ajudar......... pode ser sem presisar usar a var. global ok? flw galera amanha entro aki no topico denovo

oxi, se o objeto se chamar obj_bola não é só fazer

if obj_bola.sprite_index = x {faz alguma coisa}

obs: x é o nome do sprite. Se for interno é só digitar o nome do sprite, se for externo basta digitar o nome da var global.
avatar
Anderson3d

Ranking : Nota A
Notas recebidas : A - A
Data de inscrição : 15/02/2009
Número de Mensagens : 1479
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1

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

Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por GameMakerTutoriais em Sex 11 Fev 2011, 00:58

Que confusão! O problema foi que, se vocês não leram tudo, o dono do tópico fez duas perguntas em posts diferentes.

makerloko escreveu:eu não sei onde botar esses codigos, entao ja que conplica do jeito que eu quero nao tem como pegar a sprite do obj e atribuir a outro sem problemas, de um jeito mais facil???

Você pode guardar o index do sprite em uma variável para poder usar depois. Supondo que a instância bola queira o index do sprite de quem colidiu com ela, ficaria assim (no evento Collision):

Código:
global.sprite_de_quem_colidiu_comigo := other.sprite_index;

Depois disso, quando for trocar o sprite (de qualquer objeto) para o sprite que você capturou na variável, você use esse código no objeto que quer trocar:

Código:
sprite_index := global.sprite_de_quem_colidiu_comigo;

@Anderson3d escreveu:Perdão mas, alguém pode citar um exemplo de funcionalidade para se atribuir nome de objetos à variáveis globais?
Tipo, com que interesse isso seria usado?

Não é mais fácil usar aquele sistema:
nome do objeto = obj_bola
se for verificar variaveis dele usa:
obj_bola.variavel

É mais fácil (mas ele havia pedido o nome). Foi depois que eu entendi o porque. Mas há vantagem e desvantagem. Aí depende do objetivo. Tendo o nome do objeto em mãos é mais fácil de trabalhar com as propriedades do objeto usando o nome do que com o id.

Note que eu estou dizendo o id de objeto (usado pelo projeto) e não o id de instância (usado dentro da room).

Se você quiser criar um objeto em tempo real no jogo e atribuir à ele características de outros objetos já criados, você poderia usar o nome para pegar as características de outros objetos pois não há uma palavra-chave que se possa usar para referenciar um objeto do projeto (pois se você usar por exemlo obj_blablabla isso fará referência à instância e não ao objeto do projeto).

Um exemplo. Um script para retornar o id do objeto (no projeto) usando o nome dele (string) como argumento. Assim: pega_id_projeto('obj_personagem')

Código:
for (n := 1; n <= 1000; n += 1)
begin
    if object_exists(n) then
    begin
        if object_get_name(n) = argument0 then return (n);
    end;
end;

return (0);

Daí a gente poderia usá-lo assim:

Código:
global.sprite_padrao_do_obj_bola := object_get_sprite(pega_id_projeto('obj_bola'));

Ficou complicado?

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
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: Botar nome do objeto numa variavel

Mensagem por Convidad em Sex 11 Fev 2011, 19:39

@Ninja8086

Eu botei isso no colisao do obj
global.equipad := other.sprite_index;

e no event DRAW do obj que eu quero que fique com a sprite
sprite_index := global.equipad

Aparece que nao existe essa sprite, o valor que esta ficando na global.equipad é: 90, mas pq 90 não era para ficar com o nome da sprite??

Eu tambem,bem usei esse codigo no colisao:
global.equipad = sprite_get_name(other.sprite_index)

ai sim o valor da global.equipad ficou com o nome da sprite do obj e continuei usando o mesmo codigo no DRAW mas continua dando erro que não existe a sprite, mas se o nome esta certo, como a sprite não existe??

eo codigo que eu to usando é mesmo pra usar no DRAW???

espero a ajuda galera!!!!!!!!!!!

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por Shadow10 em Sex 11 Fev 2011, 21:52

Isso ja aconteceu comigo. Deixa eu ver se eu consigo te esplicar...

Os sprites são criados e o sistema do Game Maker deixa gravado na memória da engine o ID dos sprites sendo reconhecidos por números.
Uma ideia que eu te dou é contar do topo da lista de sprites, escolher o sprite que você quer e colocar em número o ID dele.
E tem mias se você apagar um sprite e criar outro pra substituir ele,
esse novo ja vai entrar com um novo ID.
Exemplo:
você cria 3 sprites.
spr_1(ID = 0), spr_2(ID = 1) e spr_3(ID = 2).
Se você apagar o spr_2 e criar outro pra substituir ele, o ID dele ja não derá mais 1 passará a ser 4.
Entendeu agora?

O programa grava tudo que entra nas pastas e não liga se foi excluido,
continua contando em ordem crescente.

Até mais!
avatar
Shadow10

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/11/2010
Número de Mensagens : 429
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: Botar nome do objeto numa variavel

Mensagem por Convidad em Sex 11 Fev 2011, 22:43

@Shadow10

aaaaaaaah endendi! mas então não tem um jeito de fazer isso??? eu achei que esse problema relativamente simples mas deu nisso......
E ai alguem me ajuda!!!!!!!!!!!!

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Botar nome do objeto numa variavel

Mensagem por Shadow10 em Sab 12 Fev 2011, 23:41

Me passa a engine que eu te devolvo resolvido.
avatar
Shadow10

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/11/2010
Número de Mensagens : 429
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: Botar nome do objeto numa variavel

Mensagem por Convidad em Dom 13 Fev 2011, 02:18

Desculpa ae só pude entrar agora Sad

A engine que eu to usando ta um pouco numa e um pouco numa outra, juntar tudo ia ser fodz

mas não tem como tu me ajudar por aki mesmo, ai se conseguir resolver as outras pessoas podem ler aki como resolver Smile

Convidad
Convidado


Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

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