


Hola, ¿como les va? hoy les traigo un tutorial para que puedan editar o crear canchas de haxball (www.haxball.com)
Cualquier intento de desvirtuar sera borrado y user bloqueado.
Si tienen dudas, mandenme un MP
Para editar las canchas tenes que descargarlas y abrirlas con el bloc de notas.
Para descargar las nuevas canchas de haxball hace click ACA.
En los codes hay un [ color=#000000] al principio y un [/color ] al final, ignorenlós.
Si queres hacer una desde cero te recomiendo que uses el siguiente codigo y lo pegues en el bloc de notas y a partir de ahi hace tu cancha.
{
"name" : "Simple",
"width" : 450,
"height" : 250,
"spawnDistance" : 200,
"bg" : { "type" : "grass", "width" : 400, "height" : 200, "kickOffRadius" : 75, "cornerRadius" : 0 },
"vertexes" : [
{ "x" : -400, "y" : 200, "trait" : "ballArea" },
{ "x" : -400, "y" : 75, "trait" : "ballArea" },
{ "x" : -400, "y" : -75, "trait" : "ballArea" },
{ "x" : -400, "y" : -200, "trait" : "ballArea" },
{ "x" : 400, "y" : 200, "trait" : "ballArea" },
{ "x" : 400, "y" : 75, "trait" : "ballArea" },
{ "x" : 400, "y" : -75, "trait" : "ballArea" },
{ "x" : 400, "y" : -200, "trait" : "ballArea" },
{ "x" : 0, "y" : 250, "trait" : "kickOffBarrier" },
{ "x" : 0, "y" : 75, "trait" : "kickOffBarrier" },
{ "x" : 0, "y" : -75, "trait" : "kickOffBarrier" },
{ "x" : 0, "y" : -250, "trait" : "kickOffBarrier" }
],
"segments" : [
{ "v0" : 0, "v1" : 1, "trait" : "ballArea" },
{ "v0" : 2, "v1" : 3, "trait" : "ballArea" },
{ "v0" : 4, "v1" : 5, "trait" : "ballArea" },
{ "v0" : 6, "v1" : 7, "trait" : "ballArea" },
{ "v0" : 1, "v1" : 2, "trait" : "goalNet" },
{ "v0" : 6, "v1" : 5, "trait" : "goalNet" },
{ "v0" : 8, "v1" : 9, "trait" : "kickOffBarrier" },
{ "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : 180, "cGroup" : ["blueKO"] },
{ "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : -180, "cGroup" : ["redKO"] },
{ "v0" : 10, "v1" : 11, "trait" : "kickOffBarrier" }
],
"goals" : [
{ "p0" : [-400, 75], "p1" : [-400,-75], "team" : "red" },
{ "p0" : [400, 75], "p1" : [400,-75], "team" : "blue" }
],
"discs" : [
{ "pos" : [-400, 75], "trait" : "goalPost" },
{ "pos" : [-400, -75], "trait" : "goalPost" },
{ "pos" : [ 400, 75], "trait" : "goalPost" },
{ "pos" : [ 400, -75], "trait" : "goalPost" }
],
"planes" : [
{ "normal" : [0, 1], "dist" : -200, "trait" : "ballArea" },
{ "normal" : [0,-1], "dist" : -200, "trait" : "ballArea" },
{ "normal" : [ 0, 1], "dist" : -250, "bCoef" : 0.1 },
{ "normal" : [ 0,-1], "dist" : -250, "bCoef" : 0.1 },
{ "normal" : [ 1, 0], "dist" : -450, "bCoef" : 0.1 },
{ "normal" : [-1, 0], "dist" : -450, "bCoef" : 0.1 }
],
"traits" : {
"ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] },
"goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
"goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"], "curve" : 110 },
"kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO", "blueKO"], "cMask" : ["red", "blue"] }
}
}
Este tutorial fue escrito por mi, con mis palabras para que se entienda mejor, porque el original estaba en ingles y yo de ingles sé poco.
"name" : "Simple",
En esta parte va el nombre que le va a ir asignado a la cancha, para cambiarlo tenes que cambiar la palabra despues de "name" , en este caso "simple"

"width" : 450,
"height" : 250,
Estos dos codigos son ancho (width) y largo (height) Y vendrian a ser el tamaño de terreno en donde la camara puede desplazarce.

"spawnDistance" : 200,
Este codigo es la distancia que tienen los jugadores con la pelota cuando empieza el partido.

"bg" : { "type" : "grass", "width" : 400, "height" : 200, "kickOffRadius" : 75, "cornerRadius" : 0 },
"bg" Es el tamaño y la textura de la cancha
"type" Es la textura del campo de juego y puede variar entre grass (pasto) o hockey (hockey)
"height" y "width" Es el tamaño que la textura va a tener y con respecto a la superficie del campo puede sobresalir o ser mas chico que la cancha.(ancho y alto)Te recomiendo que tenga el mismo tamaño que la cancha.
"kickOffRadius" Es el radio que tendra el radio del circulo del centro.
"cornerRadius" Es el radio que tienen las esquinas de la cancha.
"vertexes" : [
{ "x" : -400, "y" : 200, "trait" : "ballArea" },
{ "x" : -400, "y" : 75, "trait" : "ballArea" },
{ "x" : -400, "y" : -75, "trait" : "ballArea" },
{ "x" : -400, "y" : -200, "trait" : "ballArea" },
{ "x" : 400, "y" : 200, "trait" : "ballArea" },
{ "x" : 400, "y" : 75, "trait" : "ballArea" },
{ "x" : 400, "y" : -75, "trait" : "ballArea" },
{ "x" : 400, "y" : -200, "trait" : "ballArea" },
{ "x" : 0, "y" : 250, "trait" : "kickOffBarrier" },
{ "x" : 0, "y" : 75, "trait" : "kickOffBarrier" },
{ "x" : 0, "y" : -75, "trait" : "kickOffBarrier" },
{ "x" : 0, "y" : -250, "trait" : "kickOffBarrier" }
],
"vertexes" es el nombre que se le asigna a los vertices.(estan ordenados iguales a los de arriba)
Primer vertice: Coordenadas del Punto de abajo a la izquierda de la Cancha.
Segundo vertice: Coordenadas del Punto de abajo del arco Izquierdo.
Tercer vertice: Coordenadas del Punto de arriba del arco izquierdo
Cuarto vertice Coordenadas del Punto arriba izquierdo de la cancha
Quinto vertice: Coordenadas del de abajo derecho de la cancha.
Sexto vertice: Coordenadas del Punto de abajo del arco derecho.
Septimo vertice: Coordenadas del Punto de arriba del arco derecho
Octavo vertice: Coordenadas del Punto de arriba derecho de la cancha
Noveno vertice: Coordenadas del Punto de abajo al centro de la cancha.
Decimo vertice: Coordenadas del Punto de abajo del circulo central.
Onceabo vertice: Coordenadas del Punto de abajo del circulo central.
Doceabo vertice: Coordenadas del Punto de arriba al centro de la cancha

"segments" : [
{ "v0" : 0, "v1" : 1, "trait" : "ballArea" }, :Conecta Esquina Izquierda Inferior hasta el Vertice Inferior del Arco.
{ "v0" : 2, "v1" : 3, "trait" : "ballArea" }, : Conecta Esquina Izquierda Superior hasta el Vertice Superior del Arco
{ "v0" : 4, "v1" : 5, "trait" : "ballArea" }, : Conecta Esquina Derecha Inferior hasta el Vertice Inferior del Arco.
{ "v0" : 6, "v1" : 7, "trait" : "ballArea" }, : Conecta Esquina Derecha Superior hasta el Vertice Superior del Arco.
{ "v0" : 1, "v1" : 2, "trait" : "goalNet" }, : Es la linea ("red" del Arco de la Izquierda
{ "v0" : 6, "v1" : 5, "trait" : "goalNet" }, : Es la linea ("red" del Arco de la Derecha
{ "v0" : 8, "v1" : 9, "trait" : "kickOffBarrier" }, : Conecta Parte Inferior Central con la Inferior del circulo central
{ "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : 180, "cGroup" : ["blueKO"] },
: Medialuna central izquierda
{ "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : -180, "cGroup" : ["redKO"] },
: Medialuna central derecha
{ "v0" : 10, "v1" : 11, "trait" : "kickOffBarrier" } : Conecta parte superior central con la superior del circulo central
],
"Segments" son los segmentos, osea lineas, y te pueden servir para escribir textos o lo que quieras.
"v0" : señala el número del primer vértice que queremos unir.
"v1" : señala el número del segundo vértice que queremos unir.
"trait" :Es el style que tendrá la linea

"goals" : [
{ "p0" : [-400, 75], "p1" : [-400,-75], "team" : "red" },
{ "p0" : [400, 75], "p1" : [400,-75], "team" : "blue" }
],
"goals" son los goles, osea que es el espacio en donde se contara como arco para hacer el gol.
"p0" Es el primer palo.
"p1" Es el segundo palo.

"discs" : [
{ "pos" : [-400, 75], "trait" : "goalPost" },
{ "pos" : [-400, -75], "trait" : "goalPost" },
{ "pos" : [ 400, 75], "trait" : "goalPost" },
{ "pos" : [ 400, -75], "trait" : "goalPost" }
],
Estos son los 4 postes predeterminados, vendrian a ser los palos de los arcos, pero podes agregar más.
"pos" Es la posición de cada poste. Podes agregar postes de colores y pelotitas.
"trait" Es la textura,Pero eso se acomoda al final.

"planes" : [
{ "normal" : [0, 1], "dist" : -200, "trait" : "ballArea" },
{ "normal" : [0,-1], "dist" : -200, "trait" : "ballArea" },
{ "normal" : [ 0, 1], "dist" : -250, "bCoef" : 0.1 },
{ "normal" : [ 0,-1], "dist" : -250, "bCoef" : 0.1 },
{ "normal" : [ 1, 0], "dist" : -450, "bCoef" : 0.1 },
{ "normal" : [-1, 0], "dist" : -450, "bCoef" : 0.1 }
],
"planes" es el limite de cada cancha, osea que hasta donde pasa la pelota, generalmente es igual a la superficie de la textura. Representa a las paredes.
"normal" Es un estilo de pared, normal es la normal, osea la que esta en cualquier cancha a los costados.
"dist" Es la distancia de separacion entre ellas (creo)
"trait" Es su asignacion, osea para que esta, aca seria "ballArea" (area de la pelota)
"bCoef" Es cuanto revota, osea que si le subis ese numero , la pared va a hacer revotar todo lo que toque. (esta parte seguro le interesa a @lestanimerip
)
"traits" : {
"ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] },
"goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
"goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"], "curve" : 110 },
"kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO", "blueKO"], "cMask" : ["red", "blue"] }
}
"vis" Es la visibilidad, "False" es no y "True" es si
"bCoef" Esto ya lo explique, es el revote.
"Cmask" Es el chocque que tienen las cosas, Ej: si pones "ball" choca con la pelota . Si queres que no se toquen pone [] , y si queres que choque con los players pone "red", "blue"
"Cgroup" Se usa para poner un grupo de colisiones, ej: ["red", "blue"], también se usa el "redKO", "blueKO", el objeto colisionará solamente con el silbato de salida del rojo o el azul.
"invMass" Es el movimiento que tiene cada objeto, si pones 0 no se mueve.
"curve" Si ponemos esto en un segmento, el segmento va a ser una curva y le tenemos que asignar una medida en grados.
"color" Tenemos que poner el color. Hay dos maneras (RGB), hexadecimal ( "FG5825" ) o sino con la serie de digitos del 0 al 255, ej: [255, 0, 57].
"radio" Si se lo aplicamos a un disco, le podemos modificar el tamaño .
Con esta explicacion podemos cambiarle el color a los postes y el tamaño.
Nota:Si hiciste tu propia cancha, y no editaste una que ya estaba hecha , al guardarla no pongas guardar, apretale la x y pone guardar , y en la parte de nombre pone "nombre que quieras.hbs"