Really?
But I have these and they work:
TYPE pickup_variables
obj AS INTEGER = 0
speed AS FLOAT = 0.0
spin AS FLOAT = 0.0
ENDTYPE
DIM pickup(5) AS pickup_variables
`Touching the pickup
FOR n = 811 to 815
no = n - 810
IF OBJECT COLLISION(101, n) = 1 AND pickup(no).obj = 0
pickup(no).obj = 1
pickup(no).speed = -0.3
ENDIF
NEXT n
`Moving the pickup
FOR n = 811 to 815
no = n - 810
IF pickup(no).obj = 1
INC pickup(no).speed, 0.05
INC pickup(no).spin, 10
MOVE OBJECT UP n, pickup(no).speed
YROTATE OBJECT n, pickup(no).spin
ENDIF
NEXT n
As you can see, "speed" begins as 0. Then in the IF statement, I assigned it a value of -0.3. In the code, this caused my object to first move downwards before moving upwards. If I were to comment out this line:
The object just moves upwards the moment object 101 collides with it.
I don't know... perhaps I'm really not understanding it o.O
EDIT: Wait... are you talking about declaring the values inside the TYPE and ENDTYPE lines? Your example did the same no? I'm confused =/