Difference between revisions of "Script Classes for Adventure Games/Timer Class"
(6 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
Chapter: | Chapter: | ||
[[Script Classes for Adventure Games/Introduction|1]] | | [[Script Classes for Adventure Games/Introduction|1]] | | ||
− | [[Script Classes for Adventure Games/RootObj|2]] | | + | [[Script Classes for Adventure Games/RootObj Class|2]] | |
− | [[Script Classes for Adventure Games/Object|3]] | | + | [[Script Classes for Adventure Games/Object Class|3]] | |
− | [[Script Classes for Adventure Games/Collection|4]] | | + | [[Script Classes for Adventure Games/Collection Class|4]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Script Class|5]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Timer Class|6]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Feature Class|7]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/View Class|8]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/PicView Class|9]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Cycling Classes|10]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Motion Classes|11]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Avoider Class|12]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Event Class|13]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/User Class|14]]<br /> |
− | + | [[Script Classes for Adventure Games/Game Class|15]] | | |
− | + | [[Script Classes for Adventure Games/Locale Class|16]] | | |
− | + | [[Script Classes for Adventure Games/Region Class|17]] | | |
− | + | [[Script Classes for Adventure Games/Room Class|18]] | | |
− | + | [[Script Classes for Adventure Games/Timer2 Class|19]] | | |
− | + | [[Script Classes for Adventure Games/InvItem Class|20]] | | |
− | + | [[Script Classes for Adventure Games/Block Class|21]] | | |
− | + | [[Script Classes for Adventure Games/Cage Class|22]] | | |
− | + | [[Script Classes for Adventure Games/Sound Class|23]] | | |
− | + | [[Script Classes for Adventure Games/StatusLine Class|24]] | | |
− | + | [[Script Classes for Adventure Games/File Class|25]] | | |
− | + | [[Script Classes for Adventure Games/Code Class|26]] | | |
− | + | [[Script Classes for Adventure Games/Global Variables|27]] | | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [[Script Classes for Adventure Games/Game| | ||
− | [[Script Classes for Adventure Games/Locale| | ||
− | [[Script Classes for Adventure Games/Region| | ||
− | [[Script Classes for Adventure Games/Room| | ||
− | [[Script Classes for Adventure Games/Timer2| | ||
− | |||
− | [[Script Classes for Adventure Games/InvItem| | ||
− | [[Script Classes for Adventure Games/Block| | ||
− | [[Script Classes for Adventure Games/Cage| | ||
− | [[Script Classes for Adventure Games/Sound| | ||
− | [[Script Classes for Adventure Games/StatusLine| | ||
− | [[Script Classes for Adventure Games/File| | ||
− | [[Script Classes for Adventure Games/Code| | ||
− | [[Script Classes for Adventure Games/Global Variables| | ||
[[Script Classes for Adventure Games/Index|Index]] | [[Script Classes for Adventure Games/Index|Index]] | ||
</div><br /> | </div><br /> | ||
− | <div align="center"><span style="font-size: 22pt">Timer</span><br /> | + | <div align="center"><span style="font-size: 22pt">The Timer Class</span><br /> |
''Author: [[Jeff Stephenson]]''<br /> | ''Author: [[Jeff Stephenson]]''<br /> | ||
''Date: 5 April 1988''</div> | ''Date: 5 April 1988''</div> | ||
Line 62: | Line 39: | ||
| | ||
− | + | ==<br /> The Timer Class == | |
+ | |||
+ | The Timer class implements the concept of an alarm clock, allowing you to create an object which will cue: another object after a certain interval. Timers dispose: of themselves after cue:ing their client, and always check to see if their client is still present before cue:ing it. | ||
+ | |||
+ | An important concept relating to Timers is that of game time versus real time. Real time is just what it sounds like — real time in real seconds. Game time is time adjusted to the performance of the user's computer — it is the same as real time on a computer which is able to keep up with the animation demands of the game, but slows down in proportion to the speed of the user's computer when it is not able to keep up. | ||
+ | |||
+ | An example may help clarify this. Say that you're writing a game in which ego has only five seconds to leave a room before a bomb blows up. If you set this time interval as real time, it may give you just enough time to get out on your nice fast 286 or 386 machine. But on a Tandy 1000, where it takes 1/5th of a second to complete an animation cycle instead of the standard 1/10th of a second, the user will only be able to go half as far and thus has no chance of leaving the room before the bomb blows. The time interval should really have been set in game time, which would have given the user the same number of animation cycles to get out. | ||
+ | |||
+ | As a rule of thumb, time intervals which are meant to be a constraint on how long the user has to do something should be set in game time, whereas time intervals which are just meant to be a delay between two events should be real time. A user with a slow machine has no desire to watch a banner screen twice as long as one with a fast machine. | ||
+ | |||
+ | {| | ||
+ | |width= "125"|In file:||system.sc | ||
+ | |- | ||
+ | |Inherits from:||Object | ||
+ | |- | ||
+ | |Inherited by:||none | ||
+ | |} | ||
+ | |||
+ | ===<br /> Properties === | ||
+ | |||
+ | <blockquote> | ||
+ | ====<br /> client ==== | ||
+ | <blockquote>The object which the Timer will cue: at the end of its interval.</blockquote> | ||
+ | |||
+ | ====<br /> cycleCnt ==== | ||
+ | <blockquote>The number of animation cycles remaining until the Timer cue:s its client. This is used by Timers which are timing either animation cycles or game time.</blockquote> | ||
+ | |||
+ | ====<br /> seconds ==== | ||
+ | <blockquote>The number of seconds remaining until the Timer cue:s its client. This is used by Timers which are timing real time.</blockquote> | ||
+ | |||
+ | ====<br /> lastTime ==== | ||
+ | <blockquote>Private. Used by a timer timing real time.</blockquote> | ||
+ | </blockquote> | ||
+ | |||
+ | ===<br /> Methods === | ||
+ | |||
+ | <blockquote> | ||
+ | ====<br /> set: who nSec [nMin [nHrs]] ==== | ||
+ | <blockquote>Create a timer to cue: who after a specified interval in game time. Set it to cue: in nSec seconds. nMin and nHrs are optional minutes and hours until the cue:.</blockquote> | ||
+ | |||
+ | ====<br /> setReal: who nSec [nMin [nHrs]] ==== | ||
+ | <blockquote>Like set:, but the time interval is in real time.</blockquote> | ||
+ | |||
+ | ====<br /> setCycle: who cycles ==== | ||
+ | <blockquote>Create a timer to cue: who after cycles animation cycles.</blockquote> | ||
+ | |||
+ | ====<br /> delete ==== | ||
+ | <blockquote>Private. Does the actual deletion of a Timer. You should use dispose:, which sets the Timer up for a delete: by the system later on.</blockquote> | ||
+ | </blockquote> | ||
| | ||
Line 76: | Line 101: | ||
<span style="float: left">[[Script Classes for Adventure Games/Script Class|< Previous: The Script Class]]</span> | <span style="float: left">[[Script Classes for Adventure Games/Script Class|< Previous: The Script Class]]</span> | ||
− | <span style="float: right">[[Script Classes for Adventure Games/Feature|Next: Feature >]]</span> | + | <span style="float: right">[[Script Classes for Adventure Games/Feature Class|Next: The Feature Class >]]</span> |
| |
Latest revision as of 22:15, 11 December 2015
Chapter:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
Index
The Timer Class
The Timer class implements the concept of an alarm clock, allowing you to create an object which will cue: another object after a certain interval. Timers dispose: of themselves after cue:ing their client, and always check to see if their client is still present before cue:ing it.
An important concept relating to Timers is that of game time versus real time. Real time is just what it sounds like — real time in real seconds. Game time is time adjusted to the performance of the user's computer — it is the same as real time on a computer which is able to keep up with the animation demands of the game, but slows down in proportion to the speed of the user's computer when it is not able to keep up.
An example may help clarify this. Say that you're writing a game in which ego has only five seconds to leave a room before a bomb blows up. If you set this time interval as real time, it may give you just enough time to get out on your nice fast 286 or 386 machine. But on a Tandy 1000, where it takes 1/5th of a second to complete an animation cycle instead of the standard 1/10th of a second, the user will only be able to go half as far and thus has no chance of leaving the room before the bomb blows. The time interval should really have been set in game time, which would have given the user the same number of animation cycles to get out.
As a rule of thumb, time intervals which are meant to be a constraint on how long the user has to do something should be set in game time, whereas time intervals which are just meant to be a delay between two events should be real time. A user with a slow machine has no desire to watch a banner screen twice as long as one with a fast machine.
In file: | system.sc |
Inherits from: | Object |
Inherited by: | none |
Properties
clientThe object which the Timer will cue: at the end of its interval.
cycleCntThe number of animation cycles remaining until the Timer cue:s its client. This is used by Timers which are timing either animation cycles or game time.
secondsThe number of seconds remaining until the Timer cue:s its client. This is used by Timers which are timing real time.
lastTimePrivate. Used by a timer timing real time.
Methods
set: who nSec [nMin [nHrs]]Create a timer to cue: who after a specified interval in game time. Set it to cue: in nSec seconds. nMin and nHrs are optional minutes and hours until the cue:.
setReal: who nSec [nMin [nHrs]]Like set:, but the time interval is in real time.
setCycle: who cyclesCreate a timer to cue: who after cycles animation cycles.
deletePrivate. Does the actual deletion of a Timer. You should use dispose:, which sets the Timer up for a delete: by the system later on.
- Notes
< Previous: The Script Class Next: The Feature Class >