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对象和DOM对象的相互转化实现代码
Mar 02 Javascript
分享几个超级震憾的图片特效
Jan 08 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
理解Javascript的call、apply
Dec 16 Javascript
JavaScript中的call和apply的用途以及区别
Jan 11 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
Mar 09 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
详解搭建es6+devServer简单开发环境
Sep 25 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
Jun 19 Javascript
Element Steps步骤条的使用方法
Jul 26 Javascript
JavaScript利用html5新方法操作元素类名详解
Nov 27 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
python中的yield使用方法
2014/02/11 Python
深入讲解Python编程中的字符串
2015/10/14 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
Python可迭代对象操作示例
2019/05/07 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
国贸专业自荐信范文
2014/03/02 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
国庆阅兵观后感
2015/06/15 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang
vue使用element-ui按需引入
2022/05/20 Vue.js