程序运行截图如下:

就是这个球,遇到底端及左右两边都可以弹

源码如下:

canvas4.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><canvas id="canvas" style="display: block; margin: 50px auto;"></canvas><script src="js/test4.js"></script>
</body>
</html>

test4.js

;const WIDTH = 1024;
const HEIGHT = 768;
const RADIUS = 15;let ball = {x: WIDTH / 2,y: 30,g: 1.5 + Math.random(),vx: Math.pow(-1, Math.ceil(Math.random() * 10)) * 4,vy: -5,color: '#CC0000'
};window.onload = function(){let canvas = document.getElementById("canvas");let context = canvas.getContext("2d");contextBuffer.width = WIDTH;contextBuffer.height = HEIGHT;canvas.width = WIDTH;canvas.height = HEIGHT;render(context, contextTmp);setInterval(function(){render(context, contextTmp);update();},50);
}function update(){ball.x += ball.vx;ball.y += ball.vy;ball.vy += ball.g;//最顶端不放if(ball.y > HEIGHT - RADIUS){   //最低端ball.y = HEIGHT - RADIUS;ball.vy = -ball.vy * 0.75;}if(ball.x < 0 + RADIUS){    //最左端ball.x = RADIUS;ball.y = HEIGHT - RADIUS;ball.vy = -Math.random() * 100 + 30;ball.vx = Math.random() * 100 + 30;}if((WIDTH - RADIUS) - ball.x < 0){    //最右端ball.x = WIDTH - RADIUS;ball.y = HEIGHT - RADIUS;ball.vy = -Math.random() * 100 + 30;ball.vx = -Math.random() * 100 + 30;}
}function render(cxt){cxt.clearRect(0, 0, WIDTH, HEIGHT);cxt.fillStyle = ball.color;cxt.beginPath();cxt.arc(ball.x, ball.y, 15, 0, 2 * Math.PI);cxt.closePath();cxt.fill();;
}

这里只提示几个地方,一个是clearRect()可以清空指定位置的画板。

ball里面的vx指水平方向的速度,vy指垂直方向的速度,g值加速度。

canvas笔记-绘制运动小球(落地弹起,遇边回弹)相关推荐

  1. ae制作小球轨迹运动_利用Ae制作出自由落地运动小球的详细步骤

    各位知道在Ae中如何制作出自由落地运动小球呢?不太会操作的用户可以去下文学习下利用Ae制作出自由落地运动小球的详细步骤. 我们先准备好小球图片素材,背景颜色为黑色.导入素材,新建合成.将素材拖拽的合成 ...

  2. html5 canvas 画阿迪达斯logo,HTML5 Canvas笔记——HTML5 Canvas绘图绘制太极图

    HTML5 Canvas绘图绘制太极图 太极图 * { padding: 0; margin: 0; } body { } #myCanvas { background-color: #eee; } ...

  3. arcgis飞行轨迹动画_高德地图,百度地图,arcgis地图利用canvas动画绘制圆形扩散、运动轨迹等动态效果...

    本文转发自热爱前端知识的博客   原博客地址 介绍 在ECharts中看到过这种圆形扩散效果,类似css3,刚好项目中想把它用上,but我又不想引入整个echart.js文件,更重要的是想弄明白它的原 ...

  4. Android 如何将Canvas上绘制的内容保存成本地图片

    效果如下图所示 保存在sd卡上的文件为 手机上显示效果为: 1>>在Manifest文件中增加相应权限 <!-- 在SDCard中创建与删除文件权限 --><uses-p ...

  5. html5中Canvas、绘制线条模糊、常见绘制工具、绘制基本图形、绘制图片、面向对象的方式绘制图形图片、绘制文本、帧动画绘制

    Canvas容器: canvas标签用来定义图像的容器,必须配合脚本来绘制图像,canvas也运用于游戏开发.注意:canvas绘制图时会出现线条模糊情况,这是因为显示屏像素和canvas中定义的一个 ...

  6. canvas笔记-clip裁剪函数的使用及探照灯实例

    在canvas中有clip函数,也就是裁剪,从原始画布中剪切任意形状和尺寸. 如下例子: <!DOCTYPE html> <html lang="en"> ...

  7. Android中使用SurfaceView和Canvas来绘制动画

    事实上每一个View中都有Canvas能够用来绘制动画.仅仅须要在这个View中重载onDraw()方法就能够,可是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做&quo ...

  8. openlayers3线段添加闪烁_openLayers 4 canvas图例绘制,canvas循环添加图片,解决图片闪烁问题...

    一.问题来源: 接触Openlayers 一段时间了,最近做了一个农业产业系统,项目中涉及到产业图例,最后考虑用canvas来绘制图例图像.当中带图片的图例移动时,图片会实现闪烁留白情况.闪烁是因为绘 ...

  9. 用html5的canvas画布绘制贝塞尔曲线

    查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

最新文章

  1. web spring 容器
  2. 关闭PdfReader右侧工具栏的方法
  3. oracle ora-01001,ORA-01001 and ORACLE游标
  4. java ssh cpu_初学Java ssh之Spring 第四篇
  5. crc16码表的使用_查表法计算CRC16校验值
  6. MATLAB2016打开mat格式图片
  7. luogu P3178 [HAOI2015]树上操作
  8. linux 共享内存_linux进程间通信----IPC篇(一)----共享内存初识篇
  9. 浅谈欧几里得算法求最大公约数(GCD)的原理及简单应用
  10. 如何在一个bat批处理文件中调用另一个bat批处理文件?
  11. DelayedWorkQueue踩坑笔记
  12. 计算机软件测试方法文献,软件测试毕业论文参考文献
  13. [PMP] 什么是从众效应
  14. jupyter中python3如何导入文件_无法读取Azure Jupyter Notebook(Python 2和3)中的“ .parquet”文件 - python...
  15. pythonturtle魔法阵_开启NLP的大魔法阵——一步一步教上手Bert的Fine Tuning
  16. Maximo 人员- 应用程序导入,公共操作怎么配置,求大神指点,万分感谢
  17. 数据库只读问题解决!!!MySQL server is running with the --read-only option
  18. 坏小子军团Stary造了一块电动滑板,想帮你用最低的代价去耍(zhuang)酷(bi)
  19. Debian server 9.x 安装
  20. C语言复习03(小甲鱼版本)

热门文章

  1. zorka源码解读之Beanshell与zorka的交互实现
  2. 关于COCOS2D-X 中的音乐与音效应用的备注
  3. 恶心的Oracle的if else if...
  4. 7-31总结----javascript
  5. 【程序员面试干货】资深面试官告诉你:测试工程师面试要注意什么?
  6. 一企业靠数据中台打通SAP、ERP系统,还能做出可视化分析
  7. 【秘诀】我进公司到现在都尽量避免遇上和同事撞单
  8. 苹果零售店每平方英尺能创造4000美元
  9. 学做三件事、三句话、三乐、三不要
  10. 程序员过年回家,如何向亲戚解释你的工作?