This wiki is out of date, use the continuation of this wiki instead

Process

From FenixWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 00:06, 9 May 2007 (edit)
Sandman (Talk | contribs)
m
← Previous diff
Revision as of 12:53, 12 May 2007 (edit) (undo)
Sandman (Talk | contribs)

Next diff →
Line 2: Line 2:
[[category:reserved]] [[category:reserved]]
[[category:language]] [[category:language]]
- 
-For the statement "Process", go [[Process_(statement)|here]]. 
== Definition == == Definition ==
 +
 +=== Statement ===
 +'''PROCESS''' <processname>([<processparameters>]);
 +
 +Process is a reserved word used to start the code of a process.
 +
 +=== Concept ===
A process is a [[subroutine]] to which one or more of the following apply: A process is a [[subroutine]] to which one or more of the following apply:
*it receives [[parameter]]s *it receives [[parameter]]s
Line 24: Line 29:
== Example == == Example ==
<pre> <pre>
-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+Public // Declare public variables here (Fenix 0.86 and up)
 +Private // Declare private variables here
int speed; int speed;
-Begin+Begin // Start the main processcode
Loop Loop
speed+=key(_up)*(speed<maxspeed)-key(_down)*(speed>-maxspeed); speed+=key(_up)*(speed<maxspeed)-key(_down)*(speed>-maxspeed);
Line 34: Line 40:
frame; frame;
End End
-End+End // End the main processcode
</pre> </pre>
Now one can call this process for example by doing the following. Now one can call this process for example by doing the following.
<pre> <pre>
 +Program example;
Private Private
int map; int map;
Line 49: Line 56:
This will make a SpaceShip with a cyan coloured block, able to move around the screen. This will make a SpaceShip with a cyan coloured block, able to move around the screen.
 +
 +When the End of the main processcode is reached, the process ends

Revision as of 12:53, 12 May 2007


Contents

Definition

Statement

PROCESS <processname>([<processparameters>]);

Process is a reserved word used to start the code of a process.

Concept

A process is a subroutine to which one or more of the following apply:

In addition to these possibilities, a process always has a frame; statement. The difference between a function and a process is a process is treated as a separate thread. This means one can't let a process return a value like a function, as the father process continues its code as well, as soon as the process hits a frame; statement or when the code is done. When that happens, the process 'returns' its ProcessID and continues the code (in the next frame).

In earlier Fenix versions (2005 and earlier) there is no difference in syntax, however, a process is treated like a function when there is no frame; statement in the code.

When the frame; statement is reached in the code, a number of other local variables are defined or updated not only of the new process, but also of related processes. These are:

  • The father variable of the new process.
  • The son variable of the father process (updated).
  • The bigbro variable of the new process.
  • The smallbro variable of the processes called by the father immediately before the new process was called (updated).
  • The son and smallbro variables are also defined of the new process, but do not yet carry values.

Example

Process SpaceShip( int file, int graph, int x, int y, int angle, int maxspeed, int maxturnspeed)
Public // Declare public variables here (Fenix 0.86 and up)
Private // Declare private variables here
    int speed;
Begin // Start the main processcode
    Loop
        speed+=key(_up)*(speed<maxspeed)-key(_down)*(speed>-maxspeed);
        angle+=(key(_left)-key(_right))*maxturnspeed;
        advance(speed);
        frame;
    End
End // End the main processcode

Now one can call this process for example by doing the following.

Program example;
Private
    int map;
Begin
    map = new_map(20,20,8);
    map_clear(0,map,rgb(0,255,255));
    SpaceShip(0,map,100,100,0,20,5000);
End

Used in example: key(), advance(), new_map(), map_clear(), angle

This will make a SpaceShip with a cyan coloured block, able to move around the screen.

When the End of the main processcode is reached, the process ends

Personal tools