sBotics Wiki

Tutorial do Simulador usado pela OBR

Ferramentas do usuário

Ferramentas do site


editor_de_ladrilhos

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
editor_de_ladrilhos [2025/04/02 18:49] admineditor_de_ladrilhos [2025/04/15 16:34] (atual) – edição externa 127.0.0.1
Linha 1: Linha 1:
 ====== Editor de Ladrilhos ====== ====== Editor de Ladrilhos ======
  
-No sBotics, o editor de ladrilhos oferece a capacidade de personalizar cada ladrilho da arena, permitindo um controle minucioso sobre o ambiente de simulação. Cada ladrilho possui um conjunto de configurações padrão, que podem ser ajustadas para criar cenários únicos e desafiadores.+No sBotics, o editor de ladrilhos oferece a capacidade de personalizar cada ladrilho da arena, permitindo um controle minucioso sobre o ambiente de simulação. Além disso, é possível importar e exportar ladrilhos para arquivos ''sTiles'' ou ''json'', para utilizar em outras arenas. Cada ladrilho possui um conjunto de configurações padrão, que podem ser ajustadas para criar cenários únicos e desafiadores.
  
-As configurações padrão de um ladrilho são representadas em formato JSON, conforme o exemplo abaixo:+{{ editor-ladrilhos.png?750 }}
  
 +As configurações padrão de um ladrilho são representadas em formato ''JSON'', conforme o exemplo abaixo:
 +
 +==== Dados Básicos: ====
 <code javascript> <code javascript>
-{ 
 "image": "https://cdn.sbotics.net/connector?_token=wdwMzUKdhGpNJIO6QRcFSKbCIh4RyDEa5LzDsYAw&cmd=file&target=fls2_VGlsZXMvc3RyYWlnaHQtbGluZS5wbmc", // Imagem do ladrilho "image": "https://cdn.sbotics.net/connector?_token=wdwMzUKdhGpNJIO6QRcFSKbCIh4RyDEa5LzDsYAw&cmd=file&target=fls2_VGlsZXMvc3RyYWlnaHQtbGluZS5wbmc", // Imagem do ladrilho
 "markable": false, // Permite checkpoints manuais (depreciado) "markable": false, // Permite checkpoints manuais (depreciado)
Linha 13: Linha 15:
 "is_endgoal": false, // Indica se o ladrilho é o objetivo final "is_endgoal": false, // Indica se o ladrilho é o objetivo final
 "rescue_zone": false, // Indica se o ladrilho faz parte de uma sala de resgate "rescue_zone": false, // Indica se o ladrilho faz parte de uma sala de resgate
-"exits": { // Configurações de saídas do ladrilho +"enter_score":... }, 
-"side_a": "exit_A", +"exit_score":... },
-"side_b": "blocked", +
-"side_A": "exit_a", +
-"side_B": "blocked" +
-}, +
-"enter_score":// Pontuação ao entrar no ladrilho pela primeira vez +
-"points": 0, +
-"multiplier": 1, +
-"attempt_points": [], +
-"attempt_multipliers": [] +
-}, +
-"exit_score":// Pontuação ao sair do ladrilho pela primeira vez +
-"points": 0, +
-"multiplier": 1, +
-"attempt_points": [], +
-"attempt_multipliers": [] +
-},+
 "random_type": "none" // Tipo de aleatorização (none, straight, curve) "random_type": "none" // Tipo de aleatorização (none, straight, curve)
-} 
 </code> </code>
  
-"image": URL da imagem do ladrilho. +  * ''"image"'': URL da imagem do ladrilho. 
-"markable": Permite a criação de checkpoints manuais (depreciado). +  * ''"markable"'': Permite a criação de checkpoints manuais (depreciado). 
-"has_checkpoint": Indica se o ladrilho possui um checkpoint. +  * ''"has_checkpoint"'': Indica se o ladrilho possui um checkpoint. 
-"is_ramp": Indica se o ladrilho é uma rampa/inclinado. +  * ''"is_ramp"'': Indica se o ladrilho é uma rampa/inclinado. 
-"is_endgoal": Indica se o ladrilho é o objetivo final da arena. +  * ''"is_endgoal"'': Indica se o ladrilho é o objetivo final da arena. 
-"rescue_zone": Indica se o ladrilho faz parte de uma sala de resgate. +  * ''"rescue_zone"'': Indica se o ladrilho faz parte de uma sala de resgate. 
-"exits": Define as saídas do ladrilho, controlando a direção em que o robô pode se mover. +  * ''"exits"'': Define as saídas do ladrilho, controlando a direção em que o robô pode se mover **(ler mais sobre abaixo)**
-"enter_score": Configura a pontuação ao entrar no ladrilho pela primeira vez. +  * ''"enter_score"''[[Editor de Arenas#entendendo_o_tipo_json_de_pontuacao|Objeto de Pontuação]] da pontuação ao entrar no ladrilho pela primeira vez. 
-"exit_score": Configura a pontuação ao sair do ladrilho pela primeira vez. +  * ''"exit_score"''[[Editor de Arenas#entendendo_o_tipo_json_de_pontuacao|Objeto de Pontuação]] da pontuação ao sair do ladrilho pela primeira vez. 
-"random_type": Determina se o ladrilho pode ser substituído por outro tipo durante a aleatorização da arena (usando o botão de "dado"). Os valores possíveis são "none", "straight" e "curve". +  * ''"random_type"'': Determina se o ladrilho pode ser substituído por outro tipo durante a aleatorização da arena (usando o botão de "dado"). Os valores possíveis são ''"none"'' //(padrão/desativado)//''"straight"'' ''"curve"''.
-===== Objetos =====+
  
 +==== Saídas do Ladrilho ====
 +{{ saídas-ladrilho.png?300}}
 +No arquivo JSON de configuração do ladrilho, existe uma configuração **extremamente importante** para arenas com percurso/caminho: As saídas do ladrilho. As saídas do ladrilho informam aonde o simulador deve buscar o próximo ladrilho para seguir o percurso.
 +
 +Todo ladrilho tem 4 lados de entrada e 5 saídas possíveis: **''a''**, **''A''**, **''b''**, **''B''** e **''blocked''** (sem saída naquele lado).
 +
 +<code javascript>
 +"exits": {
 +    "side_a": "exit_A",
 +    "side_b": "blocked",
 +    "side_A": "exit_a",
 +    "side_B": "blocked"
 +},
 +</code>
 +
 +**No sBotics, a linha formada pela arena começa pelo ladrilho final em direção a "ladrilhos-checkpoint", sendo o último checkpoint encontrado o ladrilho que o robô vai iniciar.**
 +
 +
 +> Desta forma, os ''"side_"'' representam o lado do ladrilho que o robô deve sair e ''"exit_"'' o lado que o robô é suposto de entrar para sair daquele lado (já que a referência side e exit começam "ao contrário").
 +
 +Em um exemplo clássico deste sistema, é possível ver como um beco sem saída deve ser configurado pelo simulador:
 +
 +{{  beco.png?400  }}
 +
 +Pode parecer confuso pensar que entrando por ''"A"'' se sai em ''"a"'' no ladrilho antes do beco, porém considerando que estamos seguindo a linha ao contrário faz bastante sentido.
 +
 +> **Aviso:** No Ladrilho de Início, todos os ''"side_"'' devem ser ''"blocked"'';
 +===== Objetos =====
 +{{ painel-objetos.png?250}}
 +{{ objetos.png?250}}
 Além das configurações de ladrilhos, o editor também permite adicionar objetos à arena. Esses objetos podem ter diferentes tipos, pontuações de resgate e a capacidade de servir como pontos de evacuação (''evacuation_bonus''). Além das configurações de ladrilhos, o editor também permite adicionar objetos à arena. Esses objetos podem ter diferentes tipos, pontuações de resgate e a capacidade de servir como pontos de evacuação (''evacuation_bonus'').
  
 As propriedades dos objetos incluem: As propriedades dos objetos incluem:
  
-material (''m''): Define a cor do objeto, utilizando as cores disponíveis no sBotics: +  * **Material (''m'')**: Define a cor do objeto, utilizando as cores disponíveis no sBotics: 
-Black (Preto) +    * ''Branco'', ''Cinza'', ''Cinza Escuro'', ''Preto'', ''Verde'', ''Lima'', ''Verde-azulado'', ''Ciano'', ''Azul'', ''Roxo'', ''Magenta'', ''Rosa'', ''Vermelho'', ''Marrom'', ''Laranja'' e ''Amarelo''. 
-White (Branco+  * **Tipo (''t'')**: Define o formato do objeto. 
-Green (Verde+  * **Peso (''w'')**: Define a massa do objeto (objetos com massa diferente de 0 são afetados pela gravidade). 
-Red (Vermelho) +  * **Reiniciar Posição**: Permite ativar se o objeto será reiniciado a sua posição inicial a cada nova tentativa (válido apenas para objetos não estáticos). 
-Blue (Azul+  * **Posição (''X''''Y''''Z'')**: Define a posição do objeto na arena. 
-Yellow (Amarelo+  * **Rotação (''X''''Y''''Z'')**: Define a rotação do objeto (em graus). 
-Magenta +  * **Escala (''X''''Y''''Z'')**: Define o tamanho do objeto. 
-Cyan +  * **Pontuação de Resgate**: Define a pontuação por resgatar o objeto.
-Tipo (''t''): Define o formato do objeto. +
-Peso (''w''): Define a massa do objeto (objetos com massa diferente de 0 são afetados pela gravidade). +
-Reiniciar Posição: Permite ativar se o objeto será reiniciado a sua posição inicial a cada nova tentativa (válido apenas para objetos não estáticos). +
-Posição (X, Y, Z): Define a posição do objeto na arena. +
-Rotação (X, Y, Z): Define a rotação do objeto (em graus). +
-Escala (X, Y, Z): Define o tamanho do objeto. +
-Pontuação: Define a pontuação do objeto. +
-Se o objeto for do tipo "Evacuation Point" (área de resgate), é possível especificar bônus para alguns tipos de resgate usando um [[Editor de Arenas|objeto de pontuação]] para um tipo de objeto dentro de "evacuation_bonus":+
  
-<code javascript>+> //Se o objeto for do tipo "Evacuation Point" (área de resgate), é possível especificar bônus para alguns tipos de resgate usando um [[Editor de Arenas#entendendo_o_tipo_json_de_pontuacao|Objeto de Pontuação]] para cada tipo de objeto a ser bonificado dentro de "evacuation_bonus"//: 
 +
 +> //Exemplo abaixo retirado da área de resgate vermelha de arenas OBR:// 
 +<code javascript>
 "evacuation_bonus": { "evacuation_bonus": {
-"ObjectDeadVictim":+    "ObjectDeadVictim":
-"points": 0, +        "points": 0, 
-"multiplier": 1.4, +        "multiplier": 1.4, 
-"attempt_points": [], +        "attempt_points": [], 
-"attempt_multipliers": []+        "attempt_multipliers": [] 
 +    }
 } }
 +</code>
 +
 +Para referenciar tipos de objetos a serem resgatados, utilize o esquema de nomeação do nome do objeto em inglês, com as iniciais em maiúsculo, precedido por "Object": ''ObjectCuboid'', ''ObjectRescueKit'', ''ObjectLiveVictim'', etc...
 +
 +Se o objeto for de qualquer outro tipo, é possível definir uma pontuação que será concedida por resgatar o objeto em qualquer área de resgate, utilizando um [[Editor de Arenas|objeto de pontuação]]:
 +
 +<code javascript>
 +"rescue_score": {
 +    "points": 0,
 +    "multiplier": 1,
 +    "attempt_points": [],
 +    "attempt_multipliers": []
 } }
 </code> </code>
  
-Para referenciar tipos de objetos a serem resgatados, utilize o esquema de nomeação do nome do objeto em inglês, com as iniciais em maiúsculo, precedido por "Object":+--------
  
-ObjectCuboid +**Para alterar arenas como um todoveja [[Editor de Arenas]].**
-ObjectRescueKit +
-ObjectLiveVictim +
-etc... +
-Se o objeto for de qualquer outro tipoé possível definir uma pontuação que será concedida por resgatar o objeto em qualquer área de resgate, utilizando um [[Editor de Arenas|objeto de pontuação]].+
editor_de_ladrilhos.1743619765.txt.gz · Última modificação: 2025/04/15 16:34 (edição externa)