MMF2pong1C:\Documents and Settings\Family\Desktop\pong.mfa4(@02 2 2C' 2 2 hhATNFAPMSASUMAGMI """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwB00 h hpppph`@qxaxaxExpp`xÀI,0Qqqiph0$À$(mq4U444Uep`$IŽqUUuq$pHiÀ0YYYY888 xXDZmu8YY8U444UuuYyyyya`eÀm88Uqq4u8Y4ahÀDZ840Q4uY4aP,UMMIzizzzz {,{M{U<}}<yx8ax0uUQ ,m``E)}}Y $#W 51uO ~% ,;@= /&{m?S 5#P +*S}D 1U4_ Mk"8X )Th{> ){~L3jخvQ) 8WeO1  $&''&"  xAxAxAx㐂pppX$Ү0QqMAxhHÀiUUuUax`〆4YY8u$hu8U488puUQӎ0Ӽ<<$`axMUm)s͞c  `[  q= P2pO-AhppqmEumx4QӮq 2&  h|l%"Arial l 4 $  4 $  > 2&  . 2 . 2 . 2 :-predict h|l%"ArialX 4 $   2n;      . 2 . 2 . 2 :-predict h|l%"ArialX  4 $   2n;      . 2 . 2 . 2 :-predict h|l%"Arial   4  2??h|l%"Arial  (-predictj 2R    j 2R    $ $ | (-predict > 2&  & (-predict$  ZL)(   R&-Predictv  " > 2&  N $  \ 2D(   $ N $  \ 2D)   $ , 2 RemsAlterable values X and Y are the objects' coordinates. We use these as they can store decimal values (floats) rather than just whole numbers (integers) - this is essential for smooth movement. AltVal. A = angle of ball; this is much better than using MMFs built in movemnts, as it allows movement at any angle - not just one of the 32 "directions". AltVal.S = speed; again, this can be a decimal value, so you it's much more precise than the "speed" of builtin movements.NThese are the events that actually move the ball, using a little trigonometry.LThis makes the ball bounce realistically off the top & bottom of the screen.This makes the ball bounce off the top of the players bat - note that the bat has rounded ends - the bouncing is realistic, so you can actually aim where the ball goes./This is the same for the bottom end of the bat. NThis makes the ball bounce realistically off the flat part of the players bat. /This makes the ball get faster when it bounces. This is how the AI works: It actually predicts where the ball will go, rather than just trying to stay at the same height as the ball. Even if the ball bounces off the top and bottom of the screen 50 times on the way, the AI will instantly know where it will end up, the second it leaves the players bat. It does it by moving an invisible copy of the ball, just the same way as it does the actual ball, but using fastloops to make it happen 100s of times faster. Once it figures out where the ball will go, it creates a red "target" circle, that the AI bat will move towards. Once the AI bat has hit the ball, it returns to the middle, so it's better positioned to return the next shot, wherever it goes. Note, I never got round to making the ball bounce relaistically off the AI bat.EvObPlayerSpriteBallSprite PredictorSprite AI TargetSpriteAISpriteEvEdEvTsEvLsEvCs!DNE!#&'208 ACHKi <G@DHT