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 相关文章推荐
jquery获取焦点和失去焦点事件代码
Apr 21 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
Mar 20 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
Dec 25 Javascript
基于jquery实现百度新闻导航菜单滑动动画
Mar 15 Javascript
浅析JavaScript中作用域和作用域链
Dec 06 Javascript
Vue filters过滤器的使用方法
Jul 14 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 Javascript
js实现拖拽元素选择和删除
Aug 25 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
php下载文件的代码示例
2012/06/29 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
python 将print输出的内容保存到txt文件中
2018/07/17 Python
python 实现敏感词过滤的方法
2019/01/21 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
python with语句的原理与用法详解
2020/03/30 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
中专生学习生活的自我评价分享
2013/10/27 职场文书
班级安全教育实施方案
2014/02/23 职场文书
元旦寄语大全
2014/04/10 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
应届生求职信范文
2014/06/30 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
招标保密承诺书
2015/01/20 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS