Instâncias e objetos

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

Instâncias e objetos

Mensagem por PedroX em Sex 18 Nov 2011, 19:22

Introdução ao tutorial

Tema: Instâncias e objetos

Requerimentos:
Não há nenhum importante.

O que você irá aprender:
- O que são instâncias
- O que são objetos
- Diferenças entre os dois
- Manipular instâncias
- Manipular objetos




Teoria


Ilustração da forma de bolo:
Objetos são como a fôrma do bolo. Eles moldam o que acontecerá no jogo, mas você não tem como usá-los diretamente.
Instâncias são como bolos. Elas se parecem com a forma, são todas iguaizinhas, mas uma vez criadas, passam a se comportar individualmente, independentes umas das outras.

O que isso quer dizer?
Os objetos são os moldes para a criação das instâncias. Sem eles, o jogo não funcionaria. Muitas vezes eles possuem sprites, outras vezes texto, efeitos especiais, entre outros. Eles também podem ser invisiveis, realizando outras tarefas especiais.

Os objetos possuem eventos. Um evento acontece quando uma tecla/botão é pressionada ou solta, quando ocorre uma colisão de objetos, no inicio do jogo, no fim do jogo, no inicio da fase atual, no fim da fase atual, nos alarmes, na criação de uma instância.

Note que as sprites são imagens, que não podem fazer nada sozinhas. Elas representam o objeto, que possui os códigos necessários para o funcionamento das instâncias.

Em resumo, um objeto é o conjunto de códigos que as instâncias vão executar. As instâncias agem de acordo com os códigos do objeto, mas geralmente elas agem diferente, por que suas condições podem ser diferentes (elas podem estar perto de um objeto, podem ter levado um tiro e a outra não, etc). O objeto diz o que ela deve fazer ao levar um tiro, ela faz o que deve fazer, mas as outras que não levaram tiro vão fazer outra coisa.




Então note: o objeto não fica na fase (ele é puro código), já as instâncias ficam nas fases (não existem sem as fases) e agem de acordo com o seu objeto (código).

Para se trabalhar com os objetos, geralmente é usado o editor de objetos, mas também pode-se usar códigos para editar os objetos durante o jogo. Isso afetará todas as instâncias desse objeto.

Prática


Agora vamos aprender a manipular os objetos e as instâncias.

Objetos

object_set_sprite(object, sprite) - troca o sprite do objeto pelo sprite. Para ficar sem sprite, coloque -1.

object_set_solid(object, solido/não-sólido) - torna o objeto sólido (1) ou não (0).

object_set_visible(object, visivel/não-visivel) - o objeto fica visivel (1) ou não (0)

object_set_depth(object, depth) - o depth do objeto é trocado para -depth-.

object_set_persistent(object, persist/não-persist) - define o objeto como persistente (1) ou não (0)

object_set_mask(object, mask) - define a mascara do objeto como o sprite (mask).

object_set_parent(object, parent) - define o pai do objeto como o objeto parent.

Para se obter os dados em vez de definir, use o mesmo modelo, por exemplo:
object_get_solid()

object_add() - cria um objeto e retorna seu indice
object_delete(indice) - deleta o objeto com o indice
object_event_add(indice, evento, numero do evento, "codigo") - adiciona o "codigo" no evento do objeto
object_event_clear(indice, evento, numero do evento) - apaga o evento do objeto

Instâncias

instance_exists(objeto ou id da instância ou all) - retorna true se existe uma instância pelo menos daquele objeto na tela. Você pode colocar o id de uma instância ou all.
instance_number(objeto) - retorna o numero de instâncias daquele objeto na room
instance_position(x, y, objeto) - retorna o id da instância que está naquela posição
instance_nearest(x, y, objeto) - retorna o id da instância mais próxima daquela posição
instance_furthest(x, y, objeto) - retorna o id da instância mais longe daquela posição
instance_create(x, y, objeto) - cria uma instância do objeto na posição e retorna o id
instance_destroy() - destrói a instância que chamou esse evento. Mas se todas as instâncias possuem o mesmo código (objeto), como uma instância chamará e outras não? Simples, depende das condições em que ela está no jogo.
instance_change(objeto, perform) - troca a instância por uma instância do objeto indicado. Perform deve ser true caso você deseje que o Destroy e o Create sejam executados, ou false, caso contrário.
position_destroy(x, y) - destrói todas as instâncias que o seu sprite toca no ponto (x,y).

Este não é o fim do tutorial.
Quando for, eu edito aqui.
Aceito sugestões, criticas e duvidas.

Até mais!


Última edição por Pedrø em Sex 30 Dez 2011, 22:21, editado 5 vez(es)

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Instâncias e objetos

Mensagem por Clarux em Sex 18 Nov 2011, 19:32

Muito bom tutorial,..,como todos os seus
Tenho a certeza que vai ajudar muito pessoal! ;)

Clarux

Número de Mensagens : 58
Idade : 18
Data de inscrição : 09/08/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Instâncias e objetos

Mensagem por saim em Qua 28 Dez 2011, 11:49

instance_exists(objeto ou id da instância ou all) - retorna true se existe uma instância pelo menos daquele objeto na tela. Você pode colocar o id de uma instância ou all.
Você quis dizer "room"

Está excelente, mas acho que deveria usar um palavreado menos técnico. Quem vai ler e aproveitar o conteúdo são os novatos, então quanto mais simples for a explicação, mais utilidade vai ter o tutorial.
Não digo que você deva tirar nada. Toda informação ali é importante. Mas sugiro acrescentar aquela história de bolo e fôrma, pra explicar a diferença, antes de partir pra parte técnica. Se você não lembra,
história do bolo e fôrma:
Objetos são como a fôrma do bolo. Eles moldam o que acontecerá no jogo, mas você não tem como usá-los diretamente.
Instâncias são como bolos. Elas se parecem com a fôrma, são todas iguaizinhas, mas uma vez criadas, passam a se comportar individualmente, independentes umas das outras.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Instâncias e objetos

Mensagem por PedroX em Qua 28 Dez 2011, 12:07

Fiz uma pequena alteração no tutorial.
Parece que está mais simples agora.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Instâncias e objetos

Mensagem por Conteúdo patrocinado Hoje à(s) 00:09


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