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面向对象设计一 工厂模式
Dec 20 Javascript
JSONP 跨域共享信息
Aug 16 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
Dec 11 Javascript
javascript跨域总结之window.name实现的跨域数据传输
Nov 01 Javascript
js实现的在线调色板功能完整实例
Dec 21 Javascript
js canvas实现放大镜查看图片功能
Jun 08 Javascript
js编写简单的计时器功能
Jul 15 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
vue实现前端分页完整代码
Jun 17 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 Javascript
vue特效之翻牌动画
Apr 20 Vue.js
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
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
javascript日期格式化方法汇总
2015/10/04 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python多进程共享变量
2016/04/06 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python yield关键词案例测试
2019/10/15 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
学校开学标语
2014/10/06 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
Golang的继承模拟实例
2021/06/30 Golang
Python+Appium自动化测试的实战
2021/06/30 Python
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js