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 快速构建可拖曳的购物车DragDrop
Nov 30 Javascript
Google (Local) Search API的简单使用介绍
Nov 28 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
Feb 12 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
Jun 30 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
JavaScript中三种异步上传文件方式
Mar 06 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
Jul 24 Javascript
layer弹出子iframe层父子页面传值的实现方法
Nov 22 Javascript
javascript实现放大镜功能
Dec 09 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实现的递归提成方案实例
2015/11/14 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
vue组件实例解析
2017/01/10 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
python双向链表实现实例代码
2013/11/21 Python
python中的错误处理
2016/04/10 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
python中的计时器timeit的使用方法
2017/10/20 Python
python 对象和json互相转换方法
2018/03/22 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
python实现整数的二进制循环移位
2019/03/08 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
个人债务授权委托书
2014/10/17 职场文书
食品药品安全责任书
2015/05/11 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
学校就业保障协议书
2019/06/24 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
MySQL读取JSON转换的方式
2022/03/18 MySQL
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js
Redis唯一ID生成器的实现
2022/07/07 Redis