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
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


Como Criar Objetos com GML?

+3
Henrique_GJ
Cainã
Allan Dennis
7 participantes

Ir para baixo

Como Criar Objetos com GML? Empty Como Criar Objetos com GML?

Mensagem por Allan Dennis Seg 10 maio 2010, 11:22

Oi pessoal!

Esse é meu primeiro post aqui. Gostaria de parabeniza-los pelo forum, muito legal.

Então...

Eu tô fazendo um mini aplicativo no GM8Pro, onde tenho que criar vários objetos semelhantes e tá complicado com Drag & Drop, pois fica uma tarefa muito repetitiva tanto ao criar como pra editar à medida que vou desenvolvendo o aplicativo.

A pergunta é: Tem como criar objetos, já com suas características inclusive Sprites, usando GML?

Agradecido desde já.

Editado por CyraxX: Topico resolvido.
Trancado.
Se o autor quiser reabrir o tópico envie MP para algum administrador ou moderador.
avatar
Allan Dennis

Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Cainã Seg 10 maio 2010, 11:53

É bem simples, no exemplo abaixo ele adiciona um objeto com o dado nome e configura o Sprite e suas características:


{

nome_objeto = object_add(); //Cria o objeto

with (nome_objeto){

sprite_index = nome_sprite; //Sprite

solid = true; //Solidez

depth = -30 //Profundidade

persistent = false; //Persistente ou não

visible = true; //Visível ou não

}

}
Cainã
Cainã

Data de inscrição : 07/03/2010
Reputação : 1
Número de Mensagens : 1335
Prêmios : Como Criar Objetos com GML? 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

http://cai.na.tl/

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Henrique_GJ Seg 10 maio 2010, 13:23

object_add()???? não seria instance_create(x,y,obj)?
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : Como Criar Objetos com GML? 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Java
  • C ou C++


http://sitedosjogos.forumeiros.com

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Cainã Seg 10 maio 2010, 13:25

Henrique_GJ escreveu:object_add()???? não seria instance_create(x,y,obj)?

Depende, o object_add() adiciona um novo objeto ao jogo, o instance_create() apenas adiciona a Room um objeto já existente.
Cainã
Cainã

Data de inscrição : 07/03/2010
Reputação : 1
Número de Mensagens : 1335
Prêmios : Como Criar Objetos com GML? 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

http://cai.na.tl/

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por shatterhand2 Seg 10 maio 2010, 13:35

O termo mais correto é adiciona uma nova INSTANCIA de um objeto a Room.

O Objeto não "existe" no programa rodando, ele é uma abstração. É uma definição de algo.

Ele só passa a existir durante a execução quando criamos uma ou mais INSTÂNCIAS dele.

É como o conceito da fábrica de torradeiras:

A Fábrica não é a torradeira, mas ela define como serão as torradeiras.

É como se a fábrica fosse o objeto, mas as torradeiras em si fossem as instâncias.
shatterhand2
shatterhand2

Data de inscrição : 21/10/2009
Reputação : 11
Número de Mensagens : 649
Prêmios : Como Criar Objetos com GML? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


http://bananabytes.com.br/

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Allan Dennis Seg 10 maio 2010, 13:41

Coloquei isso no script0:

{
ObjC3 = object_add(); //Cria o objeto
with (ObjC3){
sprite_index = SptTom; //Sprite
solid = true; //Solidez
depth = -30; //Profundidade
persistent = true; //Persistente ou não
visible = true; //Visível ou não
instance_create(10,10,ObjC3); //Adiciona à room
}
}

E isso no Creation Code da room0:

script0();

E não aparece nem menssagem de erro, apenas uma janela vasia.
avatar
Allan Dennis

Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por dungeon333 Seg 10 maio 2010, 13:48

Código:

nome_objeto = object_add()
object_set_depth(nome_objeto, 100) // depth
object_set_mask(nome_objeto,mask0) // mask
object_set_sprite(nome_object,sprite0) // sprite
...
avatar
dungeon333

Data de inscrição : 29/05/2009
Reputação : 0
Número de Mensagens : 351
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Cainã Seg 10 maio 2010, 14:02

Allan Dennis escreveu:Coloquei isso no script0:

{
ObjC3 = object_add(); //Cria o objeto
with (ObjC3){
sprite_index = SptTom; //Sprite
solid = true; //Solidez
depth = -30; //Profundidade
persistent = true; //Persistente ou não
visible = true; //Visível ou não
instance_create(10,10,ObjC3); //Adiciona à room
}
}

E isso no Creation Code da room0:

script0();

E não aparece nem menssagem de erro, apenas uma janela vasia.

Faça como o dungeon333 disse, talvez eu tenha errado na hora de definir as configurações.
Cainã
Cainã

Data de inscrição : 07/03/2010
Reputação : 1
Número de Mensagens : 1335
Prêmios : Como Criar Objetos com GML? 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

http://cai.na.tl/

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Denis Lemos Seg 10 maio 2010, 15:26

Não testei, mas acho que o geito do "Cainã" funciona também, mas tem uma coisa que eu não tenho certeza se é verdade, mas eu nunca consegui criar um objeto ou uma instancia pelo "create_code" da room, nunca funcionou comigo, por isso eu acho que não dá para adicionar instancias pelo code da room, mas não tenho certeza !

Vou fazer uns testes, e dou um edit depois para dizer se, dá ou não dá !

[EDITTADO]

Retiro o que eu disse, dá para criar instancias pelo crete code da room sim, mas não entendo como que no meu jogo que estou fazendo, eu precisava muito disso e não funcionou de geito nenhum, por isso pensei que não dava, mas agora vi que é possivel !

Há o geito do "Cainã" realmente não funcionou, mas seria o geito que tentaria fazer so que sem resultado também, o modo do "Dungeon" funcionou legal, veja o código que coloquei no create code da room:
Código:

obj_1=object_add()

object_set_sprite(obj_1,sprite0)

instance_create(200,200,obj_1)
Assim funcionou beleza !!!

EDITADO[2ª vez]

Bom o geito do "Cainã", que seria como eu faria, funciona também !
Só que primeiro tem que adicionar a instancia do novo objeto na room, e depois usar o with, por que o with só vai funcionar se o objeto já estiver na room, como foi usado o with antes da ter sido criado a instância do novo objeto, ficaria difícil de funcionar mesmo !

Então aqui está o geito que testei e funcionou perfeitamente:
Código:
obj_1=object_add()
instance_create(200,200,obj_1)

with(obj_1)
{
 sprite_index=sprite0
 solid=true
 depth=-100
}
Coloque nessa ordem no seu script !
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Como Criar Objetos com GML? 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Allan Dennis Ter 11 maio 2010, 01:33

Agrdeço a todos que contribuíram, principalmente ao Denis Lemos, que resolveu meu problema, pois o jeito dele foi o único que funcionou:

obj_1=object_add()
instance_create(200,200,obj_1)

with(obj_1)
{
sprite_index=sprite0
solid=true
depth=-100
}

Obrigado Denis, mas só pra finalizar, poderia explicar porquê só funcionou desse jeito e não dos outros. Afinal não adianta resolver um problema isolado de um, sem explicar para que outros utilizem em seus próprios casos. E também pra fixar melhor.
avatar
Allan Dennis

Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por RodrigoM. Ter 11 maio 2010, 06:25

Allan Dennis escreveu:
Agrdeço a todos que contribuíram, principalmente ao Denis Lemos, que resolveu meu problema, pois o jeito dele foi o único que funcionou:

obj_1=object_add()
instance_create(200,200,obj_1)

with(obj_1)
{
sprite_index=sprite0
solid=true
depth=-100
}

Obrigado Denis, mas só pra finalizar, poderia explicar porquê só funcionou desse jeito e não dos outros. Afinal não adianta resolver um problema isolado de um, sem explicar para que outros utilizem em seus próprios casos. E também pra fixar melhor.

Se me permite eu posso tentar explicar! =D

Bem primeiramente, o Denis complementou os codigos dos outros amigos, e depois o codigo do cainã estava correto, ele apenas esqueceu de criar o objeto sendo assim, não tem como definir nada!

Veja bem:

Quando ele criou o objeto pelo object_add(), ele apenas, criou o objeto no GM,e não na room, sendo assim por mais que ele tenha configurado o objeto, Solid,Deph, ele não desenhou o objeto na Tela, então não adiantou nada, só que o denis desenhou na tela o objeto pelo instance_create, sendo assim o codigo pode fluir como deveria!

Espero que tenha entendido! [:¬D]


Fallow

CyraxX.
avatar
RodrigoM.

Data de inscrição : 06/08/2009
Reputação : 5
Número de Mensagens : 569
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Allan Dennis Ter 11 maio 2010, 14:37

Entendí, mas há outra pergunta esêncial para complementar esse topico:

Como interagir com um objeto criado desta forma?

Ex.: Ao clicar com o esquerdo do mouse nesse objeto muda o sprite, e ao soltar ou saír de cima (leave), volta o sprite original.


Última edição por Allan Dennis em Ter 11 maio 2010, 14:39, editado 1 vez(es)
avatar
Allan Dennis

Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Denis Lemos Ter 11 maio 2010, 14:38

Cirax, não é apenas isso, mas sim eu só mostrei como o código do dungeon se escrevia como o nosso amigo queria, e eu nem sabia que tinha essa espécie de códigos "obj_set_sprite()" e tal , por isso eu disse que a minha lógica seria do modo que o "Cainã" fez !

Mas complementando, não é apenas criar o objeto com "object_add" e depois coloca-lo na room com "instance_create", pois como expliquei no primeiro post, tem que se tomar o cuidado de colocar na ordem certa !
Que seria:

1º: Criar o objeto no GM obj_1=object_add()

2º: Criar o objeto na room instance_crete(200,200,obj_1)

3º: Modificar suas propriedades com with(obj_1)

Pois o modo que estava dando erro, era porque primeiro foi criado o objeto no GM, que é correto, mas depois estava invertido, em segundo se alterava as propriedades do objeto com with e só depois se criava ele na room !

Mas o quê então acontecia, a função with, só altera as propriedades dos objetos instancionados na room, e como foi usado o with antes de ser criado a instância do objeto na room, não alterou nada, e por último foi criada a instância do objeto, que vem sem nenhuma propriedade !

Taduzindo, para usar o with, primeiro tem que existir o objeto na room, pois ele altera somente as propriedades das instâncis do mesmo objeto que existem na nossa room !

Agora o modo do "dungeon" usando as funções, "object_set_sprite", "object_set_alpha", etc...
Esse modo sim altera as propriedades do objeto propriamente dito de forma global, não somente os que só existem na room, e sim, os já existiam e os que vão ser criados depois, vão vir com que for indicado por essas funções !

Espero que tenha entendido "Alan Dennis", mas eu não sou muito bom em explicações !
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Como Criar Objetos com GML? 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Cainã Ter 11 maio 2010, 15:01

Allan Dennis escreveu:
Entendí, mas há outra pergunta esêncial para complementar esse topico:

Como interagir com um objeto criado desta forma?

Ex.: Ao clicar com o esquerdo do mouse nesse objeto muda o sprite, e ao soltar ou saír de cima (leave), volta o sprite original.

Para isso você precisa criar eventos no objeto, faça assim, depois de object_add() adicione as seguintes linhas:

Código:
{

nome_objeto = object_add()

object_event_add(nome_objeto,ev_mouse,ev_left_press,"sprite_index = nome_imagem_pressionado");

object_event_add(nome_objeto,ev_mouse,ev_left_release,"sprite_index = nome_imagem_solto");

}
Cainã
Cainã

Data de inscrição : 07/03/2010
Reputação : 1
Número de Mensagens : 1335
Prêmios : Como Criar Objetos com GML? 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

http://cai.na.tl/

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Allan Dennis Ter 11 maio 2010, 17:14

Valeu, mas ainda tem um problema: Quando clico em um objeto que está sobre o outro, aciona os dois (o de cima com depth=0 e o outro =1).
avatar
Allan Dennis

Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Cainã Ter 11 maio 2010, 17:17

Isso não tem como resolver, só usando variáveis o que é mais complexo.
Cainã
Cainã

Data de inscrição : 07/03/2010
Reputação : 1
Número de Mensagens : 1335
Prêmios : Como Criar Objetos com GML? 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

http://cai.na.tl/

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Allan Dennis Ter 11 maio 2010, 18:11

Cainã escreveu:Isso não tem como resolver, só usando variáveis o que é mais complexo.

Desculpa eu discordar, mas eu tava com esse mesmo problema quando tava fazendo com drag&drop. Depois de muito tentar, não sei como, conseguí fazer funcionar legal.
avatar
Allan Dennis

Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Cainã Ter 11 maio 2010, 18:18

Allan Dennis escreveu:
Cainã escreveu:Isso não tem como resolver, só usando variáveis o que é mais complexo.

Desculpa eu discordar, mas eu tava com esse mesmo problema quando tava fazendo com drag&drop. Depois de muito tentar, não sei como, conseguí fazer funcionar legal.

Bom, eu pelo menos nunca consegui. O meu método seria fazer por variáveis, apesar de não ser um método tão preciso.
Cainã
Cainã

Data de inscrição : 07/03/2010
Reputação : 1
Número de Mensagens : 1335
Prêmios : Como Criar Objetos com GML? 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

http://cai.na.tl/

Ir para o topo Ir para baixo

Como Criar Objetos com GML? Empty Re: Como Criar Objetos com GML?

Mensagem por Allan Dennis Sex 14 maio 2010, 21:47

Resolví cortando a parte do sprite que ficava encoberta pelo outro e dando um crop.
avatar
Allan Dennis

Data de inscrição : 28/04/2010
Reputação : 0
Número de Mensagens : 15
Prêmios : Como Criar Objetos com GML? 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 Objetos com GML? Empty Re: Como Criar Objetos com GML?

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