箭头
This commit is contained in:
parent
93c7121c46
commit
a208b05c8f
65
libs/core.js
65
libs/core.js
@ -470,28 +470,36 @@ core.prototype.keyUp = function(keyCode) {
|
|||||||
|
|
||||||
switch (keyCode) {
|
switch (keyCode) {
|
||||||
case 27: // ESC
|
case 27: // ESC
|
||||||
core.ui.drawSettings(true);
|
if (core.status.heroStop)
|
||||||
|
core.ui.drawSettings(true);
|
||||||
break;
|
break;
|
||||||
case 71: // G
|
case 71: // G
|
||||||
core.useFly(true);
|
if (core.status.heroStop)
|
||||||
|
core.useFly(true);
|
||||||
break;
|
break;
|
||||||
case 88: // X
|
case 88: // X
|
||||||
core.openBook(true);
|
if (core.status.heroStop)
|
||||||
|
core.openBook(true);
|
||||||
break;
|
break;
|
||||||
case 83: // S
|
case 83: // S
|
||||||
core.save(true);
|
if (core.status.heroStop)
|
||||||
|
core.save(true);
|
||||||
break;
|
break;
|
||||||
case 68: // D
|
case 68: // D
|
||||||
core.load(true);
|
if (core.status.heroStop)
|
||||||
|
core.load(true);
|
||||||
break;
|
break;
|
||||||
case 84: // T
|
case 84: // T
|
||||||
core.openToolbox(true);
|
if (core.status.heroStop)
|
||||||
|
core.openToolbox(true);
|
||||||
break;
|
break;
|
||||||
case 90: // Z
|
case 90: // Z
|
||||||
core.turnHero();
|
if (core.status.heroStop)
|
||||||
|
core.turnHero();
|
||||||
break;
|
break;
|
||||||
case 75: // K
|
case 75: // K
|
||||||
core.ui.drawQuickShop(true);
|
if (core.status.heroStop)
|
||||||
|
core.ui.drawQuickShop(true);
|
||||||
break;
|
break;
|
||||||
case 37: // UP
|
case 37: // UP
|
||||||
break;
|
break;
|
||||||
@ -1136,10 +1144,10 @@ core.prototype.setHeroMoveTriggerInterval = function () {
|
|||||||
direction = core.getHeroLoc('direction');
|
direction = core.getHeroLoc('direction');
|
||||||
x = core.getHeroLoc('x');
|
x = core.getHeroLoc('x');
|
||||||
y = core.getHeroLoc('y');
|
y = core.getHeroLoc('y');
|
||||||
var noPass;
|
var noPass = core.noPass(x + scan[direction].x, y + scan[direction].y), canMove = core.canMove();
|
||||||
noPass = core.noPass(x + scan[direction].x, y + scan[direction].y);
|
if (noPass || !canMove) {
|
||||||
if (noPass) {
|
if (canMove) // 非箭头:触发
|
||||||
core.trigger(x + scan[direction].x, y + scan[direction].y);
|
core.trigger(x + scan[direction].x, y + scan[direction].y);
|
||||||
core.drawHero(direction, x, y, 'stop');
|
core.drawHero(direction, x, y, 'stop');
|
||||||
if (core.status.autoHeroMove) {
|
if (core.status.autoHeroMove) {
|
||||||
core.status.movedStep++;
|
core.status.movedStep++;
|
||||||
@ -1191,32 +1199,28 @@ core.prototype.turnHero = function(direction) {
|
|||||||
core.canvas.ui.clearRect(0, 0, 416, 416);
|
core.canvas.ui.clearRect(0, 0, 416, 416);
|
||||||
}
|
}
|
||||||
|
|
||||||
core.prototype.moveHero = function (direction) {
|
core.prototype.canMove = function() {
|
||||||
core.setHeroLoc('direction', direction);
|
var direction = core.getHeroLoc('direction');
|
||||||
core.status.heroStop = false;
|
var nowBlock = core.getBlock(core.getHeroLoc('x'),core.getHeroLoc('y'));
|
||||||
var nowX = core.getHeroLoc('x');
|
|
||||||
var nowY = core.getHeroLoc('y');
|
|
||||||
var nowId, nowBlock = core.getBlock(nowX,nowY);
|
|
||||||
if (nowBlock!=null){
|
if (nowBlock!=null){
|
||||||
nowId = nowBlock.block.event.id;
|
nowId = nowBlock.block.event.id;
|
||||||
var nowIsArrow = nowId.slice(0, 5).toLowerCase() == 'arrow';
|
var nowIsArrow = nowId.slice(0, 5).toLowerCase() == 'arrow';
|
||||||
if(nowIsArrow){
|
if(nowIsArrow){
|
||||||
var nowArrow = nowId.slice(5).toLowerCase();
|
var nowArrow = nowId.slice(5).toLowerCase();
|
||||||
if (direction != nowArrow) {
|
if (direction != nowArrow) {
|
||||||
core.status.heroStop = true;
|
// core.status.heroStop = true;
|
||||||
core.turnHero(direction);
|
// core.turnHero(direction);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}console.log(direction,nowX,nowY, nowBlock, '1111')
|
}
|
||||||
var scan = {
|
var scan = {
|
||||||
'up': {'x': 0, 'y': -1},
|
'up': {'x': 0, 'y': -1},
|
||||||
'left': {'x': -1, 'y': 0},
|
'left': {'x': -1, 'y': 0},
|
||||||
'down': {'x': 0, 'y': 1},
|
'down': {'x': 0, 'y': 1},
|
||||||
'right': {'x': 1, 'y': 0}
|
'right': {'x': 1, 'y': 0}
|
||||||
};
|
};
|
||||||
var nextX = nowX + scan[direction].x;
|
var nextBlock = core.getBlock(core.nextX(),core.nextY());
|
||||||
var nextY = nowY + scan[direction].y;
|
|
||||||
var nextId, nextBlock = core.getBlock(nextX,nextY);
|
|
||||||
if (nextBlock!=null){
|
if (nextBlock!=null){
|
||||||
nextId = nextBlock.block.event.id;
|
nextId = nextBlock.block.event.id;
|
||||||
// 遇到单向箭头处理
|
// 遇到单向箭头处理
|
||||||
@ -1224,11 +1228,18 @@ core.prototype.moveHero = function (direction) {
|
|||||||
if(isArrow){
|
if(isArrow){
|
||||||
var nextArrow = nextId.slice(5).toLowerCase();
|
var nextArrow = nextId.slice(5).toLowerCase();
|
||||||
if ( (scan[direction].x + scan[nextArrow].x) == 0 && (scan[direction].y + scan[nextArrow].y) == 0 ) {
|
if ( (scan[direction].x + scan[nextArrow].x) == 0 && (scan[direction].y + scan[nextArrow].y) == 0 ) {
|
||||||
core.status.heroStop = true;
|
// core.status.heroStop = true;
|
||||||
core.turnHero(direction);
|
// core.turnHero(direction);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}console.log(direction,nextX,nextY, nextBlock, '2222')
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
core.prototype.moveHero = function (direction) {
|
||||||
|
core.setHeroLoc('direction', direction);
|
||||||
|
core.status.heroStop = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
core.prototype.moveOneStep = function() {
|
core.prototype.moveOneStep = function() {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user