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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» 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

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML

3 participantes

Ir para baixo

[Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML

Mensagem por dharrison Dom 12 Dez 2010, 14:49

ATENÇÃO: ESTA AULA FOI DESCONTINUADA, POIS A DOCUMENTAÇÃO EM PORTUGUES DO GAME MAKER 8 JÁ EXPLICA TODAS AS BUILT-IN FUNCTIONS. VOCÊ PODE BAIXÁ-LO NESTE TÓPICO

Boa tarde galerê!!

Venho aqui apresentar a vocês uma lista detalhada com as Built-in Functions mais usadas em GML. Não são todas, na verdade não é nem metade da Built-in Functions que existem no GM, mas é as que você mais vai usar.
Este tópico ainda está incompleto, porque realmente é muita coisa!
Mas to postando agora porque já pode ser bastante útil.


Lista Detalhada e Explicada das Built-in Functions mais usadas em GML


Objetivo: Entender para que servem várias Functions e saber como usá-las nos scripts de GML.
Dificuldade: Nenhuma, isso é um tópico de consulta.
Ferramenta: Esse tópico, é impossivel você guardar tudo isso de cabeça! auhasuhsauhsa


Todas as Funções descritas aqui são traduzidas do Arquivo de Ajuda (.pdf) do GM8, com uma explicação pessoal quando necessário.
Elas estão todas separadas por tipo, então sem mais delongas, vamos à lista:


Operações Trigonométricas e de Matrizes:
Caso você ainda não tenha concluido o 2º Ano do Ensino Médio, provavelmente não saberá usar essas funções.
abs(x) - *Retorna o valor Absoluto de 'x'.
sign(x) - Retorna o Sinal de 'x' (-1, 0 ou 1).
round(x) - Retorna 'x' arredondado para o número inteiro mais próximo (Ou seja, para baixo se o valor for de 'x'.1 a 'x'.4, ou para cima se o valor for de 'x'.5 a 'x'.9).
floor(x) - Retorna o "Floor" de 'x', isto é, 'x' é arredondado para baixo para um número inteiro.
ceil(x) - Retorna o "Ceiling" de 'x', isto é, 'x' é arredondado para cima para um número inteiro.
frac(x) - Retorna the fractional part of 'x', isto é, o valor a direita do ponto decimal. (ex: 0.75)
sqr(x) - Retorna o quadrado de 'x' ('x'*'x') ou (x²).
ln(x) - Retorna o Logarítimo (Log) natural de 'x'.
sin(x) - Retorna o Seno de 'x' (x em radianos).
cos(x) - Retorna o Cosseno de 'x' (x em radianos).
tan(x) - Retorna a Tangente de 'x' (x em radianos).
arcsin(x) - Retorna o Seno Inverso de 'x'.
arccos(x) - Retorna o Cosseno Inverso de 'x'.
arctan(x) - Retorna a Tangente Inversa de 'x'.
arctan2(y,x) - Calcula o arctan(Y/X), e retorna o ângulo no quadrante correto.
degtorad(x) - Converte Graus em Radianos.
radtodeg(x) - Converte Radianos em Graus.
point_distance(x1,y1,x2,y2) - Retorna a distância entre o ponto (x1,y1) e o ponto (x2,y2).
point_direction(x1,y1,x2,y2) - Retorna a direção do ponto (x1,y1) em relação ao ponto (x2,y2) em Graus.
lengthdir_x(len,dir) - Retorna o componente horizontal X do vetor determinado pela direção(dir) e o comprimento(len) indicados.
lengthdir_y(len,dir) - Retorna o componente vertical Y do vetor determinado pela direção(dir) e o comprimento(len) indicados.
( Deu  até vontade de estudar mais matética depois de ver isso Razz)
*Sobre valores Absolutos, veja http://pt.wikipedia.org/wiki/Valor_absoluto


Operações Randômicas com Números Reais
random(x) - Retorna um número real entre 0 and 'x'. O número retornado é sempre menor que 'x'.
random_range(x1,x2) - Retorna um número real randômico entre 'x1' e 'x2' (Os valores de 'x1' e 'x2' são incluidos no resultado).
irandom(x) - Retorna um número inteiro randômico entre 0 and 'x' (inclusive quando 'x' é um número inteiro).
irandom_range(x1,x2) - Retorna um número real randômico entre 'x1' e 'x2', ambos valores devem ser números inteiros, caso contrário eles são arredondados para baixo. (Novamente, os valores de 'x1' e 'x2' são incluidos no resultado).


Funções de Controle e Definição de Movimentos
motion_set(dir,speed) - Configura movimento com a Direção(dir) e Velocidade(speed) especificados.
motion_add(dir,speed) - Adiciona o movimento com a nova direção e velocidade, ao movimento atual como uma adição de vetor (ou seja, usando essa função você define novas coordenadas em certo ponto para o comando anterior 'motion_set').
place_free(x,y) - Retorna se a instância nas coordenadas (x,y) está livre de colisões ou não. Isto tipicamente é usado para fazer uma checagem antes que a instância atinja a nova posição (em outras palavras ela pára antes de chegar na posição (x,y) se não estiver livre o caminho).
place_empty(x,y) - Retorna se a instância nas coordenadas (x,y) está encontrando qualquer outra ou não. Funciona como a função anterior, mas também inclui objetos não-sólidos nos calculos.
place_meeting(x,y,obj) - Retorna se a instância nas coordenada (x,y) está encontrando o objeto 'obj'. Em cada caso a função retorna TRUE se o objeto é econtrado, para 'obj' pode ser usado o nome de um objeto, sua id, a Constant especial ALL (Todos) significando ser qualquer objeto, ou a Constant especial OTHER.
move_wrap(hor,vert,margin) - "Teleporta" a instância quando ela deixa a Room para o lado oposto. Por exemplo se a instância está indo para a direita, quando chega no fim da Room ela surgirá do outro lado novamento. 'hor' indica a posição horizontal em que ela será "teleportada" e 'vert' a posição vertical. 'margin' indica o quão longe a instância sairá da room antes de ser movida para o outro lado (Em outra palavras, é a margem envolta da Room). Essa função geralmente é usada no Evento Outside Room.
move_towards_point(x,y,sp) - Move a instância com velocidade 'sp' até a posição (x,y).
move_bounce_solid(adv) - "Bounce" (PT: Quicar) contra instâncias sólidas, como o respectivo Drag&Drop. 'adv' indica se deseja quicar antecedência (Antes de "X" Colisão), que também leva em conta paredes inclinadas.
move_bounce_all(adv) - Como move_bounce_solid, mas quica contra todas as instâncias, e não apenas as sólidas.
move_contact_solid(dir,maxdist) - Move a instância na direção(dir) até encontrar o ponto de contato com um objeto sólido. Se não houver nenhuma Colisão na posição, a instância pára exatamente antes da Collisão ocorrer. No entanto se há estiver colidindo a instância não poderá ser movida. Você pode especificar a distância máxima(maxdist) para se mover (use um número negativo para uma distância arbitrária).
move_contact_all(dir,maxdist) - Como a anterior mas a instância pára em contato com qualquer objeto e não apenas os sólidos.
move_outside_solid(dir,maxdist) - Move a instância na Direção(dir) até que não esteja mais em contato com um objeto sólido. Se não houver colisão na posição atual a instância não e movida. Você pode especificar a distância máxima(maxdist) para se mover (use um número negativo para uma distância arbitrária).
move_outside_all(dir,maxdist) - Como a função anterior mais a instância é movida até que não esteja em contato com qualquer que seja o objeto, não importando ser ele sólido ou não.
distance_to_point(x,y) - Calcula e retorna a distância da "bounding box" (caixa de colisão) da instância atual para (x,y). (Se a instância não tiver um sprite ou uma mask, o resultado da função não é definido).
distance_to_object(obj) - Calcula e retorna a distância da instância atual para o objeto(obj), ou a instância mais próxima do objeto(obj), caso haja mais de um do mesmo objeto. (Se a instância ou objeto não tiver um sprite ou uma mask, o resultado da função não é definido).
position_empty(x,y) - Retorna se a posição (x,y) está vazia.
position_meeting(x,y,obj) - Retorna se na posição (x,y) há alguma instância do 'obj'. O 'obj' neste calculo pode ser um objeto, uma instância do objeto, a id de uma instância, ou uma das Constants especiais, SELF, OTHER ou ALL.


Checagem de Colisões
Quando se planeja movimentos ou certas ações é essencial definir se há ou não colisões em certos pontos. As funções a seguir são usadas para isso. É imporantante destacar que todas ela tem os seguintes argumentos em comum:
OBJ - Esse argumento pode ser um objeto, a id de uma instância, ou a Constant ALL.
PREC - Esse argumento indica se a checagem deve ser Precise (PT: Precisa) ou apenas baseada na Bounding Box da instância. A checagem precisa só é feita quando o sprite da instância tem a caixa "Precise Collision Check" marcada.
NOTME - Esse argumento pode ser definido como TRUE para indicar que a instância que faz a chamada (ou seja, a que contém essa função nos seus códigos) não estará incluida no calculo de colisão. (Ela vai ser café-com-leite, ficar de fora).
Todas funções retornam a id de um dos objetos que colidem, ou então elas retorna uma valor negativo se não houver colisão.
collision_point(x,y,obj,prec,notme) - Essa função testa se no ponto (x,y) há uma colisão com entidades com o objeto 'obj'.
collision_rectangle(x1,y1,x2,y2,obj,prec,notme) - Esta função testa se há uma colisão do Retângulo (preenchido)* com as curvas opostas e entidades indicadas do objeto 'obj'. Por exemplo, você pode usar isso para testar se a área a frente do objeto Player está livre de obstáculos.
collision_circle(xc,yc,radius,obj,prec,notme) - Esta função testa se há uma colisão do Círculo (preenchido)* centralizado na posição (xc,yc) com o raio e entidades do objeto 'obj'. Por exemplo, você pode usar isso para testar se um objeto está próximo a uma localização em particular.
collision_ellipse(x1,y1,x2,y2,obj,prec,notme) - Esta função testa se há uma colisão da Elipse (preenchida)* com as curvas opostas e entidades indicadas do objeto 'obj'.
collision_line(x1,y1,x2,y2,obj,prec,notme) - Essa função testa se há uma colisão do segmento da linha (x1,y1) até (x2,y2) com entidades do objeto 'obj'. Essa é uma função poderosa, por exemplo, você pode testar se um Inimigo é capaz de ver o Player, colocando uma collision line (linha de colisão), na frente do obj Inimigo. Assim quando o Player sair de trás do obj Parede o Inimigo poderá vê-lo.


Funções que trabalham com Scripts:
Scripts não podem ser alturados durante a execução do jogo, eles são parte da lógica do jogo.
Modificar Scripts por meios de "auto-reescrever-se" pode levar facilmente a erros. Então há outros modos de fazer isso, se você realmente precisa executar um código que não está conhecido até o momento, por exemplo, de um arquivo exterior, você poder usar as seguintes funções:

execute_string(str,arg0,arg1,...) - Executa um código da String 'str' (Frase) com os argumentos declarados.
execute_file(fname,arg0,arg1,...) - Executa um código do arquivo indicado (fname) com os argumentos indicados.

Ás vezes você quer guardar a nome de uma Script (script index) em uma variavel e executá-lo a partir dela. Para isso use a seguinte função:
script_execute(scr,arg0,arg1,...) - Executa o Script 'scr' com os argumentos indicados.

Outras funções de Scripts:
script_exists(ind) - Retorna se o Script com o nome(ind) indicado existe ou não.
script_get_name(ind) - Retorna o nome do script com o index(ind) indicado.
script_get_text(ind) - Retorna o texto String do Script(ind) indicado.


Funções Referentes ao Teclado e Mouse:
Verificação de Teclas
keyboard_lastkey - [Variavel] Verifica ou Retorna o código (Constant) da ultima Tecla Pressionada. Veja o EXTRA 1 pra ver as Constants do Teclado. (No meu Tutorial "Criando um Pause Personalizado" usei essa função).
keyboard_key - [Variavel] Verifica ou Retorna o código (Constant) da tecla atualmente pressionada. (Coloque 0 se não houver nenhuma).
keyboard_lastchar - [Variavel] Último caractere pressionado (Como uma String).

Mapeamento do Teclado
keyboard_set_map(key1,key2) - Mapeia a Tecla da Constant key1, para a Constant key2.  Por exemplo: keyboard_set_map(vk_right,vk_left), assim você troca a tecla seta direita para a tecla seta esquerda. Num jogo isso faria aquele efeito do Donkey Kong Country 3, onde há uma fase que as direções do controla ficam todas invertidas.
keyboard_get_map(key) - Retorna o Mapeamento Atual da Tecla.
keyboard_unset_map() - Reseta todo mapeamento das Teclas para o estado original do Teclado.

Verificação de Ações do Usuário (Mouse)
keyboard_check(key) - Retorna se a Tecla com a Constant especificada está pressionada ou não. (Se você usou keyboard_set_map, use a Constant e não a Tecla que ela 'deveria ser').
keyboard_check_pressed(key) - Retorna se a Tecla com a Constant especificada foi pressionada desde o último step.
keyboard_check_released(key)  - Retorna se a Tecla com a Constant especificada foi solta desde o último step.
keyboard_check_direct(key) - Retorna se a Tecla com a Constant especificada foi pressionada checando diretamente o Hardware (e não as Constants). O resultado é independente de para qual aplicação está focado. Isso possibilita muitas outras checagens, e para essa função em particular você pode usar as Constants vk_lshift, vk_lcontrol, vk_lalt, vk_rshift, vk_rcontrol e vk_ralt para checar se as teclas alt, control e shift, direita ou esquerda, estão pressionadas.

Verificação de Ações do Mouse
mouse_x* - [Variavel] Coordenada X do Mouse na Room. Não pode ser modificado.
mouse_y* - [Variavel] Coordenada Y do Mouse na Room. Não pode ser modificado.
mouse_button - [Variavel] O Botão atualmente pressionado do Mouse. Como valor use: mb_none, mb_any,
mb_left, mb_middle, ou mb_right. (nenhum, qualquer, esquerdo, meio, direito. Respectivamente.)
mouse_lastbutton - [Variavel] Último botão pressionado do mouse.

Verificação de Ações do Usuário (Mouse)
mouse_check_button(numb) - Retorna se o botão (numb) do mouse está pressionado ou não. (Como valor use: mb_none, mb_any, mb_left, mb_middle, ou mb_right. Nenhum, qualquer, esquerdo, meio, direito. Respectivamente).
mouse_check_button_pressed(numb) - Retorna se o Botão do Mouse especificado foi pressionado desde o último step.
mouse_check_button_released(numb) - Retorna se o Botão do Mouse especificado foi solto desde o último step.

Funções Referentes a "Rodinha" do Mouse
mouse_wheel_up() - Retorna se a Roda do Mouse foi movida para cima desde o ultimo step.
mouse_wheel_down() - Retorna se a Roda do Mouse foi movida para baixo desde o ultimo step.

Controladores do Estado do Teclado e Mouse
keyboard_key_press(key) - Simula que a Tecla com a Constant indicada foi pressionada. (Ou seja, o GM 'pressiona' a tecla, e não o Usuário).
keyboard_key_release(key) - Simula que a Tecla com a Constant indicada foi solta. (Ou seja, o GM 'solta' a tecla, e não o Usuário).
keyboard_clear(key) - Limpa o estado da Tecla. Isso significa que ela não vai mais gerar Eventos baseados no Teclado enquanto não começar a repetir novamente.
keyboard_wait() - O Teclado fica em espera (congelado) até que Usuário pressione a Tecla () no Teclado.
mouse_clear(button) - Limpa o estado da Botão do Mouse (button). Isso significa que ele não vai mais gerar Eventos baseados no Mouse enquanto o usuário não soltá-lo e clicar novamente.
mouse_wait() - O Mouse fica em espera (congelado) até que Usuário pressione algum botão do mouse.
io_clear() - Limpa todos estados do Teclado e Mouse.
io_handle() - Mantém a 'io' do Usuário, atualizando os estados do Teclado e Mouse.


Isso até agora é mais ou menos 1/3 do total de Functions que vamos apresentar aqui nesse tópico. As seguir uma lista das que ainda vamos traduzir e trazer para vocês (sujeito a mudanças):

[/color]
Spoiler:


Espero que estejam gostando!
E Aguardem as atualizações! ;)

Abraços
DHarrison


------------------------------------------
O Curso:
° - Aula 1 (Parte 1) - Entendendo o Funcionamento do GML (O Básico)
° - Aula 1 (Parte 2) - Entendendo o Funcionamento do GML (As Estruturas do GML)
° - Aula 2 - Variáveis Locais, Globais, Arrays e Built-in Variables
° - Aula 3 - As Declarações IF, IF/ELSE e SWITCH
° - Aula 4 - A Declaração WITH
° - Aula 5 - A Declaração FOR

Aulas Complementares e Extras (Descontinuadas, pois já existe a Documentação Traduzida do Game Maker no fórum):

° - Extra 1 - Lista Completa e Explicada de Built-in Variables e Visão Geral sobre Constants
° - Extra 2 - Lista Detalhada e Explicada das Built-in Functions mais usadas em GML


Última edição por dharrison em Seg 05 maio 2014, 11:52, editado 5 vez(es) (Motivo da edição : correções e modificações)
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • C#


Ir para o topo Ir para baixo

[Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty Re: [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML

Mensagem por Vikintor Dom 12 Dez 2010, 14:54

Muito bom.
É como consultar uma parte do help do GM.Porem em português.
Foi ótimo ter compartilhado conosco Very Happy
Vikintor
Vikintor

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 28/03/2010
Reputação : 17
Número de Mensagens : 901
Prêmios : [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em 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

[Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty Re: [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML

Mensagem por Mr.Rafael Dom 12 Dez 2010, 15:13

Como o outro tutorial, está muito bom. Mas a lista de códigos tá bem grandinha, hein? Shocked

Estou criando um jogo simples usando GML, seguindo teus tutos. Eu estou empacado em algumas coisas (pressionar e soltar uma tecla, ele continua indo como se ainda tivesse apertada), mas isso não vem ao caso .-.

O que importa é que seu tutorial está bem completo, espero que ajude muita gente Very Happy

o/
Mr.Rafael
Mr.Rafael

Games Ranking : Nota A

Notas recebidas : A-C-B-A-A
Data de inscrição : 05/10/2010
Reputação : 94
Número de Mensagens : 502
Prêmios : [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 3

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

Ir para o topo Ir para baixo

[Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty Re: [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML

Mensagem por dharrison Dom 12 Dez 2010, 15:21

Victor_follador

Fico feliz que tenha gostado!! Feliz
Eu decidi compartilhar agora mesmo antes de estar pronto porque achei que ja estava com um bom conteudo.


Mr.Rafael
Realmente, e pode ser que aumente mais ainda husauhashu
Mas o que importa eh que vai ajudar a GMBR ;)

Bom meus tutos são para entender a lógica do GML, e não para criar jogos especificamente. Você poderia procurar tutorias de criação de jogos que use as mesmas funções que voc~e está usando no seu jogo.

E qualquer coisa manda uma MP que te dou uma força ;)


Abraços
DHarrison
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • C#


Ir para o topo Ir para baixo

[Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em GML Empty Re: [Curso de GML] Extra 2: Lista Detalhada e Explicada das Built-in Functions mais usadas em 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