这几天学习了一个祖玛游戏的小Demo,记录下这个小游戏的编写过程。

1:首先实现的一个简单界面效果。

2:在图形绘制完成后,让黑色小球沿着圆形弧线运动。

编码过程

创建画布,绘制圆形弧线。

首先在Html页面上定义一个Canvas标签。

在JS代码中,实现Canvas绘图功能。

1:绘制弧形图。

gc.beginPath();

//调用绘图的 arc(x,y,r,start,stop,counterclockwise) 方法创建一个园

//其中x,y是圆心坐标,r是半径,start是开始弧度,

//stop是结束弧度,counterclockwise false顺时钟 true逆时钟 默认位顺时钟。

//三点钟是0弧度 ,12点是1.5弧度。

gc.arc(300,200,200,1.5*Math.PI,1*Math.PI,false);

//stroke()和fill()的区别在于,fill()是填充绘制图形

gc.stroke();

gc.closePath();

gc.beginPath();

//绘制在180度的时候,大圆变成小圆。将圆心移动(250,200)处。

gc.arc(250,200,150,1.*Math.PI,2*Math.PI,false);

gc.stroke();

gc.closePath();

gc.beginPath();

//绘制结束处的小圆,半径为20.

gc.arc(400,200,20,0*Math.PI,2*Math.PI);

gc.stroke();

gc.closePath();

2:创建一个动起来的小球。由于后面的目标小球会有多个,需定义一个数组。

var ball=[];

ball[0]={

x:300,//绘制小球的中心点x坐标

y:0,//绘制小球的中心点y坐标

r:200,//绘制小球的半径

angle:0,//小球从0度开始转过的角度

firstx:300,//小球的起始点x坐标

firsty:200 //小球的起始点y坐标

};

3:让创建的小球动起来。创建的小球动起来,通过改变小球的圆心坐标,重新绘制这个小球。

改变小球的圆心坐标,通过角度计算相加得到

//创建一个定时器,每隔30秒改变小球的圆心点坐标

setInterval(function(){

for(var i=0;i

ball[i].angle++;

//新的小球x坐标等于,等于原始起点x坐标加上小球转过的角度后的x轴的分量。

ball[i].x=ball[i].firstx+Math.sin(ball[i].angle*Math.PI/180)*ball[i].r;//新的小球y坐标等于,等于原始起点y坐标减去小球转过的角度后的y轴的分量。

ball[i].y=ball[i].firsty-Math.cos(ball[i].angle*Math.PI/180)*ball[i].r;}

},30);

}

4:动态能够改变小球的圆心点坐标后,把小球加入到画布,小球动起来。

小球能够动起来,实际上通过每隔多少秒,重新清理下画布,在重新绘制该画布,达到实现动态的效果。

调用:clearRect(x,y,width,height)方法,清理从(x,y)处开始的坐标的长度的画布。

//清理画布

gc.clearRect(0,0,context.width,context.height);

//加入小球

for(var i=0;i

gc.beginPath();

gc.moveTo(ball[i].x,ball[i].y);

//绘制目标小球

gc.arc(ball[i].x,ball[i].y,20,0*Math.PI,2*Math.PI);

gc.fillStyle="black";

gc.fill();

gc.closePath();

}

5:关于弧度和角度的换算问题。

canvas中大多数函数,以弧度计算 需将角度转换弧度,角度转换弧度只需将角度乘以 0.017453293 (2PI/360)即可转换为弧度。

即Math.PI/180。

未完待续。

java祖玛_Canvas小练习_祖玛游戏01相关推荐

  1. java ee的小程序_用微服务和容器替换旧版Java EE应用程序服务器

    java ee的小程序 Lightbend最近对2000多个JVM开发人员进行了一项调查,结果刚刚发布. 开展该调查的目的是发现:发展趋势与IT基础架构趋势之间的相关性,处于数字化转型前沿的组织如何使 ...

  2. java ee的小程序_在Java EE应用程序中实现自动重试

    java ee的小程序 最初,我想将此博客称为" 具有拦截器驱动的重试策略的灵活超时 ",但后来我认为它太"繁重". 该声明以及修改后的标题应该(希望)使您了解 ...

  3. java ee的小程序_扩展Java EE应用程序的基础

    java ee的小程序 老实说,"可扩展性"是一个详尽的主题,并且通常没有被很好地理解. 通常,它被认为与高可用性相同. 我已经看到新手程序员和"经验丰富"的建 ...

  4. java犯的小错误_[Java教程]十个JavaScript中易犯的小错误,你中了几枪?

    [Java教程]十个JavaScript中易犯的小错误,你中了几枪? 0 2015-06-01 12:00:19 序言 在今天,JavaScript已经成为了网页编辑的核心.尤其是过去的几年,互联网见 ...

  5. 天刀 服务器状态,天刀实用技巧_天刀各种游戏小技巧_玩游戏网

    一:御风神行无CD小技巧 这个小技巧,是玩家们游戏方便的一大助力,毕竟它方便了几乎所有天刀玩家,在游戏中给玩家们创造了极大便利.就是当玩家角色走到地图的边缘空气墙处,自动蹦出来地图,点击传送点,可以无 ...

  6. 数据结构java实验 刘小晶_《数据结构实例解析与实验指导——Java语言描述》刘小晶著【摘要 书评 在线阅读】-苏宁易购图书...

    商品参数 作者: 刘小晶著 出版社:清华大学出版社 出版时间:2013-2-1 版次:1 印次:1 印刷时间:2013-2-1 字数:619000 页数:380 开本:16开 装帧:平装 ISBN:9 ...

  7. Java io流小技巧_选择用流的小规律(java)基本的io流

    选择流的规律 1 首先我们要明确源和目的 源: InputStream Reader 目的::OutputStream Write 2 我们要判断源和目的是不是纯文本 源是纯文本 :Reader 否则 ...

  8. 应用java编写 按键小脚本_一个使用JAVA编写的类似按键精灵的程序

    import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; /** * 支持脚本文件的按键控制程 ...

  9. java查重小程序_”万能查重器“小程序

    //今天组长让我写一个查重的的程序来给一个词库查重 把相同的删除 //一开始我绞尽脑汁想用嵌套的for循环怎么都有bug 原因是&&和&的理解错误 //后来我想到了用Map集合 ...

最新文章

  1. 基于Angularjs+jasmine+karma的测试驱动开发(TDD)实例
  2. 简单试用了一下 dynamips 7200路由模拟器
  3. java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】
  4. js将数字转成大写中文
  5. AcWing 1826. 农田缩减(思维+枚举)
  6. ccna、ccnp视频教程
  7. 网络共享时 计算机名如何设置方法,win7怎么在局域网共享文件夹|win7局域网共享设置方法...
  8. 基于python+pyqt5的串口助手
  9. win10 启动后无法正常显示桌面/黑屏
  10. 麓堂诗话 明 李东阳 著
  11. SQL语句 SQL Server中Text类型操作
  12. 视频伪原创工具 剪辑过的视频md5会改变吗
  13. 金仓数据库在 TPCE(dbt5,tpsE)测试框架方面的实践和突破
  14. 一个例子入坑布谷鸟算法(附完整py代码)
  15. LabVIEW学习心得
  16. 一个汉字占几个字节的问题
  17. Chrome浏览器新版本解决CROS的技巧
  18. JFrog Artifactory 二进制软件制品仓库介绍
  19. 第三章:课后习题答案-SAS程序部分
  20. 国标GB28181协议网络摄像头直播视频平台EasyGBS如何实现语音对讲功能?

热门文章

  1. SQL Server数据库mdf文件中了勒索病毒.FREEMAN。扩展名变为FREEMAN
  2. Oracle 中add_months和trunc的用法,数据类型
  3. ZDNS联合发起创建的“粤港大数据图像和通信应用联合实验室”成功获批
  4. 什么是机器语言、汇编语言、高级语言?
  5. ubuntu-CPU频率调节
  6. LL教你入侵网站(算是吧)--对于天津理工教务处网站找回密码方案的建议
  7. static关键字是什么意思?java中是否可以覆盖一个private方法或者static方法
  8. 无法识别USB设备解决办法
  9. 电商平台快递物流解决方案
  10. Quartz框架实现定时任务介绍及简单使用