Difference between revisions of "Movement"
m (test) |
m |
||
Line 1: | Line 1: | ||
Movement refers to the bots' primary method of locomotion. | Movement refers to the bots' primary method of locomotion. | ||
The movement commands are part of the heart of the DarwinBots DNA language. Without these, there could be no movement, just bouncing, gliding, flowing and [[tie]]-pushing. | The movement commands are part of the heart of the DarwinBots DNA language. Without these, there could be no movement, just bouncing, gliding, flowing and [[tie]]-pushing. | ||
− | |||
− | |||
==[[Sysvars]]:== | ==[[Sysvars]]:== | ||
Line 9: | Line 7: | ||
==Syntax:== | ==Syntax:== | ||
+ | |||
+ | When a bot stores a value in .up, .dn, .sx, or .dx, the bot is attempting to move with the strenght of that value in the given direction. | ||
*[[.up]] accelerates the robot forward in the direction that he is facing. | *[[.up]] accelerates the robot forward in the direction that he is facing. | ||
Line 15: | Line 15: | ||
− | ===Example:=== | + | ====Example:==== |
cond | cond | ||
start | start | ||
Line 32: | Line 32: | ||
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. | 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. | ||
− | ===Examples:=== | + | ====Examples:==== |
5 [[.up]] 5 [[.dn]] [[store]] | 5 [[.up]] 5 [[.dn]] [[store]] | ||
− | A bot storing 5 in up and 5 in down is charged nothing. | + | A bot storing 5 in up and 5 in down is charged nothing because the colinear vectors add up to 0. |
3 [[.dx]] 4 [[.up]] [[store]] | 3 [[.dx]] 4 [[.up]] [[store]] | ||
− | + | resulting vectors direction. | |
===Movement Factor:=== | ===Movement Factor:=== | ||
− | This movement force is multiplied by the [[Movement Factor]], which allows a user to modify the efficacy of the bots' manual movements. By lowering Movement Factor, the user is encouraging bots to find other methods of locomotion. | + | This movement force is multiplied by the [[Movement Factor]], which allows a user to modify the efficacy of the bots' manual movements. By lowering Movement Factor, the user is encouraging bots to find other methods of locomotion. Perhaps forming ties and swimming. |
===Ties and Repulsion:=== | ===Ties and Repulsion:=== | ||
− | Next, these accelerations are added to any existing accelerations due to the actions of [[tie]]s 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.''' | + | Next, these accelerations are added to any existing accelerations due to the actions of [[tie]]s 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 (length of the resulting vector) cannot exceed 40 units per cycle so any excess is then lost.''' |
− | |||
− | |||
==Movement energy costs:== | ==Movement energy 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. | [[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. | ||
+ | |||
+ | It is charged energy based on the value stored in these locations only in so far as that value actually applies to generated forces. | ||
+ | A bot storing 200 in .up is charged only as much as it takes for its speed to reach the maximum allowed value. | ||
==Activation hierarchy:== | ==Activation hierarchy:== | ||
Line 53: | Line 54: | ||
==Associated Keywords:== | ==Associated Keywords:== | ||
− | + | [[.aimsx]] [[.aimdx]] [[.vel]] | |
See also: | See also: | ||
*[[Physics]] | *[[Physics]] |
Revision as of 13:24, 23 December 2005
Movement refers to the bots' primary method of locomotion. The movement commands are part of the heart of the DarwinBots DNA language. Without these, there could be no movement, just bouncing, gliding, flowing and tie-pushing.
Contents
Sysvars:
Movement:
Forwards compatibility note: aimdx is the old name for aimright aimsx is the old name for aimleft |
Syntax:
When a bot stores a value in .up, .dn, .sx, or .dx, the bot is attempting to move with the strenght of that value in the given direction.
- .up accelerates the robot forward in the direction that he is facing.
- .dn accelerates the robot backward from the direction he is facing.
- .sx
- .dx
Example:
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:
Range:
Vector acceleration:
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. 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.
Examples:
5 .up 5 .dn store
A bot storing 5 in up and 5 in down is charged nothing because the colinear vectors add up to 0.
3 .dx 4 .up store
Movement Factor:
This movement force is multiplied by the Movement Factor, which allows a user to modify the efficacy of the bots' manual movements. By lowering Movement Factor, the user is encouraging bots to find other methods of locomotion. Perhaps forming ties and swimming.
Ties and Repulsion:
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 (length of the resulting vector) cannot exceed 40 units per cycle so any excess is then lost.
Movement energy 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.
It is charged energy based on the value stored in these locations only in so far as that value actually applies to generated forces. A bot storing 200 in .up is charged only as much as it takes for its speed to reach the maximum allowed value.
Activation hierarchy:
Movement commands are executed after rotation commands
Associated Keywords:
See also: