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 hashtable实现代码
Oct 13 Javascript
IE event.srcElement和FF event.target 功能比较
Mar 01 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
键盘KeyCode值列表汇总
Nov 26 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
JavaScript调试工具汇总
Dec 23 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
Apr 30 Javascript
图解JavaScript中的this关键字
May 28 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
Dec 23 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
Dec 05 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
node.js中express-session配置项详解
May 31 Javascript
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
一个oracle+PHP的查询的例子
2006/10/09 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
angular2使用简单介绍
2016/03/01 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
Python 列表理解及使用方法
2017/10/27 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
python生成九宫格图片
2018/11/19 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
python区块及区块链的开发详解
2019/07/03 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
管理部副部长岗位职责范文
2014/03/09 职场文书
个人先进事迹材料
2014/12/29 职场文书
收费员岗位职责
2015/02/14 职场文书
戒赌保证书
2015/05/11 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
Python必备技巧之函数的使用详解
2022/04/04 Python