Added Hotkeys + Delete Bulk

This commit is contained in:
MasterGordon 2018-04-04 10:02:06 +02:00
parent 79a6ce1fb7
commit d8fee34092
5 changed files with 129 additions and 15 deletions

View File

@ -12,6 +12,15 @@ Das Ziel dieses Projektes ist es ein auf Javascript und HTML5 basierten "clon" v
- Eröffnen von neuen Fabriken
- Reisen auf Planeten um dort mit neuen Rohstoffen zu arbeiten
## Hotkeys
Hotkey | Action
--|--
1 | Build
2 | Move
3 | Rotate
4 | Delete
i | Toggle Item Render (to Prevent Lags)
##
[Link zur Aktuellen live Version][f6f130bf]

View File

@ -17,6 +17,7 @@
<script src="js/baseclasses.js"></script>
<script src="js/tiles.js"></script>
<script src="js/game.js"></script>
<script src="js/hotkeys.js"></script>
</head>
<body>

View File

@ -20,6 +20,8 @@ var lang = {}
var mode = "none"
var renderItems = true
$(document).ready(function() {
loadGameData()
loadItems()
@ -40,6 +42,11 @@ function loadItems() {
itemRequest.send(null)
var json = JSON.parse(itemRequest.responseText)
items = json.items
for (var i = 0; i < items.length; i++) {
var image = new Image
image.src = "images/items/" + items[i].name + ".png"
items[i].img = image
}
}
function loadLang() {
@ -111,12 +118,13 @@ function render() {
}
}
//RENDER Items
for (var i = 0; i < factorys[currentFactory].items.length; i++) {
var item = factorys[currentFactory].items[i]
var img = new Image
img.src = "images/items/" + getItemFormId(item.id).name + ".png"
ctx.drawImage(img, item.x, item.y, 48, 48)
}
if (renderItems)
for (var i = 0; i < factorys[currentFactory].items.length; i++) {
var item = factorys[currentFactory].items[i]
// var img = new Image
// img.src = "images/items/" + getItemFormId(item.id).name + ".png"
ctx.drawImage(items[item.id].img, item.x, item.y, 48, 48)
}
//RENDER TILE-LAYER1
for (var i = 0; i < tilesToRender.length; i++) {
var tile = tilesToRender[i]
@ -148,11 +156,34 @@ function render() {
ctx.globalAlpha = 1
} else {
ctx.globalAlpha = 0.4
if (mode == "delete")
if (mode == "delete") {
ctx.fillStyle = "#FF0000";
else
if (deleteFromX != -1) {
var lowerX = 0
var deltaX = 0
if (deleteFromX < cursorScreenX) {
lowerX = deleteFromX
deltaX = cursorScreenX - deleteFromX + 1
} else {
lowerX = cursorScreenX
deltaX = deleteFromX - cursorScreenX + 1
}
var lowerY = 0
var deltaY = 0
if (deleteFromY < cursorScreenY) {
lowerY = deleteFromY
deltaY = cursorScreenY - deleteFromY + 1
} else {
lowerY = cursorScreenY
deltaY = deleteFromY - cursorScreenY + 1
}
ctx.fillRect(lowerX * 48, lowerY * 48, deltaX * 48, deltaY * 48)
}
} else {
ctx.fillStyle = "black";
ctx.fillRect(cursorScreenX * 48, cursorScreenY * 48, 48, 48)
}
if (deleteFromX == -1)
ctx.fillRect(cursorScreenX * 48, cursorScreenY * 48, 48, 48)
ctx.globalAlpha = 1
}
}

43
js/hotkeys.js Normal file
View File

@ -0,0 +1,43 @@
$(document).ready(function() {
$(document).keypress(function(e) {
console.log(e.originalEvent)
switch (e.originalEvent.key) {
case "1":
//BUILD
if (mode == "none") {
$('#buildselect').fadeIn(200)
mode = "selectbuilding"
} else {
closeUi()
}
break
case "2":
//MOVE
if (mode == "none") {
mode = "move"
} else {
closeUi()
}
break
case "3":
//ROTATE
if (mode == "none") {
mode = "rotate"
} else {
closeUi()
}
break
case "4":
//ROTATE
if (mode == "none") {
mode = "delete"
} else {
closeUi()
}
break
case "i":
renderItems = !renderItems
break
}
})
})

View File

@ -233,8 +233,10 @@ function setTooltip() {
var itemId = []
var itemCount = []
var deleteFromX = -1
var deleteFromY = -1
function options(){
function options() {
$('#options').empty()
for (var i = 0; i < selectedTile.options.length; i++) {
if (selectedTile.options[i].type == "item") {
@ -277,11 +279,6 @@ function buildEvents() {
factorys[currentFactory].tiles[cursorScreenX][cursorScreenY].rotate()
}
}
if (mode == "delete") {
if (factorys[currentFactory].tiles[cursorScreenX][cursorScreenY] != 0) {
factorys[currentFactory].tiles[cursorScreenX][cursorScreenY] = 0
}
}
if (mode == "move") {
if (isCursorInScreen) {
if (factorys[currentFactory].tiles[cursorScreenX][cursorScreenY] != 0) {
@ -353,9 +350,42 @@ function buildEvents() {
moveFromY = cursorScreenY
}
}
if (mode == "delete") {
deleteFromX = cursorScreenX
deleteFromY = cursorScreenY
}
})
$('body').mouseup(function(e) {
if (mode == "delete") {
var minX = 0
var maxX = 0
var minY = 0
var maxY = 0
if (deleteFromX <= cursorScreenX) {
minX = deleteFromX
maxX = cursorScreenX
} else {
maxX = deleteFromX
minX = cursorScreenX
}
if (deleteFromY <= cursorScreenY) {
minY = deleteFromY
maxY = cursorScreenY
} else {
maxY = deleteFromY
minY = cursorScreenY
}
for (var x = minX; x <= maxX; x++) {
for (var y = minY; y <= maxY; y++) {
if (factorys[currentFactory].tiles[x][y] != 0) {
factorys[currentFactory].tiles[x][y] = 0
}
}
}
deleteFromX = -1
deleteFromY = -1
}
if (e.which == 1)
mousedown = false
if (mode == "move") {