Asteroid Shower
#11
For any IF statement, it's always implied <> 0 for a truth expression.

IF holdspace THEN ...  

The above is the exact same as if you had typed IF holdspace <>  0 THEN ...

Code: (Select All)
IF _KEYDOWN(32) = 0 AND holdspace THEN holdspace = 0

The above *should be* the same as typing IF _KEYDOWN(32) = 0 AND holdspace <> 0 THEN holdspace = 0.

The reason I say *should* is that sometimes those types of statements can get resolved in an unexpected order such as IF _KEYDOWN(32) = (0 AND holdspace) THEN....   If I was writing that line of code, I think I'd either write it as:

IF NOT _KEYDOWN(32) AND holdspace THEN holdspace = 0

Or, perhaps as:

IF (_KEYDOWN(32) = 0) AND (holdspace <> 0) THEN holdspace = 0

I'm a strong believer in taking the ambiguity out of any order of operations.  As written, I'd personally question if it's doing exactly what I'd be expecting it to do for me.  Wink
Reply
#12
Quote:The above *should be* the same as typing IF _KEYDOWN(32) = 0 AND holdspace <> 0 THEN holdspace = 0.

Thanks Steve ..i was asking just about that , because some other dialects use as -1 as TRUE
or some use 1 or as you said everything that not NULL as TRUE
Wink
Reply
#13
@mnrvovrfc
It is fun!
Why do you not use sounds?

Nevertheless it works better on my notebook adding at line 83 (before the last LOOP) this code
Code: (Select All)
    _Limit 10

Is it normal that when I gain the rigth edge, the astroship appears again on the left edge?
Reply
#14
2 If holdspace <> 0 then make holdspace = 0
b = b + ...
Reply




Users browsing this thread: 4 Guest(s)