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插件开发基础简单介绍
Jan 07 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 Javascript
向左滚动文字 js代码效果
Aug 17 Javascript
javascript常用对话框小集
Sep 13 Javascript
js 鼠标移动显示图片的简单实例
Dec 25 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
Dec 04 Javascript
HTML Table 空白单元格补全的简单实现
Oct 13 Javascript
node.js爬虫爬取拉勾网职位信息
Mar 14 Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
vue 全局环境切换问题
Oct 27 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
Nov 04 Javascript
vue中activated的用法
Jan 03 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
p5.js绘制创意自画像
2019/11/04 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
Python any()函数的使用方法
2019/10/28 Python
Django values()和value_list()的使用
2020/03/31 Python
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
建筑班组长岗位职责
2014/01/02 职场文书
小加工厂管理制度
2014/01/21 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
签证工作证明模板
2015/06/15 职场文书
中秋节感想
2015/08/10 职场文书
2016年学校招生广告语
2016/01/28 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
MySQL导致索引失效的几种情况
2022/06/25 MySQL
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS