`
128kj
  • 浏览: 600117 次
  • 来自: ...
社区版块
存档分类
最新评论

HTML5 Canvas学习笔记(7)俄罗斯方块游戏之一(色块)

阅读更多
在网上看到一个俄罗斯方块游戏:
http://www.108js.com/article/article11/b0044.html
感觉还不错,学习了它的源码,写点笔记。俗话说:熟读唐诗三百首,不会吟诗也会吟。我相信熟读源码三百个,不会编程也会编。

这个俄罗斯方块游戏的精华部分应该是三个类,先看这个第一个Block类:
(function(){
   // Single Tetris Block
  function Block(image){
    this.image =image;//图像
    this.size  =32;//每个色块的大小32*32
    this.total = 7;//有七种颜色的块
   }

   Block.prototype = {
     random: function(){//产生一个随机数1-7
       return Math.floor( Math.random() * this.total ) + 1;
     },
     draw: function(context, x, y, blockType){//绘制这个块,x与y是网格坐标
       var blockType = blockType || this.random();//块的类型
       var s = this.size;
       context.drawImage(this.image, (blockType-1)*s, 0, s, s, s*x, s*y, s, s);
     }
   }
  window.Block=Block;
})();

类中用到的图片:



下面是测试代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="gbk">

<title>俄罗斯方块:色块测试</title>
<style>
        canvas {
  display: block;
  position: absolute;
  background: rgba(20,20,20,0.8);
         border: 2px solid yellow;
         border-radius: 10px;
        }
      </style>


</head>
<body>
<div class="container">
<canvas id="board" width="416" height="640">Your browser doesn't support Canvas</canvas>

</div>
</body>
<script>
(function(){
   // Single Tetris Block
  function Block(image){
    this.image =image;//图像
    this.size  =32;//每个色块的大小32*32
    this.total = 7;//有七种颜色的块
   }

   Block.prototype = {
     random: function(){//产生一个随机数1-7
       return Math.floor( Math.random() * this.total ) + 1;
     },
     draw: function(context, x, y, blockType){//绘制这个块,x与y是网格坐标
       var blockType = blockType || this.random();//块的类型
       var s = this.size;
       context.drawImage(this.image, (blockType-1)*s, 0, s, s, s*x, s*y, s, s);
     }
   }
  window.Block=Block;
})();

   var el= document.getElementById("board");
   var ctx = el.getContext('2d');
  
 
  var image = new Image();
  image.src = "img/blocks.png";
  image.onload=init;//图像加载完毕后执行
  var block=null;
  function init(){
    block=new Block(image);
    //canvas的大小为宽13*32,高为20*32
    block.draw(ctx,3,3);
  }
</script>

效果图:


点击看效果:http://www.108js.com/article/canvas/7/1/e1.html

欢迎访问博主的网站:http://www.108js.com

下载本学习笔记的源码:
  • 大小: 5.7 KB
  • 大小: 9.3 KB
  • 1.zip (8.4 KB)
  • 下载次数: 7
0
0
分享到:
评论

相关推荐

    HTML5 Canvas学习笔记(9)俄罗斯方块游戏之三(游戏面板)

    这篇“HTML5 Canvas学习笔记(9)俄罗斯方块游戏之三(游戏面板)”深入探讨了如何利用Canvas技术构建一个经典的游戏——俄罗斯方块。 在HTML5 Canvas上构建俄罗斯方块游戏,首先需要理解Canvas的基本结构和绘图API。...

    HTML5 Canvas学习笔记(8)俄罗斯方块游戏之二(方块)

    这篇“HTML5 Canvas学习笔记(8)俄罗斯方块游戏之二(方块)”主要探讨了如何利用Canvas来实现经典游戏——俄罗斯方块的方块部分。我们将深入探讨相关知识点,包括Canvas基本操作、事件处理、动画原理以及游戏逻辑。 ...

    HTML5 canvas俄罗斯方块小游戏.zip

    总的来说,"HTML5 canvas俄罗斯方块小游戏"是一个结合了HTML5 Canvas图形绘制能力、面向对象编程思想以及游戏逻辑设计的实例。通过学习和分析这个项目,开发者可以深入理解HTML5 Canvas的用法,提高JavaScript编程...

    canvas实现俄罗斯方块的方法示例

    标题《canvas实现俄罗斯方块的方法示例》和描述指出了文章的核心内容,即探讨了如何使用HTML5中的canvas元素来实现经典的俄罗斯方块游戏。文章通过一个示例项目,向读者展示了整个实现过程的细节,包括游戏界面的...

    js canvas写的游戏 俄罗斯方块

    **JavaScript Canvas 与 俄罗斯方块游戏开发** 在IT领域,JavaScript是一种广泛使用的客户端脚本语言,主要用于增强网页的交互性。Canvas是HTML5引入的一个重要特性,它为Web开发者提供了一个可以在网页上动态绘制...

    HTML5 canvas俄罗斯方块小游戏

    HTML5 canvas俄罗斯方块小游戏

    HTML5 canvas高性能打方块小游戏

    HTML5 Canvas是一个强大的Web图形接口,它允许...总之,“HTML5 Canvas高性能打方块小游戏”是一个展示Canvas技术的典范,通过它我们可以学习到Canvas的基本绘图、游戏循环、用户交互以及性能优化等多个方面的知识。

    Javascript俄罗斯方块(canvas版)

    本项目“Javascript俄罗斯方块(canvas版)”就是利用JavaScript的强大力量,结合HTML5的Canvas元素,实现了经典游戏——俄罗斯方块。Canvas是HTML5新增的绘图工具,允许开发者在网页上进行图形绘制,为网页游戏开发...

    html5 彩色的俄罗斯方块游戏代码

    在这个“彩色的俄罗斯方块游戏”中,HTML5 Canvas是核心的技术之一,它使得游戏的图形表现力和实时性得到了大幅提升。 首先,我们要了解HTML5 Canvas的基本使用。Canvas是一个矩形区域,通过JavaScript API,我们...

    基于HTML5 CanvasAPI的“俄罗斯方块”小游戏.zip

    在这个"基于HTML5 CanvasAPI的“俄罗斯方块”小游戏"中,我们可以看到HTML5的Canvas API是如何被用来创建一个经典的游戏体验的。 首先,Canvas API的核心是`&lt;canvas&gt;`元素,它在HTML中定义了一个画布,通过...

    基于html5的俄罗斯方块游戏

    本项目是一个利用HTML5、Canvas和JavaScript实现的俄罗斯方块游戏,旨在展示这些技术在游戏开发中的应用。 【描述】:“基于HTML5的俄罗斯方块游戏,目前不支持IE浏览器,可在支持HTML5的浏览器中运行。” 这个...

    html5俄罗斯方块游戏代码

    HTML5俄罗斯方块游戏是利用HTML5的Canvas API和JavaScript编程语言实现的一款经典电子游戏。Canvas是HTML5中用于绘制2D图形的元素,通过JavaScript控制,可以创建动态且交互性强的游戏界面。以下是对HTML5俄罗斯方块...

    6种俄罗斯方块游戏h5

    这些俄罗斯方块游戏基于HTML5技术构建,意味着它们使用了HTML5的新特性,如Canvas、Web Storage、WebSocket等,来实现游戏的图形绘制、数据存储和实时通信。 2. Canvas API:作为H5的一部分,Canvas是用于在网页上...

    基于HTML5的俄罗斯方块游戏设计

    在这个项目中,我们将深入探讨如何利用HTML5的Canvas、JavaScript以及CSS3来实现一个经典的俄罗斯方块游戏。 1. HTML5 Canvas: HTML5的Canvas是一个二维绘图API,允许开发者在网页上动态绘制图形。在俄罗斯方块...

    Html5+js实现俄罗斯方块

    在网页上使用HTML5和JavaScript实现俄罗斯方块是一项常见的编程挑战,它涉及到多个技术层面,包括页面布局、事件处理、动画效果以及游戏逻辑。以下是对这个项目中涉及的关键知识点的详细解释: 1. **HTML5 Canvas**...

    用HTML5写的俄罗斯方块游戏

    总结来说,这个HTML5编写的俄罗斯方块游戏展示了HTML5的多种特性,如Canvas绘图、事件处理、可能的离线存储,以及JavaScript的动态交互能力。同时,开发工具的选择也体现了现代Web开发的便利性。这样的小游戏不仅...

    HTML5 Canvas学习笔记(5)游戏得分动画

    这篇“HTML5 Canvas学习笔记(5)游戏得分动画”着重讲解了如何利用Canvas技术来实现游戏中的得分动画效果。通过学习这篇笔记,我们可以深入了解Canvas的基本用法以及如何将它应用于游戏开发。 首先,Canvas是HTML5的...

    html5俄罗斯方块游戏代码.zip

    HTML5俄罗斯方块游戏代码是利用现代Web技术,特别是HTML5和JavaScript,构建的一款3D版本的经典游戏。这个游戏源码的实现涉及到了多个关键的技术点,包括HTML5 Canvas的使用、CSS3动画、JavaScript编程以及可能涉及...

Global site tag (gtag.js) - Google Analytics