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 兼容所有浏览器的DOM扩展功能
Aug 01 Javascript
Javascript中valueOf与toString区别浅析
Mar 19 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
使用focus方法让光标默认停留在INPUT框
Jul 29 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
Feb 08 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
优雅地使用loading(推荐)
Apr 20 Javascript
vue点击当前路由高亮小案例
Sep 26 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
计数器详细设计
2006/10/09 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
ScrollDown的基本操作示例
2013/06/09 Javascript
使用js画图之饼图
2015/01/12 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
Python 3中的yield from语法详解
2017/01/18 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
Python 实现向word(docx)中输出
2020/02/13 Python
美国羊皮公司:Overland
2018/01/15 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
护士的自我鉴定
2014/02/07 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
营运督导岗位职责
2015/04/10 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书