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
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 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


Pegadinhas no Game Maker

4 participantes

Ir para baixo

Pegadinhas no Game Maker Empty Pegadinhas no Game Maker

Mensagem por Convidad Ter 17 Nov 2009, 23:13

O Sigiloso deu uma ideia bem legal sobre um "teste de Gml", como se fosse uma "provinha". Eu tomei a iniciativa e bolei umas questões bem legais. Algumas vão exigir mais raciocínio, outras, mais conhecimento...

Basta ter atenção. Se você não souber todas, responda somente o que sabe postando uma mensagem, daí você ajuda os amigos. Então respoda as perguntas abaixo e prove que você conhece pelo menos 1% da ferramenta. [Z¬)]

Na brincadeira, cada pergunta vale um ponto, totalizando dez. Vou postar as respostas em dois dias, pois, não sei se alguém quer arriscar e responder postando, sem editar.




"Pegadinhas" em GML



1) Considere a mensagem de erro abaixo:

ERROR in
action number 1
for object Pe-de-cabra:

Error in code at line 1
(Pe-de-cabra).x := 10

Por que ocorreu um erro quando definimos a variável x para o objeto "Pe-de-cabra"?





2) Há três variáveis constantes no Game Maker, que podem produzir um encapsulamento infinito. Em outras palavras, é possível buscar o valor dessa variável encapsulando o valor dela mesma. Cite pelo menos uma delas:





3) Em ordem sequencial, foram criadas as instâncias: Car, Player, Ammunition, Enemy, Ground e Boss. Considere seguintes valores de depth:

Código:
Car.depth := 100;
Player.depth := 30;
Ammunition.depth := floor(100.025);
Enemy.depth := abs(-1000);
Ground.depth := frac(200.15);
Boss.depth := random(30);

Considerando o depth de cada uma, qual instância está à frente das demais, nos casos:

a) Entre Boss, Car e Player.
b) Entre Enemy, Ammunition e Car.
c) Entre Ammunition, Ground e Enemy.





4) Para quê servem as funções set_automatic_draw() e screen_redraw()? Dê um exemplo.





5) Em determinado momento do jogo, uma das instâncias do objeto Inimigo adquire um item que incrementa sua energia, definida pela variável Energia. Há três instâncias do objeto Inimigo dentro da room. Seus id's são 100001, 100002 e 100003 e este objeto não possui Parent's.

O valor de Energia de cada um é:

Código:
(100001).Energia := 100;
(100002).Energia := 110;
(100003).Energia := 80;


Considere o código abaixo, no evento de colisão entre o objeto Inimigo e o item em questão:


Código:
Inimigo.Energia += 10;
a) Qual o valor de Energia em cada Inimigo, nesse caso?


Código:
other.object_index.Energia += 25;
b) Qual o valor de Energia em cada Inimigo, nesse caso?





6) Sobre encapsulamento de variáveis.

Considere os objetos e suas instâncias:

Objeto Car, com instâncias (100001) e (100002).
Objeto Player, com instâncias (100003) e (100004).
Objeto Enemy, com instâncias (100005) e (100006).

Considere as variáveis em cada instância:
Código:

(100001).Valor := 100005;
(100002).Valor := 100004;
(100003).Valor := 100002;
(100004).Valor := 100006;
(100005).Valor := 100003;
(100006).Valor := 100001;

Qual é o valor de cada retorno, nos casos abaixo:

a) Player.Valor.Valor.Valor.Valor
b) Car.Valor.Valor.Valor.Valor
c) instance_id[1].Valor.object_index.Valor





7) Para que serve a variável interna image_single? (Gm6, Gm6.1, Gm7) Dê um exemplo.

8 ) "object_name" (Gm6, Gm6.1, Gm7) é uma função ou uma variável? Dê um exemplo de como usá-la. Obs.: não confunda com object_get_name().

9) Para quê serve a função action_color()? (Gm6, Gm6.1, Gm7) Dê um exemplo de como usá-la.

10) Qual o seu time de futebol? (colher de chá, essa...)

Boa sorte!
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por vinians Qua 18 Nov 2009, 00:10

1) '-' nao é um identificador válido

2) Bom, self se refere a instancia que está executando, portanto seria um abstração do valor da própria variavel. Other tambem é um tipo de variavel desse tipo, asim como all usada em algumas construções interessantes.

3) a) Boss, pois random() sempre retorna um valor menor que o argumento.
b) Ammunition pois teria o mesmo depth que Car mais foi criado depois, Enemy estaria muito longe
c) Ground porque é a com depth menor.

4)
O GM usa um sistema chamado Double BUffer onde todos os desenhos são feitos primeiramente nesse buffer pra depois irem para tela. Quando chamamos screen_redraw() diretamente dizemos ao GM para chamar todos os eventos Draw dos objetos novamente, ao passo que screen_refresh() apenas joga o buffer para a memoria de video (tela). Quanto a funcao set_automatic_draw() se definido como false vc devera atualizar a tela por si mesmo chamando explicitamente as funções descritas acima.

5)
a) Todas teriam o valor 110. Para funcionar deveria usar with() que é como um tipo de "for each"

b) O objeto "other" tem que ser usado dentro de um contexto como em um evento de colisão ou com o comando with() neste caso daria erro.

6) Deu preguiça, desculpe!!!

7) Nos GM's mais antigos image_single servia pra vc fixar em uma subimage específica, fazendo com que as rotinas internas de frame do GM fossem temporariamente desativas, até que image_single fosse novamente setada para -1. Isso era legal pois preservava valor de image_index e image_speed.

8 É uma função interna do GM que retorna o nome de um objeto atraves de seu indice. Similar a object_get_name().

9) action_color() é a função interna do GM que é chamada quando vc utiliza o Drag n Drop do set_color().

10) flamengo![/b][i][/b]
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 : Pegadinhas no Game Maker 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

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por Convidad Qui 19 Nov 2009, 22:35

[8¬D] !!!! Show de bola vinians!

Tudo certinho, vou colocar só o que faltou: [Z¬)]

Na verdade, na questão 2, o raciocínio foi certíssimo. De fato, self, other e all contém o número id de instâncias, e portanto, poderiam ser encapsulados por outras variáveis, mas não por "eles mesmos". O que acontece, é que o GM reconhece isso como se fosse um statement (não é, mas na visão de montagem) e não como constantes.

No raciocínio, other.other, deveria se referir a instância em uma múltipla colisão (não achei termo melhor). Como other é other de self, então other.other deveria ser outra instância que colide com other de self. Mas infelizmente, isso retorna erro.

Neste caso, as constantes seriam: id, instance_id e object_index. Mas o raciocínio foi exato. Se as colocarmos nessa situação, o Game Maker retorna o que já é óbvio pra gente:

Código:

id.id.id.id.id.id.id
instance_id.instance_id.instance_id.instance_id
object_index.object_index.object_index.object_index.object_index

Na questão 6 tem uma "maldade". Normalmente, nesse caso, a gente age da mesma forma que a gente monta o código (é um raciocínio natural), e quando a gente faz a substituição uma por uma, acaba se confundindo. A melhor maneira, é contar quantas variávels "Valor" são pedidas e conferir na tabela. As respostas são:

a) 100001
b) 100004
c) 100002

Na questão 4, a resposta foi certíssima. Eu coloquei essa questão justamente pra postar um tutorial explicando como funciona:

https://gmbr.forumeiros.com/tutoriais-f9/screen-refresh-frameskip-e-doublebuffer-t4653.htm


Última edição por Capitão Commando em Sáb 21 Nov 2009, 02:01, editado 3 vez(es)
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por vinians Qui 19 Nov 2009, 23:01

Show de bola amigão. Eu estou fazendo tipo de um criador de jogos em delphi, e nele eu estou usando numeros negativos de instâncias para representar instancias especiais. Por exemplo (all) que afetaria todas as instancias seria definido como -1, (other) seria -2 e assim sucessivamente. Por isso eu achei que o Mark poderia ter usado esses números "magicos".
flw!
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 : Pegadinhas no Game Maker 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

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por Convidad Qui 19 Nov 2009, 23:06

vinians escreveu:Show de bola amigão. Eu estou fazendo tipo de um criador de jogos em delphi, e nele eu estou usando numeros negativos de instâncias para representar instancias especiais. Por exemplo (all) que afetaria todas as instancias seria definido como -1, (other) seria -2 e assim sucessivamente. Por isso eu achei que o Mark poderia ter usado esses números "magicos".
flw!

Legal heim vinians! Quando ele "sair do forno", não preciso nem dizer que eu quero ser o primeiro a usar! Quando eu baixo seus engines, na boa, eu fico impressionado!
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por vinians Sex 20 Nov 2009, 11:25

Capitão Commando escreveu:
vinians escreveu:Show de bola amigão. Eu estou fazendo tipo de um criador de jogos em delphi, e nele eu estou usando numeros negativos de instâncias para representar instancias especiais. Por exemplo (all) que afetaria todas as instancias seria definido como -1, (other) seria -2 e assim sucessivamente. Por isso eu achei que o Mark poderia ter usado esses números "magicos".
flw!

Legal heim vinians! Quando ele "sair do forno", não preciso nem dizer que eu quero ser o primeiro a usar! Quando eu baixo seus engines, na boa, eu fico impressionado!
Valeu cara Very Happy
Então, o que está mais me "engripando" no meu maker é a microlinguagem de Script que estou fazendo. A linguagem está pronta, mais acessar os objetos internos do maker com ela da um trabalhão e envolve muito utilização de ponteiros, mais esta dando certo, ja da até pra fazer pequenos jogos. Inicialmente eu estava fazendo uma engine em C com Allegro pra que o maker fosse multiplataforma e fizesse jogos para o Linux tambem, mais estava ficando muito complexo devido a diferença entre os 2 sistema, ai eu comecei a fazer novamente usando o Direct X com o Delphi. Nesse tipo de programa, em que voce tem que dar poder de programação ao usuario, a engine de script tem que ser muito rapida pra poder roda com um frame rate descente, por isso estou trabalhando muito na otimizacão da engine de script.
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 : Pegadinhas no Game Maker 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

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por Igor KinGamer Sex 20 Nov 2009, 15:26

vinians escreveu:Show de bola amigão. Eu estou fazendo tipo de um criador de jogos em delphi, e nele eu estou usando numeros negativos de instâncias para representar instancias especiais. Por exemplo (all) que afetaria todas as instancias seria definido como -1, (other) seria -2 e assim sucessivamente. Por isso eu achei que o Mark poderia ter usado esses números "magicos".
flw!

Se eu entendi bem, você está dizendo que ele não usou. Em verdade, self = -1, other = -2, all = -3 e noone = -4.

Se quiser fazer o teste...

show_message(string(self));
show_message(string(other));
show_message(string(all));
show_message(string(noone));

Se não foi isso que você quis dizer, esqueça o que você leu acima dos 5 tracinhos seguintes...

-----

Capitão Commando, as perguntas ficaram bem legais Very Happy
Só não respondo porque cheguei atrasado na prova (depois eu faço prova de 2ª chamada XD), já vi as respostas (não gosto de colar Evil or Very Mad), e também pelo motivo da resposta do vinians para a questão 6. XD

PS.: Minha resposta para a 10 é igual à do vinians Very Happy

T´+
Igor KinGamer
Igor KinGamer

Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios : Pegadinhas no Game Maker Empty

Medalhas x 0 Tutoriais x 1 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

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por Convidad Sex 20 Nov 2009, 22:39

vinians escreveu:Valeu cara Very Happy
Então, o que está mais me "engripando" no meu maker é a microlinguagem de Script que estou fazendo. A linguagem está pronta, mais acessar os objetos internos do maker com ela da um trabalhão e envolve muito utilização de ponteiros, mais esta dando certo, ja da até pra fazer pequenos jogos.

Boa sorte, vinians. Tomara que consiga e estou ansioso pra ver. Quando você termina-lo, ficaria legal se ele levasse o nome X-Creator. Daí teríamos um maker genuinamente brasileiro e com um site de suporte! (é só uma ideia)

Igor KinGamer escreveu:Se eu entendi bem, você está dizendo que ele não usou. Em verdade, self = -1, other = -2, all = -3 e noone = -4.

É verdade. Só que eu testei em colisões, e retornou erro, mas tudo bem. Mas eu não sabia disso! Muito legal Igor!
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por CPinheiro Sex 20 Nov 2009, 23:01

Vsf, Capitão. Muito decente isso. =O

Well.
Quando lí a primeira questão, a primeira coisa que me veio à cabeça foi "nossa, que coisa óbvia, vai ser fácil".
A questão 2 foi meio que um "choque" pra mim. Não pela dificuldade, mas pela diferença dela para a primeira questão. rs

Quanto ao resto, demorei um pouco pra responder, mas devagarinho consegui chegar as respostas. Depois vou corrigir com as respostas do Vinians.
As únicas questões que realmente não consegui fazer foram a 4 e a 9. ):

Mas você está de parabéns quanto ao texto em sí. Smile
Edit: tópico movido.
CPinheiro
CPinheiro

Data de inscrição : 01/06/2008
Reputação : 0
Número de Mensagens : 1015
Prêmios : Pegadinhas no Game Maker Empty

Medalhas x 0 Tutoriais x 1 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://supermariobrasileiro.blogspot.com

Ir para o topo Ir para baixo

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

Mensagem por Henrique_GJ Sáb 09 Jan 2010, 16:01

1 o nome só pode ter letras, numeros e _, não -

2 isso é grego?

3 O_O

4 vai se ferrar!!!!

5 tá doido!!!!

6 desisto

7 não fasso mínima idéia

8 função, acho

9 não fasso idéia

10 detesto futbol, nem me fala
Henrique_GJ
Henrique_GJ

Data de inscrição : 30/12/2009
Reputação : 4
Número de Mensagens : 1344
Prêmios : Pegadinhas no Game Maker 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

Pegadinhas no Game Maker Empty Re: Pegadinhas no Game Maker

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