分析:获取clientWidth 、clientHeight,当超出高和宽让其随机累加折返…
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>碰壁折返</title><style>html,body {margin: 0;padding: 0;}body {box-sizing: border-box;}canvas {display: block;/* margin: 25px; */border: 1px solid red;margin: 5px auto 5px;background-color: skyblue;}</style>
</head><body><canvas id="myCanvas"></canvas><script>let canvas = document.getElementById("myCanvas");let ctx = canvas.getContext("2d");let ballArr = [];canvas.width = document.documentElement.clientWidth - 30;canvas.height = document.documentElement.clientHeight - 30;function Ball() {this.x = parseInt(Math.random() * canvas.width);this.y = parseInt(Math.random() * canvas.height);this.r = 10;this.color = "red";this.dx = parseInt(Math.random() * 10) - 5;this.dy = parseInt(Math.random() * 10) - 5;ballArr.push(this)}Ball.prototype.update = function() {this.x += this.dx;this.y += this.dy;if (this.x < 0 || this.x > canvas.width) {this.dx = -this.dx;}if (this.y < 0 || this.y > canvas.height) {this.dy = -this.dy}}Ball.prototype.render = function() {ctx.beginPath();ctx.globalAlpha = 1;ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2, false);ctx.fillStyle = this.color;ctx.fill()}for (let i = 0; i < 1000; i++) {new Ball();}setInterval(function() {ctx.clearRect(0, 0, canvas.width, canvas.height);for (let i = 0; i < ballArr.length; i++) {ballArr[i].render();ballArr[i].update();}}, 20)</script>
</body></html>

canvas-小球碰壁折返相关推荐

  1. 小球碰壁反弹加分_Javascript:Canvas的小球碰壁反弹

    (萌新),我今天在网上看了看如何在Canvas画布上做出小球碰壁反弹的效果,然后自己试做一下,感觉良好,不知道还有什么需要改良. 首先我的思路是: 1.在body创建一个canvas标签,设置宽:50 ...

  2. 小球碰壁反弹加分_canvas实现碰壁反弹(小球)

    Document canvas { box-shadow: 0 0 5px red; display: block; margin: 20px auto; } var cv = document.qu ...

  3. 小球碰壁反弹加分_用Java实现小球碰壁反弹的简单实例(算法十分简单)

    用Java实现小球碰壁反弹的简单实例(算法十分简单) 核心代码如下: if(addX){ x+=3; }else{ x-=3; } if(addY){ y+=6; }else{ y-=6; } if( ...

  4. js运动小球碰壁反弹

    js运动小球碰壁反弹 1.触碰窗口壁沿反弹,同时改变颜色 <!DOCTYPE html> <html lang="en"><head><m ...

  5. js 小球碰壁反弹and小球碰撞

    好像好几天没有更博了呢,最近有点变懒了,这样不好,不好~~我们要做热爱学习的好孩子,嘻嘻,今天下午补上... 我们在学习js的时候,一个很经典的案例就是小球的碰壁反弹效果啦~简单的小球碰壁效果可以慢慢 ...

  6. canvas小球连线碰撞效果 html+css+js

    先看效果(完整代码在底部): canvas小球连线碰撞完整源代码 html+css+js 这是我的B站地址~热烈欢迎 实现(看注释,可一步一步跟着实现): 0:定义标签: <h1>北极光之 ...

  7. java实现多个小球碰壁变色_java小程序(小球碰壁)

    模拟一个小球碰壁后,沿光的反射方向运动的动画. package mypro01; import java.awt.*; class Main { public static void main(Str ...

  8. vue+canvas 小球连线——碰壁折返

    学习案例,记录一下 <template><div><canvas ref="myCanvas" width="800" heigh ...

  9. canvas -小球自由落体运动

    最近学习canvas,就使用canvas写一个小球,再有重力作用下的落体运动 html: <canvas id="canvas" width="600" ...

最新文章

  1. Oracle Goldengate Windows平台Oracle-Oracle单向复制
  2. @override注解可以不写吗
  3. 《数据库SQL实战》找出所有员工当前薪水salary情况
  4. 【SPOJ 694】Distinct Substrings (更直接的求法)
  5. NET问答: 如何用 C# 计算相对时间 ?
  6. P4149-[IOI2011]Race【点分治】
  7. SpringBoot入门到精通_第2篇 _1分钟实战需求项目
  8. 小程序中字符串转数组如何实现
  9. 通过增强的 Windows Forms 支持为 .NET 应用程序精心制作华丽的 UI
  10. 操作系统(02326)课后习题答案
  11. Android 圆形进度条
  12. 创建线程的三种方法c语言,创建线程 - Python教程 - C语言网
  13. c语言 获取硬盘序列号,获取硬盘序列号的C++代码
  14. 嵌入式开发学习(8)一步一步点亮LED灯
  15. LabView学习之旅(2)labview基础编程
  16. WordPress安装教程
  17. Android 接入穿山甲SDK之开屏广告
  18. HDU-1567-A/B——算法笔记
  19. Android-模块化-面向接口编程深度解析,值得收藏
  20. 网络能看到计算机 但是进不去,共享文件夹 在网络邻居看到别人的电脑 进不去...

热门文章

  1. 手机小技巧丨15个微信使用妙招,值得收藏
  2. Python3 URL格式化url解析url提取参数
  3. 在mysql中删除表正确的是什么原因_MySQL在删除表时I/O错误原因分析
  4. 牛客练习赛63 F.牛牛的树行棋(启发式合并+sg打表)
  5. PhysX 3.3 基础
  6. strftime()函数的使用方法
  7. 详解linux中的backlog
  8. Helm chart仓库操作
  9. 某疾病特异性表达非编码RNA(lncRNA)探究
  10. 捋一捋pytorch官方的FasterRCNN代码