ACCELERATE

============== float: #43 instructions q x - dup r y - dup 2 roll dist 10 / 1 + #determine acceleration 15 min #limit acceleration w' sto arctan dup w sin speedx' sto w cos chs speedy' sto chronon 3 + chronon' setparam rti =============== float: is actually the big brother of a simple float you might find easier to swallow since it's smaller. It won't decelerate gracefully, though. =============== float: q x - r y - arctan dup 8 sin speedx' sto -8 cos speedy' sto chronon 3 + chronon' setparam rti =============== Here's an example robot. He sometimes hits walls. To get rid of that, just turn off NNE. However, the movement looks cooler with NNE on. ========================================== #processor: 50 #NNE: On float chronon' setint 10 chronon' setparam newpath call inton main: q x - r y - dist 15 < newpath if main jump newpath: a 4 * newpath2 + jump newpath2: 150 150 inca jump 12 12 inca jump 150 150 inca jump 12 288 inca jump 150 150 inca jump 288 288 inca jump 150 150 inca jump 288 12 inca jump inca: r' sto q' sto a 1 + 8 mod a' sto return {also try this robot after replacing the following code with the smaller version of float from above} float: #43 instructions q x - dup r y - dup 2 roll {dupn would be cool here. I could replace the above with q x - r y - 2 dupn} dist 10 / 1 + #love that DIST operator! 15 min #limit acceleration w' sto arctan dup w sin speedx' sto w cos chs speedy' sto chronon 3 + chronon' setparam rti ========================================= This routine is Not smart enough to check its own dist from the target, so you must do that manually. Look at main: to see how. Now, remember, if you want to use this, it is best used as a secondary movement pattern. If you need to dodge an attack, or launch one of your own, remember to use -1 chronon' setint or 9999 chronon' setparam to switch this off first. Bryant Brandon <script language="Javascript"> <!-- setonclickmethods(); // --> </script> <center> <!-- google_ad_section_start(weight=ignore) --> <div id="fclinkback" style="visibility:hidden"><p> <font face="Verdana, Helvetica, Arial, sans-serif" size=1><a id="fcfootergif" href="http://www.fortunecity.com/" target="_new"><img src="http://www.fortunecity.com/images/fc_mp_logo_150x80.gif" border=0></a><br> <a id="fcfooterhosting" href="http://www.fortunecity.com/" target="_new">web hosting</a> &bull; <a id="fcfooterdomains" href="http://www.fortunecity.com/" target="_new">domain names</a> <br /> <a id="fcfooterdesign" href="http://www.fortunecity.com/web-design.shtml" target="_new">web design</a> &bull; <a href="http://www.hotgames.com/" target="_new">online games</a><br /></font> </p></div> <!-- google_ad_section_end --> <script language="Javascript"> <!-- if(FCWindowWidth > 400) { document.getElementById('fclinkback').style.visibility = "visible"; document.getElementById('fcfootergif').search = '?sid=fcfootergif'; document.getElementById('fcfooterhosting').search = '?sid=fcfooterhosting'; document.getElementById('fcfooterdomains').search = '?sid=fcfooterdomains'; document.getElementById('fcfooterdesign').search = '?sid=fcfooterdesign'; if(fcadunit != 'adult') { if(FCWindowWidth > 700) { // ZEDO for channel: FC Member Content Foot , publisher: FortuneCity.com , Ad Dimension: Super Banner - 728 x 90 document.write('<scr'+'ipt language="JavaScript">var zflag_nid="895"; var zflag_cid="51"; var zflag_sid="1"; var zflag_width="728"; var zflag_height="90"; var zflag_sz="14"; </scr'+'ipt><scr'+'ipt language="JavaScript" src="http://d3.zedo.com/jsc/d3/fo.js"></scr'+'ipt>'); } else { // ZEDO for channel: FC Member Content Foot , publisher: FortuneCity.com , Ad Dimension: Full Banner - 468 x 60 document.write('<scr'+'ipt language="JavaScript">var zflag_nid="895"; var zflag_cid="51"; var zflag_sid="1"; var zflag_width="468"; var zflag_height="60"; var zflag_sz="0"; </scr'+'ipt><scr'+'ipt language="JavaScript" src="http://d3.zedo.com/jsc/d3/fo.js"></scr'+'ipt>'); } document.write('<scr'+'ipt type="text/javascript" src="http://fortunecity.us.intellitxt.com/intellitxt/front.asp?ipid=20722"></scr'+'ipt>'); document.write('<scr'+'ipt type="text/javascript">'); document.write('var dc_UnitID = 14;'); document.write('var dc_PublisherID = 37950;'); document.write('var dc_AdLinkColor = "blue";'); document.write('var dc_adprod="ADL";'); document.write('</scr'+'ipt>'); if (document.cookie.indexOf('fcseenpop') == -1) { pop_domain = document.domain.substring(document.domain.indexOf('.')); expiry_date = new Date(new Date().getTime() + 86400000).toGMTString(); // 24 hours // ZEDO for channel: FC Member Content Popunder , publisher: FortuneCity.com , Ad Dimension: Pixel/Popup - 1 x 1 document.write('<scr'+'ipt language="JavaScript">var zflag_nid="895"; var zflag_cid="51"; var zflag_sid="1"; var zflag_width="1"; var zflag_height="1"; var zflag_sz="15"; </scr'+'ipt><scr'+'ipt language="JavaScript" src="http://d3.zedo.com/jsc/d3/fo.js"></scr'+'ipt>'); document.cookie = 'fcseenpop=1; path=/; domain=' + pop_domain + '; expires=' + expiry_date; } } } // --> </script> </center> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-7234138-14"); pageTracker._setDomainName(".fortunecity.com"); pageTracker._trackPageview(); } catch(err) {} </script>