quinta-feira, 9 de julho de 2015

Trabalhando com JavaScript Object Notation (JSON)

Algumas propriedades de um jogo devem ser definidas de maneira que seja fácil trocar posteriormente. Por exemplo, a massa de um corpo no qual age uma força, coeficientes de atrito entre outras propriedades físicas. Isso porque não existe um valor "ideal" para tais características. E só há um jeito de descobrir a melhor massa, ou força, ou qualquer propriedade: testando.

Geralmente essas propriedades são utilizadas em vários lugares, então o ideal é armazená-las em um arquivo de configuração, de forma que até quem não viu o código (ou mesmo quem não entende de programação) possa alterá-las.


Existem alguns formatos de arquivo que permitem armazenar os dados, JSON e XML são os mais conhecidos. Utilizamos JSON porque tem vantagens para a gente: já é interpretado por JavaScript como um objeto (facilita manipulação), além de ser mais simples e elegante que XML.

Bom, o segundo argumento é um pouco pessoal, mas é mais fácil convencê-lo com exemplos :)

Este é um arquivo em JSON que contém informações da base (stronghold) de cada time:
{
    "bases" : [
        {
            "id" : 1,
            "name" : "A",
            "initialPos" : {"x": 120, "y": 1880},
            "color" : "0xff0000"
        },
 {
            "id" : 2,
            "name" : "B",
            "initialPos" : {"x": 1880, "y": 120},
            "color" : "0x0000ff"
        }
    ],

    "width": 360,
    "height" : 360,

    "maxHealth" : 600
}
E a mesma função em XML:
<bases>
    <base>
        <id>1</id>
        <name>A</name> 
        <color>0xff0000</color>    
        <initialPos>
            <x>120</x>   
            <x>1880</y>
        </initialPos>    
    </base>
    <base>
        <id>2</id>    
        <name>B</name>    
        <color>0xff0000</color>    
        <initialPos>
            <x>120</x>    
            <x>1880</y>
        </initialPos>    
    </base>
</bases>

<width>360</width>
<height>360</height>
<height>360</height>
<maxHealth>600</maxHealth>
É possível que exista uma forma melhor de escrever arquivos XML, mas acredito que consegui passar meu ponto. Até mais!

Nenhum comentário:

Postar um comentário