N=7 REPULSION=0.01 GLOBAL B_RI,B_LE,B_UP,B_LO,REPULSION B_RI=159-17 B_LE=0 B_UP=0 B_LO=127-17 RANDOMIZE TIMER DIM PX(N),PY(N),VX(N),VY(N) FOR I=0 TO N SPRITE I SIZE 2 PAL I PX(I)=RND(140) PY(I)=RND(100) NEXT I DO CALL PHYSICS (N,VX(),VY(),PX(),PY()) CALL DRAW (N,PX(),PY()) WAIT VBL LOOP SUB PHYSICS(N,VX(),VY(),PX(),PY()) FX=0 FY=0 FOR I=0 TO N CALL FORCES(I,FX,FY,VX(I),VY(I),PX(I),PY(I),PX(),PY()) CALL MOTION(FX,FY,VX(I),VY(I),PX(I),PY(I)) CALL COLLISION(I,FX,FY,VX(I),VY(I),PX(I),PY(I)) NEXT I END SUB SUB FORCES(I,FX,FY,VX,VY,PX,PY,PX(),PY()) FX=0.01 FY=0.01 CALL C_BALL2(I,FX,FY,VX,VY,PX,PY,PX(),PY(),REPULSION) END SUB SUB MOTION(FX,FY,VX,VY,PX,PY) ADD VX,FX ADD VY,FY ADD PX,VX ADD PY,VY END SUB SUB COLLISION(I,FX,FY,VX,VY,PX,PY) CALL C_WALL(FX,VX,PX,B_LE,B_RI) CALL C_WALL(FY,VY,PY,B_UP,B_LO) 'CALL C_BALL(I,FX,FY,VX,VY,PX,PY) END SUB SUB C_WALL(F,V,P,B1,B2) IF PB2 THEN V=-ABS(V) END SUB SUB C_BALL(I,FX,FY,VX,VY,PX,PY) IF SPRITE HIT(I) THEN VX=-VX VY=-VY 'VX(HIT) END IF END SUB SUB C_BALL2(I,FX,FY,VX,VY,PX,PY,PX(),PY(),REP) IF SPRITE HIT(I) THEN DX=PX-PX(HIT) DY=PY-PY(HIT) D=SQR(PX*PX+PY*PY) FX=DX*REP FY=DY*REP 'VX(HIT) 'FX=RND(1) 'FY=RND(1) END IF END SUB SUB DRAW(N,PX(),PY()) FOR I=0 TO N SPRITE I,PX(I),PY(I),3 NEXT I END SUB #1:MAIN PALETTES 00383430003B3733003C2825002E0C08 001F1B0A002B272200382410002A1500 #2:MAIN CHARACTERS 00000000000000000000000000000000 071F3F7F7FFFFFFF0000000000000000 E0F8FCFEFEFFFFFF0000000000000000 0208061D5274EF7F010719222D0B109F 300478CF013FFFA9C0F88639FFC723FF 000000008000C040000000000080C080 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000070000000000000000 00000000000000E00000000000000000 00000000000000000000000000000000 00000103070F1F3F0000000000000000 0F7FFFFFFFFFFFFF0000000000000000 F0FEFFFFFFFFFFFF0000000000000000 000080C0E0F0F8FC0000000000000000 00000000000000000000000000000000 FFFFFF7F7F3F1F070000000000000000 FFFFFFFEFEFCF8E00000000000000000 F3EEE4BF541F0B120F9F1F472F61370D 1FF1BFF740EF65F8FEFF47CFFFD3FEC6 C0C0C0C000800000C0C0C08080800000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000101010000000000000000 1F3F7FFFFFFFFFFF0000000000000000 F8FCFEFFFFFFFFFF0000000000000000 00000000008080800000000000000000 3F7F7F7FFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FCFEFEFEFFFFFFFF0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 08000000000000000703000000000000 C0000000000000003CF0000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 01010100000000000000000000000000 FFFFFFFFFF7F3F1F0000000000000000 FFFFFFFFFFFEFCF80000000000000000 80808000000000000000000000000000 FFFFFFFF7F7F7F3F0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFEFEFEFC0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 07000000000000000000000000000000 E0000000000000000000000000000000 00000000000000000000000000000000 3F1F0F07030100000000000000000000 FFFFFFFFFFFF7F0F0000000000000000 FFFFFFFFFFFFFEF00000000000000000 FCF8F0E0C08000000000000000000000