Spaces:
Running
Running
# Autonomous Robot | |
## donmccurdy | |
```javascript | |
map.defineObject('robot', { | |
// ... | |
'behavior': function (me) { | |
if (me.canMove('down')) { | |
me.move('down'); | |
} else if (me.canMove('right')) { | |
me.move('right'); | |
} | |
} | |
}); | |
``` | |
# Portal style | |
## JustBlackBird | |
Just press "R" and go through the portals | |
```javascript | |
if (player.teleportersAreReady) { | |
// Do not add teleporters more than once | |
return; | |
} | |
// Place two teleporters at the map | |
map.placeObject(player.getX(), player.getY() - 1, 'teleporter'); | |
map.placeObject(map.getWidth() - 2, 7, 'teleporter'); | |
// We need teleporters objects, so find them | |
var objs = map.getDynamicObjects(); | |
var teleporters = []; | |
for (var i = 0, len = objs.length; i < len; i++) { | |
if (objs[i].getType() == 'teleporter') { | |
teleporters.push(objs[i]); | |
} | |
} | |
// Link teleporters one to another | |
teleporters[0].setTarget(teleporters[1]); | |
teleporters[1].setTarget(teleporters[0]); | |
// We need an indicator to know if teleporters already | |
// in place or not. Use "player" object from the closure | |
player.teleportersAreReady = true; | |
``` | |
# Remote Control | |
## sheaulle | |
```javascript | |
// works with levels 11, 12, 13 | |
var PX = map.getPlayer().getX(); | |
var PY = map.getPlayer().getY()-10; | |
var MX = me.getX(); | |
var MY = me.getY(); | |
if (PX == MX && PY > MY) { | |
me.move('down'); | |
} | |
else if (PX == MX && PY <= MY) { | |
me.move('up'); | |
} | |
else if (PX > MX) { | |
me.move('right'); | |
} | |
else if (PX < MX) { | |
me.move('left'); | |
} | |
``` | |
##Pcat0 | |
Hit 'q' to toggle between controlling you and the robot. Works for 11, 12, 13 | |
```javascript | |
me.move(dr); | |
} | |
}); | |
var Pc = 0; | |
var dr = ''; | |
map.getPlayer().setPhoneCallback(function(){ | |
if ((Pc++)%2==0){ | |
map.overrideKey('down', ()=> dr = 'down'); | |
map.overrideKey('up', ()=> dr = 'up'); | |
map.overrideKey('left', ()=> dr = 'left'); | |
map.overrideKey('right', ()=> dr = 'right'); | |
}else{ | |
map.overrideKey('down', ()=> map.getPlayer().move('down')); | |
map.overrideKey('up', ()=> map.getPlayer().move('up')); | |
map.overrideKey('left', ()=> map.getPlayer().move('left')); | |
map.overrideKey('right', ()=> map.getPlayer().move('right')); | |
dr = ''; | |
} | |
});({function(){ | |
``` | |
# Control pad (works for 11, 12, 13) | |
## mingp | |
```javascript | |
if (typeof(me.controlInited == 'undefined')) { | |
me.controlSquares = [ | |
[40, 20, 'up', 'red'], | |
[39, 21, 'left', 'yellow'], | |
[41, 21, 'right', 'cyan'], | |
[40, 22, 'down', 'magenta'] | |
]; | |
for (var i = 0; i < me.controlSquares.length; ++i) { | |
var controlSquare = me.controlSquares[i]; | |
map.setSquareColor( | |
controlSquare[0], | |
controlSquare[1], | |
controlSquare[3] | |
); | |
} | |
me.controlInited = true; | |
} | |
for (var i = 0; i < me.controlSquares.length; ++i) { | |
var controlSquare = me.controlSquares[i]; | |
if ( | |
player.getX() == controlSquare[0] | |
&& player.getY() == controlSquare[1] | |
) { | |
me.move(controlSquare[2]); | |
break; | |
} | |
} | |
``` | |