Duvida draw string

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

100% Duvida draw string

Mensagem por eubruno em Ter 15 Nov 2011, 13:24

bom eu comecei a usar o game maker ha algum tempo e me deparei com um problema.

e muitos casos de barra de vida dialogos ou muitas outras coisas se usam o draw para fazer, eu geralmente usava sprites para tudo pq acho o draw muito complicado, então resolvi aprender draw pesquisei em muitos tópicos que usavam esse tipo de evento inclusive um que ensinava a fazer formas geométricas muito bom por sinal agradeço o autor que fez esse tópico não me lembro o nome do usuário mas valew ai.

aprendi um pouco mais sobre draw mas me deparei com um problema, o string.

fui na ajuda do game maker mas lá só dizia as funções que usavam string, e não, a lógica do string.

então como funciona a lógica do string?

agradeço desde já.


Última edição por eubruno em Ter 15 Nov 2011, 22:59, editado 1 vez(es)

eubruno

Número de Mensagens : 27
Idade : 20
Data de inscrição : 06/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

100% Re: Duvida draw string

Mensagem por Igor KinGamer em Ter 15 Nov 2011, 15:30

Vou fazer um tutorial, espero que sirva pra você e qualquer outro que não entenda bem como funcionam as strings.


Definição:
Uma string é uma sequência de caracteres. Para representar uma string, você deve escrever entre aspas (simples ou duplas), como em "String" ou 'string' (eu prefiro duplas, pois em C/C++, duplas são usadas para strings).


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):
Código:
nome = "José";
idade = 15;
cidade = "SP";
Agora, as variáveis nome e cidade possuem, respectivamente, os valores "José" e "SP" (strings), e a variável idade possui o valor 15 (real).


2 - Comparação: Strings podem ser comparadas, assim como valores reais:

2.1 - Igualdade:
Código:
// Comparação de reais
if (idade >= 18)
show_message("Você já é maior de idade. Já pode ser preso!");
else
show_message("Você é menor de idade. Ainda está livre de 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.

2.2 - Diferença:
A comparação com >, <, >=, <= (maior, menor, maior ou igual, menor ou igual) não envolve o tamanho da string, mas a ordem na tebela ASCII:


Caracteres da tabela ASCII (do 33 ao 126)

Letras maiúsculas são diferentes de minúsculas.
Portanto: 'A' < 'B' < 'C' < ... < 'Z' < 'a' < 'b' < 'c' < ... (isso inclui os caracteres que não são letras, conforme a ordem na imagem).
Código:
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: Dentro de uma string, você pode pular uma linha usando o caractere '#' (jogo da velha):
Código:
show_message("Você já é maior de idade.#Já pode ser preso!");
Isso mostrará na tela:
Código:
Você já é maior de idade.
Já pode ser preso!
Igualmente, funciona com a função draw_text() (desenhará 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):
Código:
sobrenome = "Manolo";
nome_completo = nome+" "+sobrenome;
show_message("Seu nome é: "+nome_completo+".#Sua cidade é: "+cidade+".");
Será mostrada na tela a mensagem:
Código:
Seu nome é: José Manolo.
Sua cidade é: SP.
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.
Código:
show_message("Sua idade é: "+string(idade)+".");
Será mostrado na tela:
Código:
Sua idade é: 15.
Isso é útil para desenhar valores na tela, como a vida ou pontos.


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

6.1 - Receber como argumento: Acima, já usei algumas vezes a função show_message(), que recebe uma string como argumento e desenha-a na tela: show_message(string). string pode ser uma string ("Seu nome é: "), uma variável (nome_completo), ou a junção de várias dessas.

6.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 string.
Código:
seu_nome = get_string("Digite seu nome: ", "Anônimo");


É isso. Agora, está pronto de verdade. Se não entendeu alguma coisa, é só perguntar.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

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