사용자: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 | var plx = 1; | ||
var | var ply = 1; | ||
function refreshMap() { | function refreshMap() { | ||
var temp = ""; | var temp = ""; | ||
for (var | 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; | 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' && | if (event.code === 'KeyL' && plx < mapX - 2) { | ||
plx++; | |||
} | } | ||
if (event.code === 'KeyH' && | if (event.code === 'KeyH' && plx > 1) { | ||
plx--; | |||
} | } | ||
if (event.code === 'KeyK' && | if (event.code === 'KeyK' && ply < mapY - 2) { | ||
ply++; | |||
} | } | ||
if (event.code === 'KeyJ' && | if (event.code === 'KeyJ' && ply > 1) { | ||
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();