Série de tutoriais que o ensinam a programar em RGSS e RGSS2.
Feitos por LB - Reino RPG.
Créditos totalmente a ele.
Teoria
-------------------------------------------------------------------
Variáveis - Parte 2
Transformação de tipo de valor:Como vimos na aula anterior os valores que um variável pode assumir tem uma classificação. Essa classificação pode ser modificada, podemos alterar o tipo de valor. Para isso são usados os comandos:
Dessa forma muda-se o tipo. Veja os exemplos:
- Código:
-
a = 5
# Lembre-se que 1 é diferente de “1”.
c = a.to_s
# a.to_s
# a.to_string
# a.para_texto
c = “5”
c = a.to_s
Explicando:
O valor de ‘C’ é igual ao valor textual de ‘A’.
Se quiser, experimente:
- Código:
-
a = 86
p a.to_s
Agora o outro:
- Código:
-
b = “10”
c = b.to_i
# b.to_i
# b.to_inter
# b.para_inteiro
c = 10
c = b.to_s
Explicando:
O valor de ‘C’ é igual ao valor numérico de ‘B’.
Dessa forma podemos alterar o tipo de valor da variável. Isso é útil quando criarmos janelas, nas quais não é possível escrever números, apenas texto, assim temos que transformar. Também pode ser usado para efetuar cálculos com strings.
Matriz:Matriz (ou arry em inglês) é como se fosse uma lista de valores, é uma variável que contem o valor de infinitas variáveis. Esse tipo de variável é muito usado para configurações de scripts ou para guardar informações sobre algo que não se sabe a quantidade. Uma matriz é organizada da seguinte forma:
- Código:
-
a = [ 0 , 1 , 2 , 3 , 4 , 5 , “...” ]
Elas podem conter mais de um tipo de valor, pode ser uma grande mistura de tipos de valores:
- Código:
-
b = [ 58 , “Oi!” , true , 14.586 , “aaabbbccc” , 25 , “85” ]
Nessa lista, cada valor de um “nome”, uma forma de se localizar. Nesse tipo de matriz (são dois), a numeração ocorre com números de zero até ...
Para localizar um valor em particular, utiliza-se os colchetes, dessa forma:
- Código:
-
c = [ 85 , “Oi” , 11 , true ]
c[0] = 85
c[1] = “Oi”
c[2] = 11
c[3] = true
Repare que a contagem sempre começa do zero. Podemos também mudar o valor dessa forma. Alem disso existe um outro comando de retorna a quantidade de “casas” da matriz.
- Código:
-
c = []
c[0] = 50
c[1] = 100
c[2] = 150
c = [ 50 , 100 , 150 ]
c[3] = c.size
c = [ 50 , 100 , 150 , 3]
Explicando…:
Na primeira linha defini-se que a variável ‘C’ é uma matriz, a qual não ter nenhum valor. Depois coloca-se valores na matriz, ficando como a quinta linha. Depois coloca que a quarta “casa” vai ter o valor igual a quantidade de valores da matriz. Como no momento em que o comando foi usado a matriz tinha três valores, então a quarta casa vai ter como valor o número três. Repare em algumas formulas interessantes:
- Código:
-
d = [ 5 , 885 , 15 ]
d[d.size-1] = 15
# (var.size - 1) sempre significa o ultimo termo da matriz, assim encontra-se o ultimo numa matriz em que não se sabe o tamanho.
d[d.size] = 50
d = [ 5 , 885 , 15 , 50 ]
# (var.size) é o termo depois do ultimo. Assim acrescenta-se mais um termo na matriz, um depois do ultimo.
Valor ‘nada’:Esse é um valor especial que uma variável pode assumir, seria ‘nada’, uma variável vazia, sem valor algum. Ele não permite nenhum tipo de calculo. Ex:
- Código:
-
a = 55
p a
a = nil
p a
a += 5
# Aqui acontece um erro...
Esse valor é o (nil). Pode ser usado em matrizes também, veja o exemplo:
- Código:
-
b = []
b[5] = 0
b = [ nil , nil , nil , nil , nil , 0 ]
Como você não definiu os valores antes de sexto, ele ficam como nada, nil.
Isso também acontece se você usar o comando print com um valor que não existe.
Matriz avançada:Nesse tipo de matriz a única diferença é que você pode escolher o “nome” das “casas”. Pode colocar até mesmo texto. Olhe o exemplo:
- Código:
-
a = {
# Repare que agora são usadas chaves ( { } ), não colchetes ( [ ] ).
“HP1” => 50 ,
“MP1” => 100 ,
778 => “Oi” ,
44444 => 22
}
# Lembre-se de fechar as chaves e de colocar vírgulas depois dos valores (exceto o ultimo)
a[“HP1”] = 50
a[“MP1”] = 100
a[778] = “Oi”
a[44444] = 22
a.size = 4
Essa é a única mudança de um tipo para o outro.
Matriz dentro de Matriz:Se o valor de uma variável pode ser uma matriz, sendo matriz como um conjunto de variáveis, porque uma dessas variável não pode ser uma matriz também? Isso é possível. Olhe o exemplo:
- Código:
-
a = [ 5 , [ 88 , “Oi” ] , 66 ]
# Repare que o segundo valor é outra matriz. Olhe como é feita a organização:
a[0] = 5
a[1] = [ 88 , “Oi” ]
a[2] = 66
a.size = 3
a[1][0] = 88
a[1][1] = “Oi”
a[1].size = 2
Praticamente nada muda. Podem existir matrizes gigantescas, em que o conteúdo é outra matriz, que é outra matriz, que é outra matriz, que...
Dessa forma pode-se arquivar qualquer tipo de valor, por maior que seja. Aqui termina as aulas teóricas sobre variáveis. Nada a mais tenho para ensinar a você, isso é todo o conteúdo que conheço sobre variáveis, excerto por este:
Pratica
-------------------------------------------------------------------
Variáveis - Parte 2
Strings Avançadas:As Strings são conjunto de caracteres. No computador cada caractere tem um número. Experimente apertar Alt e depois pressionar números no teclado? Como por exemplo 65. O resultado é “A”. (Pode variar de acordo com a fonte usada.) Pode experimentar, qualquer caractere que existe pode ser colocado dessa forma. (Abra o Mapa de Caracteres do Windows para mais informações.) Nas Strings não é diferente. Sendo que cada letra significa um número, podemos transformar essa string em uma matriz. Olhe o exemplo:
- Código:
-
a = “ABCD”
a[2] = 69
a = “ABED”
Mudou-se o valor de uma letra usando uma propriedade das matrizes. Esse é o único método de alterar uma letra no meio de uma string sem reescrever-la. O comando (var.size) também funciona nas strings, retorna o número de letras. Muito útil para fazer cálculos do espaço que um texto vai ocupar.
- Código:
-
a = “Oi! Tudo bem?”
a.size = 13
# Não é o número de letras, é o número de caracteres.
Nem todas as propriedades das matrizes funcionam. Não é possível acrescentar um caractere a um texto. Ex:
- Código:
-
a = "aaa"
a[3] = 65
# Erro! Não tem nenhum caractere na posição três, então não da pra colocar nada lá.
Bem... Essa aula ficou um pouco maior que a anterior, mas acho que valeu apena. Espero que tenham compriendido todo o conteúdo dela. Duvidas? Postem! ;D
Scripts RGSS2 for RPG Maker VX by LB is licensed under a
Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
Permissions beyond the scope of this license may be available at ReinoRPG.com