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


Tutorial - Strings no Game Maker

2 participantes

Ir para baixo

Tutorial - Strings no Game Maker Empty Tutorial - Strings no Game Maker

Mensagem por Igor KinGamer Qui 17 Nov 2011, 21:08

Nome: Strings no Game Maker
Descrição: Tutorial explanando o básico sobre strings no Game Maker
Nível de dificuldade: Iniciante
Requerimentos: Qualquer versão do GM


Introdução

Eu considero que há algumas coisas básicas que todos devem estudar, entender e aprender a usar antes de tentar criar jogos mais avançados. Entre elas, eu citaria:
* O que são e como se usam variáveis;
* O que são e qual é a diferença entre objetos e instâncias;
* Como funcionam as funções - o que são argumentos e o que significa "retornar um valor";
E assim vai. Posso acrescentar na lista acima as strings. Podem ser muito úteis, mas também podem causar bastante incômodo e perguntas aqui no fórum se você não entender como trabalhar com elas. Então, vamos lá!


Definição

Uma string é uma sequência de caracteres. Uma string é representada escrevendo-se os caracteres que a compõe entre aspas simples ou duplas, como em "string" ou 'string'. Eu usarei aspas duplas pois, em C/C++, duplas são usadas para strings, mas o GM dá a liberdade de usar qual quiser.


1 - Tipos de variável

Existem dois tipos de variável no GM: real e string. Para armazenar uma string em uma variável, não há nada de especial, nada de diferente em comparação com armazenar valores reais (numéricos).

nome = "José";
idade = 15;
cidade = "São Paulo";

Agora, as variáveis nome e cidade possuem, respectivamente, os valores "José" e "São Paulo" (strings), e a variável idade possui o valor 15 (real).


2 - Comparação

Strings podem ser comparadas, assim como valores reais, com os operadores ==, !=, >, <, >=, <= (igual, diferente, maior, menor, maior ou igual, menor ou igual). Porém, a comparação não envolve o tamanho da string, mas sim a ordem na tebela ASCII.

Tutorial - Strings no Game Maker 217px-ASCII_full.svg
Caracteres da tabela ASCII (do 33 ao 126)

* Letras maiúsculas são diferentes de minúsculas.
* Isso inclui os caracteres que não são letras, conforme a ordem na imagem.
* As letras acentuadas vêm após todos esses caracteres.

"A" < "B" < "C" < ... < "Z" < "[" < "\" < "]" < ... < "a" < "b" < "c" < ... < "Á" < ...

* Quando uma string é igual aos primeiros caracteres de outra, a mais longa é maior.

"strings" > "string"

* Strings só são iguais se são realmente idênticas.

"letra" == "letra", "Letra" != "letra" != "letra " (note o espaço)


// Comparação de reais
if (idade >= 18)
show_message("Você é maior de idade. Já pode ser preso!");
else
show_message("Você é menor de idade. Ainda não precisa votar!");

// Comparação de strings
if (nome == "João")
show_message("E aí, João!");
else
show_message("E aí... Ei, você não é o João!!!");

Você pode ver que estou comparando a string armazenada na variável nome com a string "João", assim como se comparam valores reais. No caso, como a variável nome possui a string "José", será mostrada a segunda mensagem.

if (nome >= "a")
show_message("Você escreveu seu nome com letra minúscula.");
else
show_message("Você escreveu seu nome com letra maiúscula.");

Se o nome começar com letra minúscula, será maior ou igual a "a" (ex.: "arnaldo") e a primeira mensagem será mostrada. Se começar com letra maiúscula (como é o caso, "José"), será menor que "a" e a segunda mensagem será mostrada.


3 - Pular uma linha

No meio de uma string, você pode pular uma linha usando o caractere "#" (jogo da velha):

show_message("Você é maior de idade.#Já pode ser preso!");

Isso mostrará na tela:

Você já é maior de idade.
Já pode ser preso!

Com exceção da file_text_write_string(), que escreve uma string num arquivo, funciona igualmente em qualquer outra função, como a draw_text(), desenhando a string em duas linhas.
Para que apareça o próprio caractere '#', e não pule uma linha, você deve usar "\#" (barra invertida + jogo da velha). Ex.: "Concurso \#001".


4 - Concatenação

Palavrinha estranha, não? Strings podem ser somadas (concatenadas).

sobrenome = "Manolo";
nome_completo = nome+" "+sobrenome;
show_message("Seu nome é: "+nome_completo+".#Sua cidade é: "+cidade+".");

Será mostrada na tela a mensagem:

Seu nome é: José Manolo.
Sua cidade é: São Paulo.

Atente para os espaços. Se eu não tivesse colocado o " " entre nome e sobrenome (nome+" "+sobrenome), nome_completo ficaria com o valor "JoséManolo", e não "José Manolo".


5 - De real para string

Para usar um número como se fosse string, você tem que transformá-lo em string. A função string() faz isso.

show_message("Sua idade é: "+string(idade)+".");

Será mostrado na tela:

Sua idade é: 15.

Assim, pode-se desenhar valores na tela, como a vida ou pontos.

draw_text(x, y, "Vida: "+string(vida)+"#Pontos: "+string(pontos));


6 - De string para real

Também é possível transformar strings em números reais, com a função real(). Talvez não seja muito importante para aplicações simples, mas vou aproveitar a oportunidade e falar de uma aplicação de strings em algo mais avançado, apoiando o que eu disse na introdução deste tutorial.

Imagine que você não gosta do editor de rooms do GM (talvez você não precise imaginar XD) e quer criar um editor de fases ou mapas para o seu jogo, que salve num formato próprio que será lido e interpretado pelo jogo. E agora, como fazer isso? Será que você terá que continuar usando o pobre editor de rooms do GM? Se você souber utilizar bem strings, não. (ufa!)

Eu não vou fazer um exemplo disso aqui, seria demorado e inconveniente, mas vou explicar. Você teria que:
* pensar em tudo que deveria ser guardado no arquivo para seu jogo ler depois - instâncias, posição e outras características delas que fossem necessárias;
* de algum modo, salvar tudo no arquivo - para salvar valores reais como a posição, teria que usar a função string;
* por último, na hora de o jogo ler o arquivo, usar as funções que lidam com strings para separar e utilizar os valores nele escritos. Aqui é que entra a função real(): Para que o jogo entendesse os valores numéricos lidos como strings do arquivo, esses teriam que ser transformados em reais.

Por exemplo, se você salvasse, em uma linha do arquivo, o nome de um objeto e a posição (x, y) em que uma instância dele seria criada, assim:

obj_Parede;64;32

Essa linha toda seria lida como uma string só, você teria que separá-la em três strings, retirando os ";" ("obj_Parede", "64" e "32") e transformar as duas últimas em reais para saber a posição da instância na hora de criá-la.


7 - Funções

Funções podem tanto receber strings como argumentos quanto retornar strings.

7.2 - Retornar
Um exemplo de função que retorna uma string é a get_string(). Ela pede uma string para o usuário/jogador, e a retorna. Então, você pode armazená-la numa variável.

seu_nome = get_string("Digite seu nome: ", "Anônimo");

7.1 - Receber como argumento
Acima, já usei algumas vezes a função show_message(), que recebe uma string como argumento e desenha-a numa janela de mensagem: show_message(string). string pode ser uma string (ex.: "Seu nome é: "), uma variável (ex.: nome_completo), o valor retornado por uma função (ex.: string(idade)) ou a junção de várias dessas, como visto no tópico 4.


Conclusão

Ao utilizar strings, um ponto importante é você ter bastante atenção. Tenha cuidado com espaços e pontuação ao concatenar strings. Não colocá-los pode dar uma aparência pouco profissional ao jogo. Uma aspa fora do lugar estraga tudo e pode ser difícil de encontrar!

Agora que você já terminou de ler este tutorial, você já deve estar capaz de usar as strings sem problemas, brincar com a concatenação de strings (e ainda aprendeu uma palavra nova! (ou não)), desenhar valores numa HUD, e quem sabe criar seus próprios formatos de arquivo. Leia no Help do GM sobre as funções que trabalham com strings para aprender mais.

Obs.: Antes de "me despedir", voltando ao assunto de que falei lá no início: se você não sabe bem, bem de verdade, alguma daquelas coisas que citei, aconselho que vá em busca de tutoriais sobre elas para aprender bem, bem de verdade. Eu ia colocar links sobre aqueles assuntos, mas também não posso dar tudo mastigado. Além disso, se colocasse os links lá, vocês não leriam este tutorial. Laughing

Enfim, boa sorte em suas criações, agora com pleno conhecimento sobre o básico das strings!


Créditos:
Tutorial totalmente redigido por mim, Igor KinGamer. Imagem dos caracteres pega da Wikipédia.


Última edição por Igor KinGamer em Qui 17 Nov 2011, 21:19, editado 1 vez(es)
Igor KinGamer
Igor KinGamer

Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios : Tutorial - Strings 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

Tutorial - Strings no Game Maker Empty Re: Tutorial - Strings no Game Maker

Mensagem por Ritton Qui 17 Nov 2011, 21:16

Excelente tutorial! Muito bem formatado e explicado! Gostei do modo que você aplicou seus conhecimentos em uma aula dinâmica e isso é bastante importante! Com certeza eu guardarei para mim todos esses conhecimentos e farei bom proveito! Permite eu colocar esse tutorial na minha Apostila de 1000 Tutoriais Aprovados de Game Maker?

Até mais e continue com o excelente trabalho! Happy
Ritton
Ritton

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 07/06/2011
Reputação : 2
Número de Mensagens : 673
Prêmios : Tutorial - Strings 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

Ir para o topo Ir para baixo

Tutorial - Strings no Game Maker Empty Re: Tutorial - Strings no Game Maker

Mensagem por Igor KinGamer Qui 17 Nov 2011, 21:22

Obrigado. Happy
Pode colocar, a vontade. Quanto mais gente puder ver esse tutorial, melhor. Very Happy
Igor KinGamer
Igor KinGamer

Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios : Tutorial - Strings 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

Tutorial - Strings no Game Maker Empty Re: Tutorial - Strings 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