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读取ASP设定的COOKIE
Feb 15 Javascript
javascript实现的listview效果
Apr 28 Javascript
window.name代替cookie的实现代码
Nov 28 Javascript
js里怎么取select标签里的值并修改
Dec 10 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
详解基于Bootstrap扁平化的后台框架Ace
Nov 27 Javascript
BootStrap实现树形目录组件代码详解
Jun 21 Javascript
简单理解vue中实例属性vm.$els
Dec 01 Javascript
react以create-react-app为基础创建项目
Mar 14 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
Nov 14 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
Dec 16 Javascript
基于JavaScript实现大文件上传后端代码实例
Aug 18 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
thinkphp备份数据库的方法分享
2015/01/04 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
Python修改MP3文件的方法
2015/06/15 Python
Python程序中设置HTTP代理
2016/11/06 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
代码实例讲解python3的编码问题
2019/07/08 Python
python datetime处理时间小结
2020/04/16 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
涉外文秘个人求职的自我评价
2013/10/07 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
社会实践感言
2014/01/25 职场文书
考核工作实施方案
2014/03/30 职场文书
三八节标语
2014/06/27 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis