But I used the same system in this program:
`=================
` WAVE SPHERE
`=================
`By The SITHSPAWN
`-----------------
HIDE MOUSE
SYNC ON
POSITION CAMERA 0,0,-100
AUTOCAM OFF
FOR Y=1 TO 20
FOR SPHERE=1 TO 20
MAKE OBJECT SPHERE (Y*20+SPHERE),15
POSITION OBJECT (Y*20+SPHERE),0,Y*20,0
YROTATE OBJECT (Y*20+SPHERE),(SPHERE*360/20)
NEXT SPHERE
NEXT Y
MAKE OBJECT SPHERE 1000,1
R=RND(255)
G=RND(255)
B=RND(255)
R1=10
B1=10
G1=10
SPEED=1
T=1
SHOT=1
SPEEDF=0
SPEEDS=0
SPEEDU=0
DISTANCE=0
DIM HIT(20,20)
FOR Y=1 TO 20
FOR SPHERE=1 TO 20
HIT(Y,SPHERE)=0
NEXT SPHERE
NEXT Y
DO
IF R>245 OR B<10 THEN R1=0-R1
R=R+R1
IF G>245 OR G<10 THEN G1=0-G1
G=G+G1
IF B>245 OR B<10 THEN B1=0-B1
B=B+B1
FOR Y=1 TO 20
FOR SPHERE=1 TO 20
IF HIT(Y,SPHERE)=1 THEN GOTO B
MOVE OBJECT (Y*20+SPHERE),SPEED
COLOR OBJECT (Y*20+SPHERE),RGB(R,G,B)
B:
NEXT SPHERE
NEXT Y
IF T=1
SPEED=SPEED+1
IF SPEED=10 THEN T=2
GOTO A
ENDIF
IF T=2
SPEED=SPEED-1
IF SPEED=-10 THEN T=1
GOTO A
ENDIF
A:
IF KEYSTATE(17)=1
SPEEDF=SPEEDF+1
IF SPEEDF>10 THEN SPEEDF=10
` MOVE OBJECT 1000,10.0
ENDIF
IF KEYSTATE(31)=1
SPEEDF=SPEEDF-1
IF SPEEDF<-10 THEN SPEEDF=-10
` MOVE OBJECT 1000,-10.0
ENDIF
IF KEYSTATE(72)=1
PITCH OBJECT UP 1000,5
ENDIF
IF KEYSTATE(80)=1
PITCH OBJECT DOWN 1000,5
ENDIF
` IF KEYSTATE(75)=1
IF LEFTKEY()=1
TURN OBJECT LEFT 1000,5
ENDIF
IF KEYSTATE(77)=1
TURN OBJECT RIGHT 1000,5
ENDIF
IF KEYSTATE(71)=1 OR KEYSTATE(16)=1
ROLL OBJECT LEFT 1000,5
ENDIF
IF KEYSTATE(73)=1 OR KEYSTATE(18)=1
ROLL OBJECT RIGHT 1000,5
ENDIF
IF KEYSTATE(30)=1
SPEEDS=SPEEDS+1
IF SPEEDS>10 THEN SPEEDS=10
` TURN OBJECT LEFT 1000,90
` MOVE OBJECT 1000,10
` TURN OBJECT RIGHT 1000,90
ENDIF
IF KEYSTATE(32)=1
SPEEDS=SPEEDS-1
IF SPEEDS<-10 THEN SPEEDS=-10
` TURN OBJECT RIGHT 1000,90
` MOVE OBJECT 1000,10
` TURN OBJECT LEFT 1000,90
ENDIF
IF KEYSTATE(42)=1
SPEEDU=SPEEDU+1
IF SPEEDU>10 THEN SPEEDU=10
` PITCH OBJECT UP 1000,90
` MOVE OBJECT 1000,10
` PITCH OBJECT DOWN 1000,90
ENDIF
IF KEYSTATE(29)=1
SPEEDU=SPEEDU-1
IF SPEEDU<-10 THEN SPEEDU=-10
` PITCH OBJECT DOWN 1000,90
` MOVE OBJECT 1000,10
` PITCH OBJECT UP 1000,90
ENDIF
MOVE OBJECT 1000,SPEEDF
TURN OBJECT LEFT 1000,90
MOVE OBJECT 1000,SPEEDS
TURN OBJECT RIGHT 1000,90
PITCH OBJECT UP 1000,90
MOVE OBJECT 1000,SPEEDU
PITCH OBJECT DOWN 1000,90
PITCH OBJECT UP 1000,0-MOUSEMOVEY()
TURN OBJECT RIGHT 1000,MOUSEMOVEX()
ROTATE CAMERA OBJECT ANGLE X(1000),OBJECT ANGLE Y(1000),OBJECT ANGLE Z(1000)
POSITION CAMERA OBJECT POSITION X(1000),OBJECT POSITION Y(1000),OBJECT POSITION Z(1000)
SET CURSOR 0,0
PRINT "CAMERA POSITION X: ",CAMERA POSITION X()
PRINT "CAMERA POSITION Y: ",CAMERA POSITION Y()
PRINT "CAMERA POSITION Z: ",CAMERA POSITION Z()
PRINT "CAMERA ANGLE X: ",CAMERA ANGLE X()
PRINT "CAMERA ANGLE Y: ",CAMERA ANGLE Y()
PRINT "CAMERA ANGLE Z: ",CAMERA ANGLE Z()
` PRINT "OBJECT ANGLE X: ",OBJECT ANGLE X(1000)
` PRINT "OBJECT ANGLE Y: ",OBJECT ANGLE Y(1000)
` PRINT "OBJECT ANGLE Z: ",OBJECT ANGLE Z(1000)
PRINT "FORWARD MOTION: ",SPEEDF
PRINT "LATERAL MOTION: ",SPEEDS
PRINT "VERTICAL MOTION: ",SPEEDU
PRINT OBJECT EXIST(1001)
PRINT MOUSECLICK()
OLDMX#=MX#
OLDMY#=MY#
SYNC
LOOP
And it works fine. What's the difference in the two programs?
"It's against my programming to impersonate a deity!"~C-3P0