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]
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:
[img width=250 height=181]
HTML http://i.imgur.com/nEVSAuY.png[/img]
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" }
}
}[/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" }
}
}[/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" }
}
}[/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" }
}
}[/code][/spoiler]
*****************************************************