博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
零基础HTML5游戏制作教程 第2章 简单图形的绘制
阅读量:4582 次
发布时间:2019-06-09

本文共 1460 字,大约阅读时间需要 4 分钟。

第二章 简单图形的绘制

    HTML5支持使用Canvas和SVG等方式在网页直接绘制图形。其中SVG适合用来绘制高质量的矢量图形,不适合用来做游戏,所以我们做游戏一般使用Canvas。    

    由于本教程以简单为原则,所以在初学阶段请不要把注意力分散到美工、画质等细节,我们只需要掌握矩形、多边形、圆形等简单图形的绘制,并对这些图形编程,使之具有一定的运动能力和游戏效果。

    (如果你偷懒,你甚至可以跳过本章中多边形和圆形的绘制,只学矩形,然后直接去看下一章。)

一,矩形的绘制

    命令的格式是context.fillRect(x,y,width,height)

    其中参数x为矩形的左上角坐标,y是右上角坐标,width是矩形的宽度(像素点),height是矩形的高度(像素点)。

    绘制之前,一般还要指定充填的颜色,不指定的话默认为黑色。

    命令是context.fillStyle=“green”;

    比如,你要做一个绿色的小方块的话,可以这样实现:

context.fillStyle=“green”;context.fillRect(30,30,100,100);

看起来是这样的(如图)。这只是一个静态的方块,下一章会讲到怎么让她动起来。

二,多边形的绘制

    多边形的绘制比矩形要稍微复杂一点,因为Canvas只提供了矩形的直接绘制的函数,其他多边形要一条一条线条地自己绘制。
    需要用到5个函数,分别是context.beginPath();context.moveTo();context.lineTo();context.closePath();context.fill();
    各函数的作用分别如下:
    context.beginPath();用于开始一个新路径
    context.moveTo();用于将canvas的当前坐标移动到指定位置
    context.lineTo();用于绘制一条当前点到指定点的线段
    context.closePath();用于将当前点和起始点连接,从而得到一个闭合的图形
    context.fill();用于充填颜色。
    下面以最简单的多边形,三角形为例

context.beginPath();context.moveTo(100,100);context.lineTo(50,200);context.lineTo(150,200);context.closePath();context.fillStyle="green";context.fill();

得到的三角形如下图。

三,圆形的绘制

    其实电脑绘制的是一段圆弧,最后通过closePath()首尾相接。
    需要用到的函数是context.arc(x,y,r,sAngel,eAngel,countclockwise);
    其中x为圆心横坐标,y为圆心纵坐标,r为半径,sAngel为起始角度(用弧度表示),eAngel为结束角度(以弧度表示),countclockwise为可选项,指定顺时针或逆时针方向。
    下面结合多边形的画法,画一个缺一个角的圆圈。

context.beginPath();context.arc(100,100,50,0,1.5*Math.PI);context.lineTo(100,100);context.closePath();context.fillStyle="green";context.fill();

如下图:

 

转载于:https://www.cnblogs.com/phyy/p/4173653.html

你可能感兴趣的文章
Mysql5.6主从热备配置
查看>>
VS2010DebugView捕捉
查看>>
mfix中更改time dependent VTK filename的最大时间步数的容量
查看>>
Windows7安装 docker-compose的过程
查看>>
关于nodeJS多线程的支持,目前看来无法实现,讲解v8的一些东西
查看>>
php递归创建文件夹的两种方法
查看>>
6.新增事件
查看>>
|洛谷|二分|P1182 数列分段Section II
查看>>
少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘
查看>>
Oracle学习第七课-表连接及其应用
查看>>
Python基础篇【第十三篇】:面向对象
查看>>
bzoj 2465 小球
查看>>
Study Plan - The Thirty-Fifth Day
查看>>
图的深度优先遍历和广度优先遍历理解
查看>>
multi_index_container性能测试
查看>>
【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
查看>>
AngularJs学习笔记--IE Compatibility 兼容老版本IE
查看>>
sql server还原数据库文件(.bak)常见问题解决办法笔记
查看>>
列表,元组,字典的常规操作及内置方法
查看>>
LayoutInflater介绍及例子
查看>>