Randomize Timer():Sync On: Sync Rate 60:Autocam Off:Color BackDrop 0:RL=200:RH=250:Make Object Plain 1,50,50:Pitch Object Down 1,90:Position Object 1,0,-50,150 Global Miss=0 Global Hits=0 Global Speed#=.2 Do:If rnd(100)=1:Ob=Make_Alpha_Block(RL,RH,Chr$(Rnd(25)+65)):If Ob>0 then Position Object Ob,Rnd(100)-Rnd(100),200,Rnd(50)+Rnd(50)+120 Endif:k$=Inkey$():Move_Alpha_Block(RL,RH,k$):Ink Rgb(255,255,255),0:Set Cursor 0,0:Print "Hits: ";Hits:Print "Miss: ";Miss:Sync Loop Function Make_Alpha_Block(Range_L,Range_H,Letter$) For ObjectID= Range_L To Range_H:If Object Exist(ObjectID)=0 Then Exit Next ObjectID:If ObjectID>Range_H then ExitFunction 0 Letter$=Upper$(Left$(Letter$,1)):If Object Exist(ObjectID) Then Delete Object ObjectID Make Object Triangle ObjectID,0,0,0,0,.1,0,0,0,0:Make Mesh From Object ObjectID,ObjectID:Delete Object ObjectID Make Object Cube ObjectID,15:Add Limb ObjectID,1,ObjectID:Delete Mesh ObjectID:Create Bitmap 1,128,128:Set Current Bitmap 1:Ink Rgb(0,0,255),0:Box 0,0,127,127:Ink Rgb(255,0,0),0 ts=Text Size():Set Text Size 120:Center Text 64,4,Letter$:Set Text Size ts:Get Image ObjectID,0,0,127,127,1:Texture Object ObjectID,ObjectID:Set Current Bitmap 0:Delete Bitmap 1:ltr#=asc(Letter$):ltr#=ltr#/100.0:Offset Limb ObjectID,1,ltr#,0,0:Hide Limb ObjectID,1 EndFunction ObjectID Function Move_Alpha_Block(Range_L,Range_H,Letter$) Letter$=Upper$(Left$(Letter$,1)):ltr#=Asc(Letter$):ltr#=ltr#/100.0:mx#=MouseMoveX():my#=MouseMoveY():For i = Range_L to Range_H:If Object Exist(i) Position Object i, Object Position X(i)+mx#*(ltr#=Limb Offset X(i,1)),Object Position Y(i),Object Position Z(i)-my#*(ltr#=Limb Offset X(i,1)):Position Object i,Object Position X(i),Object Position Y(i)-.2,Object Position Z(i):Miss=Miss+(Object Position Y(i)<-150):Hits=Hits+(Object Collision(i,1)<>0):Speed#=Speed#+.01*(Object Collision(i,1)<>0):If Object Position Y(i)<-150 Then Delete Object i Else If Object Collision(i,1) Then Delete Object i Endif:Next i EndFunction