0
寻找一些建议,我正在制作一个小游戏。在javascript中使用html5画布点击鼠标事件
这是一个投资模拟器。没有什么奇特的,只是一个项目来测试我的能力,迄今为止。
我试图创建一个购买按钮,但它证明非常困难。
从我可以看到没有任何花哨的进口实施的JavaScript按钮到HTML5画布上。
请看看我的js文件,看看你认为的问题是什么。
到目前为止,当我按照原样执行此代码时,程序无法运行。如果您从productDetails函数中删除if语句,它将会运行,但目前还没有功能,那就是我需要支持的地方。
谢谢,詹姆斯。
代码如下:
function handleMouseMove(evt) {
Game.mousePosition = { x : evt.clientX, y : evt.clientY };
}
var Game = {
canvas : undefined,
ctx : undefined,
vendMachCost : undefined,
vendMachRev : undefined,
vendMachOwned : undefined,
fruitMachCost : undefined,
fruitMachRev : undefined,
fruitMachOwned : undefined,
pubCost : undefined,
pubRev : undefined,
pubOwned : undefined,
nightClubCost : undefined,
nightClubRev : undefined,
nightClubOwned : undefined,
carShowCost : undefined,
carShowRev : undefined,
carShowOwned : undefined,
aucHouseCost : undefined,
aucHouseRev : undefined,
aucHouseOwned : undefined
};
Game.start = function() {
Game.canvas = document.getElementById("canvas");
Game.ctx = canvas.getContext("2d");
Game.vendMachCost = 2000;
Game.vendMachRev = 100;
Game.vendMachOwned = 0;
Game.fruitMachCost = 3000;
Game.fruitMachRev = 250;
Game.fruitMachOwned = 0;
Game.pubCost = 250000;
Game.pubRev = 4000;
Game.pubOwned = 0;
Game.nightClubCost = 800000;
Game.nightClubRev = 20000;
Game.nightClubOwned = 0;
Game.carShowCost = 10000000;
Game.carShowRev = 120000;
Game.carShowOwned = 0;
Game.aucHouseCost = 25000000;
Game.aucHouseRev = 750000;
Game.aucHouseOwned = 0;
document.onmousemove = handleMouseMove;
window.setTimeout(Game.run, 500);
};
document.addEventListener('DOMContentLoaded', Game.start);
Game.clearCanvas = function() {
Game.ctx.clearRect(0, 0, Game.canvas.width, Game.canvas.height);
};
Game.drawBg = function() {
Game.ctx.beginPath();
Game.ctx.fillStyle = "darksalmon";
Game.ctx.fillRect(0, 0, Game.canvas.width, Game.canvas.height);
};
Game.productDetails = function (product, cost, revenue, owned, posX, posY) {
Game.ctx.beginPath();
Game.ctx.fillStyle = "cyan";
Game.ctx.fillRect(posX, posY, 125, 100);
Game.ctx.fillStyle = "black";
Game.ctx.strokeRect(posX, posY, 125, 100);
Game.ctx.fillStyle = "darkSlateGrey";
Game.ctx.font = "10px Arial";
Game.ctx.textAlign = "left";
Game.ctx.fillText(product, posX+5, posY+20);
Game.ctx.fillText("Price: " + cost, posX+5, posY+40);
Game.ctx.fillText("Weekly Revenue: " + revenue, posX+5, posY+60);
Game.ctx.fillText("Owned: " + owned, posX+5, posY+80);
if (Game.mousePosition.y >= posY && Game.mousePosition.y <= posY+100) {
if (Game.mousePosition.x >= posX && Game.mousePosition.x <= posX+125) {
document.click(function() {
owned += 1;
});
}
}
}
};
Game.buyButton = function (title, x, y) {
}
Game.update = function() {
};
Game.draw = function() {
Game.clearCanvas();
Game.drawBg();
Game.productDetails("Vending Machine", Game.vendMachCost, Game.vendMachRev, Game.vendMachOwned, 25, 100);
Game.productDetails("Fruit Machine", Game.fruitMachCost, Game.fruitMachRev, Game.fruitMachOwned, 25, 225);
Game.productDetails("Pub", Game.pubCost, Game.pubRev, Game.pubOwned, 25, 350);
Game.productDetails("Night Club", Game.nightClubCost, Game.nightClubRev, Game.nightClubOwned, 400, 100);
Game.productDetails("Car Showroom", Game.carShowCost, Game.carShowRev, Game.carShowOwned, 400, 225);
Game.productDetails("Auction House", Game.aucHouseCost, Game.aucHouseRev, Game.aucHouseOwned, 400, 350);
};
Game.run = function() {
Game.update();
Game.draw();
window.setTimeout(Game.run, 1000/60);
};
你可能会引用任何可能更好地解释这个问题的指南吗? –
https://github.com/tomegz/snake-project 你可以看看我在html5 canvas蛇游戏上的尝试。在index.html中我做了一个按钮,在style.css中对它进行了样式设置,你可以看到它在JavaScript文件中的工作原理。希望它能为你提供指导:) –