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 EasyUI API 中文文档 DateTimeBox日期时间框
Oct 16 Javascript
window.onresize 多次触发的解决方法
Nov 08 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
Jan 27 Javascript
node.js中的http.get方法使用说明
Dec 14 Javascript
Jquery promise实现一张一张加载图片
Nov 13 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
微信小程序实现MUI数字输入框效果
Jan 31 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
JS module的导出和导入的实现代码
Feb 25 Javascript
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
jQuery替换节点元素的操作方法
2018/03/18 jQuery
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
Python模拟登录12306的方法
2014/12/30 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
公司担保书范文
2014/05/21 职场文书
困难补助申请报告
2015/05/19 职场文书
文明礼仪主题班会
2015/08/13 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
redis数据一致性的实现示例
2022/03/18 Redis
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android