Difference between revisions of "Robocode/Game Physics"
< Robocode
Jump to navigation
Jump to search
(Added →Robot Movement Physics) |
m |
||
Line 1: | Line 1: | ||
{{stub}} | {{stub}} | ||
+ | |||
+ | <div style="font-size:170%;text-align:center">Robocode Game Physics</div> | ||
This page describes the game physics of [[Robocode]] | This page describes the game physics of [[Robocode]] | ||
− | + | == Coordinates and Direction Conventions == | |
− | |||
− | |||
{|border="0" style="text-align:left" | {|border="0" style="text-align:left" | ||
| Coordinates System | | Coordinates System | ||
Line 17: | Line 17: | ||
http://www.ibm.com/developerworks/java/library/j-robocode2/fig2.gif | http://www.ibm.com/developerworks/java/library/j-robocode2/fig2.gif | ||
− | + | == Time and distance measurements in Robocode == | |
{|border="0" style="text-align:left" | {|border="0" style="text-align:left" | ||
| Time (t) | | Time (t) | ||
Line 26: | Line 26: | ||
|} | |} | ||
− | + | == Robot Movement Physics == | |
{|border="0" style="text-align:left" | {|border="0" style="text-align:left" | ||
| Acceleration (a) | | Acceleration (a) | ||
Line 38: | Line 38: | ||
|} | |} | ||
− | + | == Robocode Processing Loop == | |
The order that Robocode runs is as follows: | The order that Robocode runs is as follows: | ||
Revision as of 15:00, 28 November 2007
This article is a stub. You can help RoboWiki by expanding it. |
Robocode Game Physics
This page describes the game physics of Robocode
Contents
Coordinates and Direction Conventions
Coordinates System | Robocode is using the Cartesian Coordinate System, which means that that the (0, 0) coordinate is located in the buttom left of the battle field. |
Clockwise Direction | Robocode is using a clockwise direction convension where 0 / 360 deg is towards "North", 90 deg towards "East", 180 deg towards "South", and 270 deg towards "West". |
Figure 1:
http://www.ibm.com/developerworks/java/library/j-robocode2/fig2.gif
Time and distance measurements in Robocode
Time (t) | Robocode time is measured in "ticks". Each robot gets one turn per tick. 1 tick = 1 turn. |
Distance Measurement | Robocode's units are basically measured in pixels, with two exceptions. First, all distances are measured with double precision, so you can actually move a fraction of a pixel. Second, Robocode automatically scales down battles to fit on the screen. In this case, the unit of distance is actually smaller than a pixel. |
Robot Movement Physics
Acceleration (a) | Robots accelerate at the rate of 1 pixel/turn. Robots decelerate at the rate of 2 pixels/turn. Robocode determines acceleration for you, based on the distance you are trying to move. |
Velocity Equation(v) | v = at. Velocity can never exceed 8 pixels/turn. Note that technically, velocity is a vector, but in Robocode we simply assume the direction of the vector to be the robot's heading. |
Distance Equation (d) | d = vt. That is, distance = velocity * time |
Robocode Processing Loop
The order that Robocode runs is as follows:
- Battle view is (re)painted
- All robots execute their code until they take action (and then paused)
- Time is updated (time = time + 1)
- All bullets move and check for collisions
- All robots move (heading, accelration, velocity, distance, in that order)
- All robots perform scans (and collect team messages)
- All robots are resumed to take new action
- Each robot is processing its event queue