html5掷骰子的小demo
代码如下:
<!DOCTYPE>
<html>
<title>柯乐义</title>
<head>
<script>
var leftX = 150;
var topY = 100;
var diceX = 80;
var diceY = 80;
var dotR = 4;
var count = 0;
var lastNum = 0;
var flag = false; function clickMe() {
count = 0;
if(flag) {
return false;
}
flag = true;
var ctx = document.getElementById("canvas").getContext('2d');
ctx.beginPath();
//ctx.arc(100,100,50,0,Math.PI,false);
ctx.strokeRect(leftX,topY,diceX,diceY); setTimeout(function(){
random(ctx);
},200); } function drawDice(ctx,randomNum) {
ctx.clearRect(leftX,topY,diceX,diceY);
switch(randomNum) {
case 1:
draw1();
break;
case 2:
draw2();
break;
case 3:
draw3();
break;
case 4:
draw4();
break;
case 5:
draw5();
break;
case 6:
draw6();
break;
}
count++;
if(count>=20) {
if(randomNum==6) {
alert("哇!你走狗屎运啦,今天可以去买彩票啦");
} else if(randomNum <=3) {
alert("今天运气不太好哦!再试一把");
} else {
alert("请再接再厉,在来一把");
}
flag = false;
return false;
} else {
setTimeout(function(){
random(ctx);
},200-count);
}
} function random(ctx) {
var randomNum = Math.floor(Math.random()*6)+1;
if(randomNum == lastNum) {
random(ctx)
} else {
lastNum = randomNum;
drawDice(ctx,randomNum);
} } function commonDraw(ctx,dotX,dotY) {
ctx.beginPath();
ctx.arc(dotX,dotY,dotR,0,2*Math.PI,false);
ctx.stroke();
ctx.fill();
} function draw1() {
var ctx = document.getElementById("canvas").getContext('2d');
ctx.fillStyle="#0000ff";
var dotX = leftX+diceX/2;
var dotY = topY+diceY/2;
commonDraw(ctx,dotX,dotY);
} function draw2() {
var ctx = document.getElementById("canvas").getContext('2d');
ctx.fillStyle="#99FF66";
var dotX = leftX+4*dotR;
var dotY = topY+4*dotR;
commonDraw(ctx,dotX,dotY);
var dotX = leftX+diceX-4*dotR;
var dotY = topY+diceY-4*dotR;
commonDraw(ctx,dotX,dotY);
} function draw3() {
draw1();
draw2();
} function draw4() {
draw2();
var ctx = document.getElementById("canvas").getContext('2d');
ctx.fillStyle="#99CC00";
var dotX = leftX+diceX-4*dotR;
var dotY = topY+4*dotR;
commonDraw(ctx,dotX,dotY);
var dotX = leftX+4*dotR;
var dotY = topY+diceY-4*dotR;
commonDraw(ctx,dotX,dotY);
} function draw5(){
draw1();
draw4();
}
//http://www.cnblogs.com/sosoft/
function draw6(){
var ctx = document.getElementById("canvas").getContext('2d');
ctx.fillStyle="#996633";
var dotX = leftX+4*dotR;
var dotY = topY+diceY/2
commonDraw(ctx,dotX,dotY);
var dotX = leftX+diceY-4*dotR;
commonDraw(ctx,dotX,dotY);
draw4();
} function init() {
var ctx = document.getElementById("canvas").getContext('2d');
ctx.beginPath();
ctx.strokeRect(leftX,topY,diceX,diceY);
ctx.stroke();
draw6(); }
</script>
</head> <body onload="init();">
<canvas id="canvas" width="400" height="300" style="background-color:#CCFFCC">
your brower is not support html5
</canvas> <input type="button" value="掷骰子" onclick="clickMe();"/>
</body>
</html>
html5掷骰子的小demo的更多相关文章
- TurnipBit开发板掷骰子小游戏DIY教程实例
转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇) 0x00前言 下面带大家用TurnipBit开发板实现一个简单的小游戏- ...
- 掷骰子游戏窗体实现--Java初级小项目
掷骰子 **多线程&&观察者模式 题目要求:<掷骰子>窗体小游戏,在该游戏中,玩家初始拥有1000的金钱,每次输入押大还是押小,以及下注金额,随机3个骰子的点数,如果3个骰 ...
- Python Tkinter小实例——模拟掷骰子
什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安 ...
- 掷骰子-IOS新手项目练习(抱歉,由于个人原因,图片没显示,要源码的项目私聊)
---恢复内容开始--- 今天我们来讲的就是项目<掷骰子> 首先我们先下载资源包,也就是我们需要的图片[点击图片下载] 在我们下载完图片之后,我们就可以开始创建项目 一.我们项目的做法可以 ...
- jQuery掷骰子
网上找的jQuery掷骰子效果,测试兼容IE7及以上浏览器,IE6没有测试 js代码如下: $(function(){ var dice = $("#dice"); dice.cl ...
- 3星|《给你讲个笑话:我是创业公司CEO》:创业成功就是上帝掷骰子
给你讲个笑话:我是创业公司CEO 作者有过数次创业经历,最后一次在济南创业,后来公司搬到北京,看书中的交代公司目前好像还不算太成功.书中交代作者公司的业务是文化产品的策划,没细说做什么,也没说做成过哪 ...
- 【Tyvj2046】掷骰子
好水一道题 掷骰子Description Rainbow和Freda通过一次偶然的机会来到了魔界.魔界的大门上赫然写着:小盆友们,欢迎来到魔界~!乃们需要解决这样一个问题才能进入哦lala~有N枚骰子 ...
- python学习之掷骰子游戏
""" 通过学习的python知识,写一个简单的python小游戏 游戏名字:掷骰子比大小 游戏规则: 1.玩家可以选择玩掷几个骰子游戏(默认3个) 2.玩家可以设置双方 ...
- 一个上传图片,预览图片的小demo
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- 渣渣小本求职复习之路每天一博客系列——Unix&Linux入门(5)
前情回顾:昨天简单地介绍了一下如何使用vi编辑器,例如命令模式和插入模式的切换,以及一些简单命令的讲解. —————————————————————————直接就开始吧———————————————— ...
- Spring-Context之八:一些依赖注入的小技巧
Spring框架在依赖注入方面是非常灵活和强大的,多了解点一些注入的方式.方法,绝对能优化配置. idref idref属性可以传入一个bean的名称,虽然它是指向一个bean的引用,但是得到的是该b ...
- Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend
Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend 1.1. Jhlabs 好像有了可以叠加算法,但是没有找到doc1 1.2. 自己算法叠加1 1.3. 使用javaf ...
- salesforce 零基础学习(四十一)Group
salesforce中,有的时候我们需要将一组用户放进一个Group,用来实现以下主要功能: 1.通过sharing rule设置默认的共享访问; 2.将记录分享给其他用户; 3.指定同步的联系人,这 ...
- js 图片轮播(一)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 优化与扩展Mybatis的SqlMapper解析
接上一篇博文,这一篇来讲述怎么实现SchemaSqlMapperParserDelegate——解析SqlMapper配置文件. 要想实现SqlMapper文件的解析,还需要仔细分析一下mybatis ...
- asp.net的简易的参数化查询
protected void btnInsert_Click(object sender, EventArgs e) { string sql = "insert into contactg ...
- Grunt 安装与配置环境
当时学习 Grunt 的时候,真是很头疼.分了两个时间段,学习了两次才硬啃下来,之后才能用在项目中.主要原因我认为是学习资料和文档上面写的太高端了.这类的文档或者资料有个显著特点,上来先简单介绍一下这 ...
- 找到SQL Server数据库历史增长信息
很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式. 通常来讲 ...
- mongodb-$type、limit、skip、sort方法、索引、聚合
一.$type操作符 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1 String 2 ...