사용자:Jinhoftyu/백괴던전.js: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
편집 요약 없음
편집 요약 없음
1번째 줄: 1번째 줄:
var mapX = 40;
var mapX = 40;
var mapY = 10;
var mapY = 10;
var base = [];
function mapgen() {
for (var y = 0; y < mapY; y++) {
for (var x = 0; x < mapY; x++) {
if ((y == 1 || y == mapY - 2) && (x != 0 && x != mapX - 1) || (x == 1 || x == mapX - 2) && (y != 0 && y != mapY - 1)) {
        base[y][x] = '#';
    } else if (x == 2 && y == 2) {
        base[y][x] = '<';
    } else if (x == mapX - 3 && y == mapY - 3) {
        base[y][x] = '>';
        } else if (y > 1 && y < mapY - 2 && x > 1 && x < mapX - 2) {
        base[y][x] = '.';
        }
}
}
}
var feat = [
[">", "", "", ""]
];
var entity = [];
var entity = [];
var item = [];
var item = [];
17번째 줄: 36번째 줄:
}
}
var map = document.getElementById("map");
var map = document.getElementById("map");
var x = 1;
var plx = 1;
var y = 1;
var ply = 1;
function refreshMap() {
function refreshMap() {
var temp = "";
var temp = "";
for (var i = 0; i < mapY; i++) {
for (var y = 0; y < mapY; y++) {
if (i == 0 || i == mapY - 1) {
        for (var x = 0; x < mapX; x++) {
temp += "#".repeat(mapX) + "<br />";
                var floor = base[y][x];
} else if (i == y) {
                var s = " ";
temp += "#" + ".".repeat(x - 1) + "@" + ".".repeat(mapX - x - 2) + "#<br />";
                if (floor != '\0') {
} else {
                    s = floor;
temp += "#" + ".".repeat(mapX - 2) + "#<br />";
                }
}
                if (plx == x && ply == y) {
}
                    s = "@";
temp += x + "," + y;
                }
                temp += s;
            }
            temp += "<br />";
        }
map.innerHTML = temp;
map.innerHTML = temp;
}
}
46번째 줄: 69번째 줄:
stats.innerHTML = temp2;
stats.innerHTML = temp2;
document.addEventListener('keydown', function(event) {
document.addEventListener('keydown', function(event) {
     if (event.code === 'KeyL' && x < mapX - 2) {
     if (event.code === 'KeyL' && plx < mapX - 2) {
     x++;
     plx++;
     }
     }
     if (event.code === 'KeyH' && x > 1) {
     if (event.code === 'KeyH' && plx > 1) {
     x--;
     plx--;
     }
     }
     if (event.code === 'KeyK' && y < mapY - 2) {
     if (event.code === 'KeyK' && ply < mapY - 2) {
     y++;
     ply++;
     }
     }
     if (event.code === 'KeyJ' && y > 1) {
     if (event.code === 'KeyJ' && ply > 1) {
     y--;
     ply--;
     }
     }
     refreshMap();
     refreshMap();
});
});
mapGen();
refreshMap();
refreshMap();

2023년 10월 24일 (화) 01:56 판

var mapX = 40;
var mapY = 10;
var base = [];
function mapgen() {
	for (var y = 0; y < mapY; y++) {
		for (var x = 0; x < mapY; x++) {
			if ((y == 1 || y == mapY - 2) && (x != 0 && x != mapX - 1) || (x == 1 || x == mapX - 2) && (y != 0 && y != mapY - 1)) {
        		base[y][x] = '#';
    		} else if (x == 2 && y == 2) {
    	    	base[y][x] = '<';
    		} else if (x == mapX - 3 && y == mapY - 3) {
    	    	base[y][x] = '>';
    	    } else if (y > 1 && y < mapY - 2 && x > 1 && x < mapX - 2) {
    	    	base[y][x] = '.';
        	}
		}
	}
}
var feat = [
	[">", "", "", ""]
];
var entity = [];
var item = [];
var log = "";
function refLog() {
    var size = 0;
    for (var i = 0; i < log.length; i++) {
        if (log.charAt(i) == '\n') {
            size++;
        }
    }
	if (size > 3) {
        var index = log.indexOf("\n") + 1;
        log.delete(0, index);
    }
}
var map = document.getElementById("map");
var plx = 1;
var ply = 1;
function refreshMap() {
	var temp = "";
	for (var y = 0; y < mapY; y++) {
        for (var x = 0; x < mapX; x++) {
                var floor = base[y][x];
                var s = " ";
                if (floor != '\0') {
                    s = floor;
                }
                if (plx == x && ply == y) {
                    s = "@";
                }
                temp += s;
            }
            temp += "<br />";
        }
	map.innerHTML = temp;
}
var stats = document.getElementById("stats");
var name = "Jinhoftyu";
var role = "Wizard";
var time = 0;
var level = 1;
var xl = 1;
var hp = 15;
var maxhp = 15;
var pw = 10;
var maxpw = 10;
var temp2 = name + " the " + role + " t:" + time + "\nDlvl:" + level + " Lv:" + xl + " HP:" + hp + "/" + maxhp + " Pw:" + pw + "/" + maxpw;
stats.innerHTML = temp2;
document.addEventListener('keydown', function(event) {
    if (event.code === 'KeyL' && plx < mapX - 2) {
    	plx++;
    }
    if (event.code === 'KeyH' && plx > 1) {
    	plx--;
    }
    if (event.code === 'KeyK' && ply < mapY - 2) {
    	ply++;
    }
    if (event.code === 'KeyJ' && ply > 1) {
    	ply--;
    }
    refreshMap();
});
mapGen();
refreshMap();