- This wiki is out of date, use the continuation of this wiki instead
Collision
From FenixWiki
(Difference between revisions)
| Revision as of 11:39, 25 December 2007 (edit) Sandman (Talk | contribs) m ← Previous diff |
Revision as of 11:35, 21 July 2008 (edit) (undo) Sandman (Talk | contribs) m (→Example) Next diff → |
||
| Line 24: | Line 24: | ||
| == Example == | == Example == | ||
| <pre> | <pre> | ||
| - | Program example; | ||
| - | Private | ||
| - | int map; | ||
| - | Begin | ||
| - | |||
| - | // Create the graph for the ship | ||
| - | map = new_map(20,20,8); | ||
| - | map_clear(0,map,rgb(0,255,255)); | ||
| - | |||
| - | // Create the graph for the Main process | ||
| - | graph = new_map(50,50,8); | ||
| - | map_clear(0,graph,rgb(255,255,0)); | ||
| - | |||
| - | // Position the main process and create the ship | ||
| - | x = y = z = 100; | ||
| - | SpaceShip(0,map,100,100,0,20,5000); | ||
| - | |||
| - | Loop | ||
| - | frame; | ||
| - | End | ||
| - | End | ||
| - | |||
| Process SpaceShip( int file , int graph , int x , int y , int angle , int maxspeed , int maxturnspeed ) | Process SpaceShip( int file , int graph , int x , int y , int angle , int maxspeed , int maxturnspeed ) | ||
| Private | Private | ||
| Line 60: | Line 38: | ||
| // Handle collision | // Handle collision | ||
| if( (collisionID = collision(type main))) | if( (collisionID = collision(type main))) | ||
| - | + | text = "collision with: " + collisionID; | |
| else | else | ||
| text = "no collision"; | text = "no collision"; | ||
| Line 66: | Line 44: | ||
| frame; | frame; | ||
| End | End | ||
| + | End | ||
| + | |||
| + | Process Main() | ||
| + | Private | ||
| + | int map; | ||
| + | Begin | ||
| + | |||
| + | // Create the graph for the ship | ||
| + | map = new_map(20,20,8); | ||
| + | map_clear(0,map,rgb(0,255,255)); | ||
| + | |||
| + | // Create the graph for the Main process | ||
| + | graph = new_map(50,50,8); | ||
| + | map_clear(0,graph,rgb(255,255,0)); | ||
| + | |||
| + | // Position the main process and create the ship | ||
| + | x = y = z = 100; | ||
| + | SpaceShip(0,map,100,100,0,20,5000); | ||
| + | |||
| + | Repeat | ||
| + | frame; | ||
| + | Until(key(_ESC)) | ||
| + | |||
| End | End | ||
| </pre> | </pre> | ||
| - | Used in example: [[ | + | Used in example: [[write_string]](), [[key]](), [[collision]](), [[new_map]](), [[map_clear]](), [[advance]](), [[graph]], [[type]] |
| {{Funcbox | {{Funcbox | ||
| | category = Processinteraction | | category = Processinteraction | ||
| }} | }} | ||
Revision as of 11:35, 21 July 2008
Contents |
Definition
INT Collision ( <INT processID|processTypeID> )
Checks if a process collided with the process calling Collision().
When a processTypeID is specified, there could be multiple fitting collisions. In this case, collision() returns a processID on each subsequent call, until it returns 0. This can be reset by use of the frame; statement, and in such case, frame(0); can be handy.
Parameters
| INT processID|processTypeID | - The ProcessID of the process or the ProcessTypeID of the type of processes to be checked. |
Returns
INT : The ID of the collided process.
| 0 | - No collision |
| >0 | - The processID of the process colliding with the current process |
Example
Process SpaceShip( int file , int graph , int x , int y , int angle , int maxspeed , int maxturnspeed )
Private
int speed;
int collisionID;
string text;
Begin
write_string(0,0,0,0,&text);
Loop
// Handle movement
speed+=key(_up)*(speed<maxspeed)-key(_down)*(speed>-maxspeed);
angle+=(key(_left)-key(_right))*maxturnspeed;
advance(speed);
// Handle collision
if( (collisionID = collision(type main)))
text = "collision with: " + collisionID;
else
text = "no collision";
end
frame;
End
End
Process Main()
Private
int map;
Begin
// Create the graph for the ship
map = new_map(20,20,8);
map_clear(0,map,rgb(0,255,255));
// Create the graph for the Main process
graph = new_map(50,50,8);
map_clear(0,graph,rgb(255,255,0));
// Position the main process and create the ship
x = y = z = 100;
SpaceShip(0,map,100,100,0,20,5000);
Repeat
frame;
Until(key(_ESC))
End
Used in example: write_string(), key(), collision(), new_map(), map_clear(), advance(), graph, type
| Processinteraction Functions | |
| • Advance() • Collision() • Exists() • Get_angle() • Get_dist() • Get_id() • Let_me_alone() • Signal() • Xadvance() • | |
