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 相关文章推荐
WordPress 插件——CoolCode使用方法与下载
Jul 02 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
Dec 02 Javascript
js内置对象 学习笔记
Aug 01 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 Javascript
javascript的函数劫持浅析
Sep 26 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
Oct 25 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
Vue指令指令大全
Feb 09 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
Sep 29 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
Nov 29 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 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
cache_lite试用
2007/02/14 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
在Python中处理XML的教程
2015/04/29 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
使用python turtle画高达
2020/01/19 Python
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
struct与class的区别
2014/02/03 面试题
通信工程毕业生自荐信
2013/11/01 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
2015年实习单位评语
2015/03/25 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
详解python的内存分配机制
2021/05/10 Python