Here are some (all?) of the shortcuts:
-WASD or Arrows to move around
-'+' and '-' to zoom in and out
-Hold F to auto-fire an object
-Hold C while aiming an object to put it in a circular orbit around the nearest mass
-Right click acts as a cursor (selecting objects, moving the screen)
-Hold shift to select and edit multiple planets
-Ctrl-Z undoes the latest planet you've added
-Ctrl-R rewinds time a bit
-E caches a quick-save
-Q loads a quick-save
-0-9 changes what type of object you're adding
-Backspace/Delete removes the selected object(s)
-Space toggles pause
-Escape takes you to the main menu, hit escape again, and you quit the sim
A little bit about the save codes.
Okay, an example:
Code: Select all
//Gravity fun at TestTubeGames
_settings(gravity: r^(-2), zoom: 0.7084251);
_type0(m: 1000, col: 2, lcol: 3, pic: 0, noGrav);
_type1(m: 0, col: 1, lcol: 3, pic: 2);
_add(type: 0, x: -51.7, y: 17.37, t: 0);
_add(type: 0, x: 74.64, y: 20.12, t: 11.6);
_add(type: 0, x: 9.93, y: 102.62, t: 25.6);
_add(type: 1, x: -6.23, y: 57.37, a: 17, t: 48);
_add(type: 1, x: 24.35, y: 38.45, a: 235, t: 71.2);
_add(type: 1, x: -3.8, y: 29.47, a: 136, t: 84.4);
Code: Select all
_settings(
gravity: <written out force law, default is r^-2>,
tangravity: <written out tangential force law, default is 0>,
x: <offset of the world, default is 0>,
y: <offset of the world, default is 0>,
zoom: <default is 1>,
n: <name of save, default is blank>
);
Code: Select all
_type'N'(
m: <mass, default is 0>,
col: <the color of the object, based on an indexed list, default is 0>,
lcol: <the color of the trail, based on an indexed list, default is 0>,
pic: <image type>,
rObj: <radius of the planet, used if it is massless. Default is 3>,
d: <density of the planet, used if it is massive. Default is .3>,
noGrav <included if the object is fixed and ignores gravity. No value / colon needed>,
textSize: <the size of the object's text, default is 30>
);
Once that's locked down, the objects themselves follow. Depending on the prefix, different objects get added. The default "_add" just throws in a single object. The variables:
Code: Select all
_add(
name: <a written name that appears on screen. defaults to blank>,
type: <which type's properties this inherits>,
x: <the x position>,
y: <the y position>,
vx: <the x velocity>,
vy: <the y velocity>,
a: <the angle of the object, defaults to 0>,
rotspeed: <the rotational speed of the object in degrees per unit time, defaults to 0>,
t: <the world time that this object appears, defaults to 0>,
...and any of the variables from 'type'
);
Code: Select all
_addLine(
name: <>, type: <>,
xMin: <the x-coordinate of one endpoint>,
xMax: <the x-coordinate of the other endpoint>,
yMin: <the y-coordinate of one endpoint>,
yMax: <the y-coordinate of the other endpoint>,
vx:<>, vy:<>,
vt: <the tangential velocity of the line, so the whole line spins about its midpoint>,
vr: <the radial velocity, from the center of the line>,
num: <the number of planets>,
randomColors <if included, this randomizes the colors. No value / colon needed>,
randomAngles <if included, this randomizes the angles. No value / colon needed>,
t: <>,
...and any of the variables from 'type'
);
Code: Select all
_addCircle(
name: <>, type: <>, x:<>, y:<>, vx:<>, vy:<>, vt:<>, vr:<>,
r: <radius of circle>,
num: <>, randomColors, randomAngles, t:<>
);
Code: Select all
_addDisk(
name: <>, type: <>, x:<>, y:<>, vx:<>, vy:<>, vt:<>, vr:<>,
mMin: <optional, masses set randomly with this as min>,
mMax: <optional, masses set randomly with this as max>,
rMin: <minimum radius from center, defaults to 0>,
rMax: <maximum radius from center, defaults to 250>,
num: <>,
seed: <a random number generator seed that defines the disk. That way we can share!>,
t:<>,
...and any of the variables from 'type'
);