html掷骰子游戏的代码,html5 canvas掷骰子(简单,学习基础canvas)

置骰子游戏

var cwidth = 400; //保存画布宽度和高度,用于擦除用

var cheight = 300; //

//骰子的位置和大小

var diceX = 50;

var diceY = 50;

var diceWidth = 100;

var diceHeight = 100;

var diceXoff = diceWidth + 20; //第二个骰子偏移量

var dotrad = 6; //骰子中原点的半径

var ctx;

//初始化

function init() {

ctx = document.getElementById("canvas").getContext("2d");

var ch = 1+Math.floor(Math.random()*6);

//drawFace(ch);

}

//根据点数画骰子

function drawFace(ch) {

//

ctx.lineWidth = 5;

ctx.clearRect(diceX, diceY, diceWidth, diceHeight);

ctx.strokeRect(diceX, diceY, diceWidth, diceHeight);

ctx.fillStyle = "#009966";

//注意绘制的算法

switch (ch) {

case 1 :

draw1();

break;

case 2 :

draw2();

break;

case 3 :

draw1();

draw2();

break;

case 4 :

draw4();

break;

case 5 :

draw4();

draw1();

break;

case 6 :

draw4();

draw2middle();

break;

}

}

function draw1() {

ctx.beginPath();

var thex = diceX + 0.5*diceWidth;

var they = diceY + 0.5*diceHeight;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

ctx.closePath();

ctx.fill();

}

function draw2() {

ctx.beginPath();

//第一个点

var thex = diceX + 18;

var they = diceY + 18;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

//第二个点

thex = diceX + diceWidth - 18;

they = diceY + diceHeight - 18;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

ctx.closePath();

ctx.fill();

}

function draw4() {

ctx.beginPath();

//第一个点

var thex = diceX + 18;

var they = diceY + 18;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

//第二个点

thex = diceX + diceWidth - 18;

they = diceY + diceHeight - 18;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

ctx.closePath();

ctx.fill();

//重新绘制,防止fill成块

ctx.beginPath();

//第三个点

thex = diceX + 18;

they = diceY + diceHeight - 18;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

//第四个点

thex = diceX + diceWidth - 18;

they = diceY + 18;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

ctx.closePath();

ctx.fill();

}

function draw2middle() {

ctx.beginPath();

//第一个点

var thex = diceX + 18;

var they = diceY + 0.5*diceHeight;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

//第二个点

thex = diceX + diceWidth - 18;

they = diceY + 0.5*diceHeight;

ctx.arc(thex, they, dotrad, 0, 2*Math.PI, true);

ctx.closePath();

ctx.fill();

}

//置骰子,一个

function throwDice() {

diceX = 50;

diceY = 50;

//考虑清空之前2个骰子的绘画内容

ctx.clearRect(diceX, diceY, diceWidth, diceHeight);

ctx.clearRect(diceX+diceXoff, diceY, diceWidth, diceHeight);

var ch = 1+Math.floor(Math.random()*6);

document.getElementById("divNumber").innerHTML = ""+ch;

drawFace(ch);

}

//两个骰子

function throwDice2() {

diceX = 50;

diceY = 50;

var ch1 = 1+Math.floor(Math.random()*6);

var ch2 = 1+Math.floor(Math.random()*6);

document.getElementById("divNumber").innerHTML = ""+(ch1+ch2);

//第一个

drawFace(ch1);

//第二个

diceX = diceX + diceXoff;

drawFace(ch2);

}

Your browser dosen't support the HTML5 element canvas.

|

0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值