Difference between revisions of ".up"
(→Movement) |
|||
Line 29: | Line 29: | ||
'''Associated Keywords''': .aimsx .aimdx .vel | '''Associated Keywords''': .aimsx .aimdx .vel | ||
+ | |||
+ | === Sysvars === | ||
+ | * [[Definitions]] | ||
+ | * [[.up|Movement (.up, .dn. .dx, .sx)]] | ||
+ | * [[.aimdx|Basic Turning (.aimdx, .aimsx)]] | ||
+ | * [[Shooting]] | ||
+ | * [[Reproducing]] |
Revision as of 02:34, 22 September 2005
Movement
Overview The movement command s .up .dn .sx .dx The movement commands are part of the heart of the DarwinBots DNA language. Without these, there could be no movement. The movement commands are simple to implement but even these can take a little understanding to use properly. All four relate to vector acceleration rather than actual movement. The direction of the vector acceleration is defined by the direction in which the DarwinBot is facing when the command is carried out.
Syntax
cond
start
10 .up store
stop
A robot with this gene would constantly accelerate forward at a rate of 10 per turn. That is to say that his forward velocity would increase by a value of 10. If he should rotate then the direction in which the acceleration takes place would also change.
Technical Details
Prior to actual movement of the DarwinBot the values in .up .dn .sx and .dx are all added together such that a negative .up and a positive .dn will add to make a larger acceleration in the .dn direction and a positive .up and a positive .dn, of equal magnitude, will cancel each other out.
Next, these accelerations are added to any existing accelerations due to the actions of ties and repulsion fields (when robots get too close together). Finally, the accelerations are converted to X and Y vectors and applied to the DarwinBot by adding them to existing velocities in the X and Y directions. The total velocity cannot exceed 40 units per cycle so any excess is then lost.
Costs: Energy costs to the DarwinBot are calculated based on the input values. These vary with robot mass and applied acceleration but cannot exceed 100 energy points per vector per cycle.
Activation hierarchy: Movement commands are executed after rotation commands
Associated Keywords: .aimsx .aimdx .vel