`

HTML5 CANVAS 骰子

 
阅读更多
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script type="text/javascript" src="jquery-1.9.1.js"></script>
  <script type="text/javascript">
  function Craps(v_ctx,v_dicex,v_dicey){
  	//画布的宽和高
  	var cWidth = 400;
  	var cHeight = 300;

  	//骰子的x,y
  	var dicex = 50;
  	var dicey = 50;

  	//骰子的高和宽
  	var diceWidth  = 100;
  	var diceHeight = 100;

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

  	//画布对象
  	var ctx;

  	this.getCWidth = function(){
  		return cWidth;
  	};
  	this.setCWidth = function(v_cWidth){
  		cWidth = v_cWidth;
  	};
  	this.getCHeight = function(){
  		return cHeight;
  	};
  	this.setCHeight = function(v_cHeight){
  		cHeight = v_cHeight;
  	};
  	this.getDicex = function(){
  		return dicex;
  	};
  	this.setDicex = function(v_dicex){
  		dicex = v_dicex;
  	};
  	this.getDicey = function(){
  		return dicey;
  	};
  	this.setDicey = function(v_dicey){
  		dicey = v_dicey;
  	};
  	this.getDiceWidth = function(){
  		return diceWidth;
  	};
  	this.setDiceWidth = function(v_diceWidth){
  		diceWidth = v_diceWidth;
  	};
  	this.getDiceHeight = function(){
  		return diceHeight;
  	};
  	this.setDiceHeight = function(v_diceHeight){
  		diceHeight = v_diceHeight;
  	};
  	this.getDotrad = function (){
  		return dotrad;
  	};
  	this.setDotrad = function(v_dotrad){
  		dotrad = v_dotrad;
  	};
  	this.getCtx = function(){
  		return ctx;
  	};
  	this.setCtx = function(v_ctx){
  		ctx = v_ctx;
  	};
  	this.setCtx(v_ctx);
  	if(v_dicex){
  		this.setDicex(v_dicex);
  	};
  	if(v_dicey){
  		this.setDicey(v_dicey);
  	}
  }

  Craps.prototype = {

  		init : function (){
  			this.getCtx().fillStyle = 'rgb(0,0,0)';
	  		this.getCtx().strokeStyle = 'rgb(0,0,0)';
  			this.getCtx().lineWidth = 5;
	  		this.getCtx().clearRect(this.getDicex(),this.getDicey(),this.getDiceWidth(),this.getDiceHeight());
	  		this.getCtx().strokeRect(this.getDicex(),this.getDicey(),this.getDiceWidth(),this.getDiceHeight());
	  		var ch = 1 + Math.floor(Math.random()*6);
	  		console.log('ch='+ch);
	  		switch(ch){
	  			case 1:
	  				this.draw1(ch);
	  				break;
	  			case 2:
	  				this.draw2();
	  				break;
	  			case 3:
	  				this.draw3();
	  				break;
	  			case 4:
	  				this.draw4();
	  				break;
	  			case 5:
	  				this.draw5();
	  				break;
	  			default:
	  				this.draw6();
	  		}
  		},

	  	draw1 : function (ch){
	  		this.getCtx().beginPath();
	  		if(ch && ch == 1){
	  			this.getCtx().strokeStyle = 'rgb(255,0,0)';
	  			this.getCtx().fillStyle = 'rgb(255,0,0)';
	  			this.setDotrad(10);
	  		}
	  		var x = this.getDicex() + 0.5 * this.getDiceWidth();
	  		var y = this.getDicey() + 0.5 * this.getDiceHeight();
	  		this.getCtx().arc(x,y,this.getDotrad(),0,Math.PI*2,true);
	  		this.getCtx().closePath();
	  		this.getCtx().fill();
	  		this.setDotrad(6);
	  	},

	  	draw2 : function (){
	  		this.getCtx().beginPath();
	  		var x = this.getDicex() + 3 * this.getDotrad();
	  		var y = this.getDicey() + 3 * this.getDotrad();
	  		this.getCtx().arc(x,y,this.getDotrad(),0,Math.PI*2,true);
	  		x = this.getDicex() + this.getDiceWidth() - 3 * this.getDotrad();
	  		y = this.getDicey() + this.getDiceHeight() - 3 * this.getDotrad();
	  		this.getCtx().arc(x,y,this.getDotrad(),0,Math.PI*2,true);
	  		this.getCtx().closePath();
	  		this.getCtx().fill();
	  	},

		draw3 : function (){
	  		this.draw1();
	  		this.draw2();
	  	},

	 	draw4 : function (){
			this.draw2();
			this.getCtx().beginPath();
			var x = this.getDicex() + 3 * this.getDotrad();
			var y = this.getDicey() + this.getDiceHeight() - 3 * this.getDotrad();
			this.getCtx().arc(x,y,this.getDotrad(),0,Math.PI*2,true);
			x = this.getDicex() + this.getDiceWidth() - 3 * this.getDotrad();
			y = this.getDicey() + 3 * this.getDotrad();
			this.getCtx().arc(x,y,this.getDotrad(),0,Math.PI*2,true);
			this.getCtx().closePath();
			this.getCtx().fill();
	 	},

	 	draw5 : function (){
	 		this.draw4();
	 		this.draw1();
	 	},

	 	draw6 : function (){
	 		this.draw4();
	 		this.getCtx().beginPath();
	 		var x = this.getDicex() + 3 * this.getDotrad();
	 		var y = this.getDicey() + 0.5 * this.getDiceHeight();
	 		this.getCtx().arc(x,y,this.getDotrad(),0,Math.PI*2,true);
	 		x = this.getDicex() + this.getDiceWidth() - 3 * this.getDotrad();
	 		this.getCtx().arc(x,y,this.getDotrad(),0,Math.PI*2,true);
	 		this.getCtx().closePath();
	 		this.getCtx().fill();
	 	}
 	}

  	$(function(){
  		var ctx = $('#canvas').get(0).getContext('2d');
  		var crapsA = new Craps(ctx);
  		crapsA.init();
  		var crapsB = new Craps(ctx,170,50);
  		crapsB.init();
  	});

  </script>
 </head>
 <body>
  	<canvas id="canvas" width="400px" height="300px">
  		您的浏览器不支持canvas!
  	</canvas>
 </body>
</html>

 



 

  • 大小: 1.7 KB
分享到:
评论

相关推荐

    html5+js 【canvas】骰子游戏代码

    纯代码画图 html5+js 【canvas】实现骰子游戏

    html5小游戏 大话摇骰子

    游戏的核心在于通过HTML5的Canvas元素来绘制骰子图像,并利用JavaScript处理游戏逻辑,如随机生成骰子的点数,以及响应用户的点击事件。 Canvas是HTML5中一个强大的绘图工具,允许开发者通过JavaScript代码动态绘制...

    H5 +Jquery 扔骰子 色子动画变化 控制点数

    总的来说,"H5 +Jquery 扔骰子 色子动画变化 控制点数"这个项目是一个结合了HTML5 Canvas绘图、jQuery交互以及JavaScript随机数与动画处理的实例。它展示了如何利用这些技术来创建一个富有动态效果的网页应用,对于...

    html5掷骰子小游戏

    这个“html5掷骰子小游戏”是一个很好的实践项目,可以帮助我们深入理解HTML5的核心特性,特别是Canvas API和JavaScript的基础知识。 1. **HTML5 Canvas**: Canvas是HTML5中的一个重要元素,它提供了一个二维绘图...

    html5入门游戏掷骰子

    本入门游戏“掷骰子”就是利用HTML5的核心特性,结合JavaScript面向对象编程和Canvas绘图技术实现的一个实例。下面将详细阐述相关知识点。 1. HTML5 Canvas:Canvas是HTML5中的一个核心元素,它提供了一个二维图形...

    canvas-dice:canvas dice html5 摇色子

    html5 canvas学习该练习是一个摇色子的游戏通过 1 + Math.floor(Math.random()*6) 获取一个1-6的随机数,作为色子的数,然后通过drawDice绘出色子。提供了randowDraw随机画色子的方法,会滚动色子,并返回一个es6的...

    HTML5 掷骰子游戏 麻将骰子.rar

    总的来说,这个HTML5掷骰子游戏项目是一个很好的学习资源,涵盖了HTML5 Canvas的基本用法、CSS3的样式控制和JavaScript的事件处理及动画制作。对于想要提升HTML5开发技能或者探索游戏开发的人来说,这是一个值得研究...

    H5小游戏掷骰子

    HTML5小游戏掷骰子是一种基于Web的互动娱乐项目,它利用HTML5的先进技术来实现,为用户提供了在浏览器上直接游玩的可能性。HTML5是超文本标记语言(HyperText Markup Language)的第五个版本,它的出现极大地提升了...

    html5之canvas.docx

    HTML5中的Canvas是一个非常重要的新特性,用于在网页上绘制矢量图形。Canvas是一个基于XML的二维绘图环境,允许开发者通过JavaScript代码进行图形绘制,包括线条、形状、图像等,提供了丰富的图形处理能力,无需借助...

    html5之canvas.pdf

    HTML5的Canvas是网页开发中的一个关键特性,用于在网页上动态绘制图形。这个标签引入了一个二维绘图表面,允许开发者使用JavaScript进行图形渲染。Canvas并非自带任何视觉元素,它的功能主要通过JavaScript的API来...

    H5骰子游戏

    【H5骰子游戏】是一种基于HTML5技术开发的在线互动游戏,主要利用了HTML5的Canvas、Web Audio等核心特性。HTML5是超文本标记语言的第五个版本,它在网页内容展示、多媒体处理、离线存储以及交互性方面有着显著提升,...

    骰子游戏源码 html5 手机端 游戏

    《HTML5手机端骰子游戏开发详解》 HTML5技术的发展为移动游戏开发带来了新的机遇,使得无需安装即可在手机端玩的游戏变得越来越普遍。本文将深入探讨一款基于HTML5的手机端骰子游戏,这款游戏的核心特点是其简洁的...

    2048骰子版HTML5游戏源码

    《2048骰子版HTML5游戏源码解析与技术要点详解》 2048骰子版HTML5游戏源码是一款基于HTML5技术构建的休闲益智游戏,其核心玩法是通过移动数字骰子,使相同数值的骰子合并,最终目标是达到2048点。这款游戏不仅具有...

    html5微信中秋节博饼游戏源码下载

    例如,骰子的滚动动画、积分显示、游戏规则说明等都可以通过canvas进行实现。 三、Web Storage与Application Cache HTML5引入了Web Storage(包括localStorage和sessionStorage)来替代传统的cookie,提供了更大的...

    html5单个拾骰子.zip

    1. **Canvas API**:HTML5的Canvas是一个二维绘图区域,通过JavaScript可以动态绘制图形,包括骰子的样式和投掷动画。在本游戏中,骰子的每个面可能就是通过Canvas绘制出来的。 2. **Web Audio API**:HTML5的Web ...

    双个拾骰子.zip

    总之,“双个拾骰子.zip”是一个学习HTML5游戏开发的好素材,涵盖了HTML5的基础知识、JavaScript编程、Canvas绘图、事件处理、音频和动画等多个方面。通过分析和改进这个游戏,开发者不仅可以掌握基本的游戏开发技巧...

    掷色子游戏实例源码.zip

    HTML5的新特性,如`&lt;canvas&gt;`元素或CSS3动画,可能被用来增强游戏的视觉效果和交互性。 接着,`dice.php`是服务器端的脚本,它通常负责处理游戏逻辑和数据交互。在这个实例中,PHP可能用来生成随机的骰子点数,确保...

    HTML5中秋节博饼游戏.zip

    同时,HTML5的Canvas元素被用来绘制游戏画面,提供动态的图形渲染,使得博饼过程生动逼真。Audio元素则负责播放音效,增加游戏的沉浸感。 游戏的实现离不开JavaScript,这是一种广泛应用于网页开发的编程语言,它与...

    HTML5网页版飞行棋游戏代码.zip

    HTML5网页版飞行棋游戏代码&lt;/title&gt; &lt;meta name="x-share-desc" content=""&gt; &lt;meta name="apple-mobile-web-app-capable" content="yes"/&gt; &lt;meta name="full-screen" content="yes"/&gt; &...

Global site tag (gtag.js) - Google Analytics