DIR Return Create A Forum - Home
---------------------------------------------------------
Haxball Club Divisionals
HTML https://hcd.createaforum.com
---------------------------------------------------------
*****************************************************
DIR Return to: Off Topic discussion
*****************************************************
#Post#: 4658--------------------------------------------------
Universal Race Track [FULLY CUSTMIZABLE]
DIR By: LimitedWard
Date: February 17, 2013, 10:25 pm
---------------------------------------------------------
I'm working on creating easily interchangeable parts for race
tracks. I will post more code as I go on. To use this track,
simply copy and paste the parts that you need and modify the
coordinates of the vertexes. It helps if you plan before making
the track by using paper and a calculator. The goal is to
streamline race course development.
Sneak peek at the Mazda Motor Raceway:
HTML http://i.imgur.com/nEVSAuY.png
Track will be made for angles 0, 30, 45, 60, 90, and 180
depending on the type of track.
Starting Gate (0 degrees only):
[spoiler]
--- Code ---
{
"name" : "Kraft Speedway - Starting Line",
"width" : 500,
"height" : 500,
"spawnDistance" : 170,
"bg" : { "type" : "hockey", "height" : 500, "width" : 500,
"cornerRadius" : 0, "kickOffRadius" : 0 },
"vertexes" : [
/* 0 */ { "x" : -200, "y" : -450, "trait" : "track" },
/* 1 */ { "x" : 200, "y" : -450, "trait" : "track" },
/* 2 */ { "x" : -200, "y" : -300, "trait" : "track" },
/* 3 */ { "x" : 200, "y" : -300, "trait" : "track" },
/* 4 */ { "x" : -130, "y" : -420, "trait" : "startingGate"
},
/* 5 */ { "x" : -160, "y" : -420, "trait" : "startingGate"
},
/* 6 */ { "x" : -130, "y" : -390, "trait" : "startingGate"
},
/* 7 */ { "x" : -160, "y" : -390, "trait" : "startingGate"
},
/* 8 */ { "x" : -130, "y" : -360, "trait" : "startingGate"
},
/* 9 */ { "x" : -160, "y" : -360, "trait" : "startingGate"
},
/* 10 */ { "x" : -130, "y" : -330, "trait" : "startingGate"
},
/* 11 */ { "x" : -160, "y" : -330, "trait" : "startingGate"
},
/* 12 */ { "x" : -60, "y" : -420, "trait" : "startingGate"
},
/* 13 */ { "x" : -90, "y" : -420, "trait" : "startingGate"
},
/* 14 */ { "x" : -60, "y" : -390, "trait" : "startingGate"
},
/* 15 */ { "x" : -90, "y" : -390, "trait" : "startingGate"
},
/* 16 */ { "x" : -60, "y" : -360, "trait" : "startingGate"
},
/* 17 */ { "x" : -90, "y" : -360, "trait" : "startingGate"
},
/* 18 */ { "x" : -60, "y" : -330, "trait" : "startingGate"
},
/* 19 */ { "x" : -90, "y" : -330, "trait" : "startingGate"
},
/* 20 */ { "x" : 10, "y" : -420, "trait" : "startingGate",
"_selected" : true },
/* 21 */ { "x" : -20, "y" : -420, "trait" : "startingGate",
"_selected" : true },
/* 22 */ { "x" : 10, "y" : -390, "trait" : "startingGate",
"_selected" : true },
/* 23 */ { "x" : -20, "y" : -390, "trait" : "startingGate",
"_selected" : true },
/* 24 */ { "x" : 10, "y" : -360, "trait" : "startingGate",
"_selected" : true },
/* 25 */ { "x" : -20, "y" : -360, "trait" : "startingGate",
"_selected" : true },
/* 26 */ { "x" : 10, "y" : -330, "trait" : "startingGate",
"_selected" : true },
/* 27 */ { "x" : -20, "y" : -330, "trait" : "startingGate",
"_selected" : true },
/* 28 */ { "x" : 80, "y" : -420, "trait" : "startingGate",
"_selected" : true },
/* 29 */ { "x" : 50, "y" : -420, "trait" : "startingGate",
"_selected" : true },
/* 30 */ { "x" : 80, "y" : -390, "trait" : "startingGate",
"_selected" : true },
/* 31 */ { "x" : 50, "y" : -390, "trait" : "startingGate",
"_selected" : true },
/* 32 */ { "x" : 80, "y" : -360, "trait" : "startingGate",
"_selected" : true },
/* 33 */ { "x" : 50, "y" : -360, "trait" : "startingGate",
"_selected" : true },
/* 34 */ { "x" : 80, "y" : -330, "_selected" : true, "trait"
: "startingGate" },
/* 35 */ { "x" : 50, "y" : -330, "_selected" : true, "trait"
: "startingGate" }
],
"segments" : [
{ "v0" : 0, "v1" : 1, "trait" : "track" },
{ "v0" : 2, "v1" : 3, "trait" : "track" },
{ "v0" : 0, "v1" : 2, "trait" : "startingGate" },
{ "v0" : 4, "v1" : 5, "trait" : "startingGate", "y" : -420
},
{ "v0" : 6, "v1" : 7, "trait" : "startingGate", "y" : -390
},
{ "v0" : 5, "v1" : 7, "trait" : "startingGate" },
{ "v0" : 8, "v1" : 9, "trait" : "startingGate", "y" : -420
},
{ "v0" : 10, "v1" : 11, "trait" : "startingGate", "y" : -390
},
{ "v0" : 9, "v1" : 11, "trait" : "startingGate" },
{ "v0" : 12, "v1" : 13, "trait" : "startingGate", "y" : -420
},
{ "v0" : 14, "v1" : 15, "trait" : "startingGate", "y" : -390
},
{ "v0" : 13, "v1" : 15, "trait" : "startingGate" },
{ "v0" : 16, "v1" : 17, "trait" : "startingGate", "y" : -420
},
{ "v0" : 18, "v1" : 19, "trait" : "startingGate", "y" : -390
},
{ "v0" : 17, "v1" : 19, "trait" : "startingGate" },
{ "v0" : 20, "v1" : 21, "trait" : "startingGate", "y" :
-420, "_selected" : true },
{ "v0" : 22, "v1" : 23, "trait" : "startingGate", "y" :
-390, "_selected" : true },
{ "v0" : 21, "v1" : 23, "trait" : "startingGate",
"_selected" : true },
{ "v0" : 24, "v1" : 25, "trait" : "startingGate", "y" :
-420, "_selected" : true },
{ "v0" : 26, "v1" : 27, "trait" : "startingGate", "y" :
-390, "_selected" : true },
{ "v0" : 25, "v1" : 27, "trait" : "startingGate",
"_selected" : true },
{ "v0" : 28, "v1" : 29, "trait" : "startingGate", "y" :
-420, "_selected" : true },
{ "v0" : 30, "v1" : 31, "trait" : "startingGate", "y" :
-390, "_selected" : true },
{ "v0" : 29, "v1" : 31, "trait" : "startingGate",
"_selected" : true },
{ "v0" : 32, "v1" : 33, "trait" : "startingGate", "y" :
-420, "_selected" : true },
{ "v0" : 34, "v1" : 35, "_selected" : true, "trait" :
"startingGate", "y" : -390 },
{ "v0" : 33, "v1" : 35, "trait" : "startingGate",
"_selected" : true }
],
"goals" : [
],
"discs" : [
],
"planes" : [
],
"traits" : {
"ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"
] },
"goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
"goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"
] },
"kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup"
: ["redKO","blueKO" ], "cMask" : ["red","blue" ] },
"track" : { "vis" : true, "bCoef" : 0.2, "cMask" :
["red","blue" ], "color" : "000000" },
"startingGate" : { "vis" : true, "bCoef" : 0.2, "cMask" :
["red","blue" ], "cGroup" : ["redKO","blueKO" ], "color" :
"FFFFFF" }
}
}
--- End Code ---
[/spoiler]
Straight track:
[spoiler]
--- Code ---
{
"name" : "Kraft Speedway - Straight Track",
"width" : 500,
"height" : 500,
"spawnDistance" : 170,
"bg" : { "type" : "hockey", "height" : 500, "width" : 500,
"cornerRadius" : 0, "kickOffRadius" : 0 },
"vertexes" : [
// Horizontal 0 degrees
/* 0 */ { "x" : -400, "y" : -450, "trait" : "track" },
/* 1 */ { "x" : -300, "y" : -450, "trait" : "track" },
/* 2 */ { "x" : -400, "y" : -300, "trait" : "track" },
/* 3 */ { "x" : -300, "y" : -300, "trait" : "track" },
// Vertical 90 degrees
/* 4 */ { "x" : -200, "y" : -450, "trait" : "track" },
/* 5 */ { "x" : -200, "y" : -350, "trait" : "track" },
/* 6 */ { "x" : -50, "y" : -450, "trait" : "track" },
/* 7 */ { "x" : -50, "y" : -350, "trait" : "track" },
// Lean right 45
/* 8 */ { "x" : 82.57573788668776, "y" :
-448.45989156637563, "trait" : "track" },
/* 9 */ { "x" : 12.20416660327146, "y" :
-377.41172512203275, "trait" : "track" },
/* 10 */ { "x" : 189.14798755320209, "y" :
-342.90253464125107, "trait" : "track" },
/* 11 */ { "x" : 118.77641626978573, "y" :
-271.85436819690824, "trait" : "track" },
// Lean left 45
/* 12 */ { "x" : 258.4418135904972, "y" :
-343.31625549899144, "trait" : "track" },
/* 13 */ { "x" : 329.5296209243025, "y" :
-272.9847287953021, "trait" : "track" },
/* 14 */ { "x" : 363.9391036460312, "y" :
-449.9479664996995, "trait" : "track" },
/* 15 */ { "x" : 435.02691097983654, "y" :
-379.6164397960101, "trait" : "track" },
// Lean left 30
/* 16 */ { "x" : -423.95505204177874, "y" :
-174.29071747318596, "trait" : "track" },
/* 17 */ { "x" : -373.430668567897, "y" : -87.9930542685305,
"trait" : "track" },
/* 18 */ { "x" : -294.5085572347956, "y" :
-250.07729268400863, "trait" : "track" },
/* 19 */ { "x" : -243.98417376091385, "y" :
-163.77962947935316, "trait" : "track" },
// Lean right 30
/* 20 */ { "x" : -124.29695609287936, "y" :
-251.39511336679243, "trait" : "track" },
/* 21 */ { "x" : -174.8105199821836, "y" :
-165.0911165694182, "trait" : "track" },
/* 22 */ { "x" : 5.159039103181954, "y" :
-175.62476753283607, "trait" : "track" },
/* 23 */ { "x" : -45.35452478612228, "y" :
-89.32077073546185, "trait" : "track" },
// Lean left 60
/* 24 */ { "x" : 61.00151433647943, "y" :
-115.1726208524251, "trait" : "track" },
/* 25 */ { "x" : 147.98966454878644, "y" :
-65.84654536854828, "trait" : "track" },
/* 26 */ { "x" : 134.99062756229466, "y" :
-245.6548461708856, "trait" : "track" },
/* 27 */ { "x" : 221.97877777460167, "y" :
-196.32877068700878, "trait" : "track" },
// Lean right 60
/* 28 */ { "x" : 344.3883222879193, "y" :
-247.66761885599738, "trait" : "track" },
/* 29 */ { "x" : 257.89832539483587, "y" :
-197.47319249774114, "trait" : "track" },
/* 30 */ { "x" : 419.6799618253037, "y" :
-117.93262351637219, "trait" : "track" },
/* 31 */ { "x" : 333.1899649322202, "y" :
-67.73819715811595, "trait" : "track" }
],
"segments" : [
// Horizontal
{ "v0" : 0, "v1" : 1, "trait" : "track" },
{ "v0" : 2, "v1" : 3, "trait" : "track" },
// Vertical
{ "v0" : 4, "v1" : 5, "trait" : "track" },
{ "v0" : 6, "v1" : 7, "trait" : "track" },
// right 45
{ "v0" : 8, "v1" : 9, "trait" : "track" },
{ "v0" : 10, "v1" : 11, "trait" : "track" },
// left 45
{ "v0" : 12, "v1" : 13, "trait" : "track" },
{ "v0" : 14, "v1" : 15, "trait" : "track" },
// left 30
{ "v0" : 16, "v1" : 17, "trait" : "track" },
{ "v0" : 18, "v1" : 19, "trait" : "track" },
// right 30
{ "v0" : 20, "v1" : 21, "trait" : "track" },
{ "v0" : 22, "v1" : 23, "trait" : "track" },
// left 60
{ "v0" : 24, "v1" : 25, "trait" : "track" },
{ "v0" : 26, "v1" : 27, "trait" : "track" },
//right 60
{ "v0" : 28, "v1" : 29, "trait" : "track" },
{ "v0" : 30, "v1" : 31, "trait" : "track" }
],
"goals" : [
],
"discs" : [
],
"planes" : [
],
"traits" : {
"ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"
] },
"goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
"goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"
] },
"kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup"
: ["redKO","blueKO" ], "cMask" : ["red","blue" ] },
"track" : { "vis" : true, "bCoef" : 0.2, "cMask" :
["red","blue" ], "color" : "000000" }
}
}
--- End Code ---
[/spoiler]
Right 45 degree turn: (this was a pain in the ass to make) (YAY
CALCULUS)
[spoiler]
--- Code ---
{
"name" : "Kraft Speedway - Right Bend 45",
"width" : 500,
"height" : 500,
"spawnDistance" : 170,
"bg" : { "type" : "hockey", "height" : 500, "width" : 500,
"cornerRadius" : 0, "kickOffRadius" : 0 },
"vertexes" : [
// 45 degree turn
/* 0 */ { "x" : 35.3553390593, "y" : -164.644660941, "trait"
: "track"},
/* 1 */ { "x" : 0, "y" : -150, "trait" : "track" },
/* 2 */ { "x" : 141.421356237, "y" : -58.578643763, "trait"
: "track" },
/* 3 */ { "x" : 0, "y" : 0, "trait" : "track" }
// Debugging curve, do not use /* 4 */ { "x" : 50, "y" :
-200, "trait" : "track"},
// Debugging curve, do not use /* 5 */ { "x" : 200, "y" :
-200, "trait" : "track" }
],
"segments" : [
// Debugging curve, do not use { "v0" : 5, "v1" : 3, "trait"
: "track", "curve" : 90, "color":"FF0000" },
// Debugging curve, do not use { "v0" : 4, "v1" : 1, "trait"
: "track", "curve" : 90, "color":"FF0000" },
// 45 degree turn
{ "v0" : 0, "v1" : 1, "trait" : "track", "curve" : 45 },
{ "v0" : 2, "v1" : 3, "trait" : "track", "curve" : 45 }
],
"goals" : [
],
"discs" : [
],
"planes" : [
],
"traits" : {
"ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"
] },
"goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
"goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"
] },
"kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup"
: ["redKO","blueKO" ], "cMask" : ["red","blue" ] },
"track" : { "vis" : true, "bCoef" : 0.2, "cMask" :
["red","blue" ], "color" : "000000" }
}
}
--- End Code ---
[/spoiler]
Left 45 Degree Turn:
[spoiler]
--- Code ---
{
"name" : "Kraft Speedway - Right Bend 45",
"width" : 500,
"height" : 500,
"spawnDistance" : 170,
"bg" : { "type" : "hockey", "height" : 500, "width" : 500,
"cornerRadius" : 0, "kickOffRadius" : 0 },
"vertexes" : [
// 45 degree turn
/* 0 */ { "x" : 35.3553390593, "y" : 164.644660941, "trait"
: "track"},
/* 1 */ { "x" : 0, "y" : 150, "trait" : "track" },
/* 2 */ { "x" : 141.421356237, "y" : 58.578643763, "trait" :
"track" },
/* 3 */ { "x" : 0, "y" : 0, "trait" : "track" }
// Debugging curve, do not use /* 4 */ { "x" : 50, "y" :
-200, "trait" : "track"},
// Debugging curve, do not use /* 5 */ { "x" : 200, "y" :
-200, "trait" : "track" }
],
"segments" : [
// Debugging curve, do not use { "v0" : 5, "v1" : 3, "trait"
: "track", "curve" : 90, "color":"FF0000" },
// Debugging curve, do not use { "v0" : 4, "v1" : 1, "trait"
: "track", "curve" : 90, "color":"FF0000" },
// 45 degree turn
{ "v0" : 0, "v1" : 1, "trait" : "track", "curve" : -45 },
{ "v0" : 2, "v1" : 3, "trait" : "track", "curve" : -45 }
],
"goals" : [
],
"discs" : [
],
"planes" : [
],
"traits" : {
"ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"
] },
"goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
"goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"
] },
"kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup"
: ["redKO","blueKO" ], "cMask" : ["red","blue" ] },
"track" : { "vis" : true, "bCoef" : 0.2, "cMask" :
["red","blue" ], "color" : "000000" }
}
}
--- End Code ---
[/spoiler]
*****************************************************
Page 1 of 1