p5.js入门教程之小球动画示例代码


Posted in Javascript onMarch 15, 2018

一、运动的小球

本节将用p5.js做一个在屏幕上运动的小球。

思路是用变量记录小球的位置,然后在draw()函数里对其做出改变,由于draw()函数会不断地运行(频率为FPS,默认60帧/秒),所以小球便产生了运动。

代码如下:

var x=0; 
 
function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
 //width和height是关键词,分别是Canvas的宽和高 
 x+=2; 
 ellipse(x,height/2,20,20); 
}

二、反弹的小球

经过一段时间后,小球会移出屏幕。为了不让小球跑到屏幕之外,我们新增一个变量用来控制速度,并在小球离开屏幕时让速度反向。

代码如下:

var x=0; 
var speed=2; 
 
function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
 ellipse(x,height/2,20,20); 
 //width和height是关键词,分别是Canvas的宽和高 
 x+=speed; 
 if(x>width||x<0){ 
 speed*=-1; 
}

进一步,我们可以用两个变量控制x、y方向的速度,实现小球在画布上弹射的功能。

代码如下:

var x=200; 
var y=200; 
var Vx=2; 
var Vy=3; 
 
function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
 ellipse(x,y,20,20);//width和height是关键词,分别是Canvas的宽和高 
 x+=Vx; 
 y+=Vy; 
  if(x>width||x<0){ 
    Vx*=-1; 
 } 
 if(y>height||y<0){ 
    Vy*=-1; 
 } 
}

最终效果:https://alpha.editor.p5js.org/full/Bya02GDBb

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
增强的 JavaScript 的 trim 函数的代码
Aug 13 Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
jqeury-easyui-layout问题解决方法
Mar 24 Javascript
JavaScript中判断整数的多种方法总结
Nov 08 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
layui文件上传实现代码
May 20 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
vue 项目地址去掉 #的方法
Oct 20 Javascript
详解用Webpack与Babel配置ES6开发环境
Mar 12 Javascript
vue实现简易计算器功能
Jan 20 Vue.js
vue3中provide && inject的使用
Jul 01 Vue.js
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
Mar 15 #Javascript
JS实现导出Excel的五种方法详解【附源码下载】
Mar 15 #Javascript
Angularjs Promise实例详解
Mar 15 #Javascript
p5.js入门教程和基本形状绘制
Mar 15 #Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
Mar 15 #Javascript
vue之浏览器存储方法封装实例
Mar 15 #Javascript
vue实现提示保存后退出的方法
Mar 15 #Javascript
You might like
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
win7下python3.6安装配置方法图文教程
2018/07/31 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
ipad上运行python的方法步骤
2019/10/12 Python
python读取与处理netcdf数据方式
2020/02/14 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
彩色的翅膀教学反思
2014/04/25 职场文书
大学生见习报告总结
2014/11/04 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP