REM F=G*M1*M2/D^2 REM F=G/(D*D) GCON=2.5 DMAX=1 RANDOMIZE TIMER TOUCHSCREEN REM WAS8BIT SPRITE 0,0,0,1 DIM X(63),Y(63),DX(63),DY(63) DDX=RND-RND DDY=RND-RND FOR I=5 TO 63 X(I)=RND(159) Y(I)=RND(127) DX(I)=DDX DY(I)=DDY SPRITE I,X(I),Y(I),4 NEXT I FOR I=1 TO 4 READ X(I) READ Y(I) SPRITE I,X(I),Y(I),2 SPRITE I SIZE 1 NEXT I DATA 20,20,100,20,20,100,100,100 DO IF TOUCH THEN SPRITE 0,TOUCH.X,TOUCH.Y, ELSE SPRITE 0,-1,-1, IF SPRITE HIT(0) THEN X(HIT)=TOUCH.X-8 Y(HIT)=TOUCH.Y-8 SPRITE HIT,X(HIT),Y(HIT), END IF FOR I=5 TO 63 FOR J=1 TO 4 DDX=X(J)+4-X(I) DDY=Y(J)+4-Y(I) D=SQR(DDX*DDX+DDY*DDY) F=GCON/(D*D) DDF=F/D FY=DDY*DDF FX=DDX*DDF S=1 IF D<4 THEN X(I)=X(I)+RND(3)-RND(3) Y(I)=Y(I)+RND(3)-RND(3) S=3 END IF DX(I)=DX(I)+FX DY(I)=DY(I)+FY NEXT J IF DX(I)>DMAX THEN DX(I)=DMAX IF DX(I)<-DMAX THEN DX(I)=-DMAX IF DY(I)>DMAX THEN DY(I)=DMAX IF DY(I)<-DMAX THEN DY(I)=-DMAX X(I)=X(I)+DX(I)*S Y(I)=Y(I)+DY(I)*S IF X(I)<0 THEN X(I)=X(I)+160 IF X(I)>159 THEN X(I)=X(I)-160 IF Y(I)<0 THEN Y(I)=Y(I)+128 IF Y(I)>127 THEN Y(I)=Y(I)-128 SPRITE I,X(I),Y(I), NEXT I WAIT VBL LOOP #1:MAIN PALETTES 003C2A1500383400003C0C00003F3C00 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000008000000000000000 071F3F7F7FFFFFFF0000000000000000 E0F8FCFEFEFFFFFF0000000000000000 0018245A5A24180000183C66663C1800 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFF7F7F3F1F070000000000000000 FFFFFFFEFEFCF8E00000000000000000