| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior |
| editor_de_ladrilhos [2025/04/02 18:49] – admin | editor_de_ladrilhos [2025/04/15 16:34] (atual) – edição externa 127.0.0.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) |
| "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"'' e ''"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 todo, veja [[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]]. | |