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.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
Dec 08 Javascript
jquery右下角弹出提示框示例代码
Oct 08 Javascript
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
Sep 01 Javascript
Javascript的表单验证-初识正则表达式
Mar 18 Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 Javascript
vue的全局提示框组件实例代码
Feb 26 Javascript
axios post提交formdata的实例
Mar 16 Javascript
vue自定义正在加载动画的例子
Nov 14 Javascript
js实现选项卡效果
Mar 07 Javascript
JS实现京东商品分类侧边栏
Dec 11 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之PHP语法学习笔记1
2006/12/17 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
Python中的迭代器漫谈
2015/02/03 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
详解pandas赋值失败问题解决
2020/11/29 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
信息部岗位职责
2013/11/12 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
初中学生评语大全
2014/04/24 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
寒假致家长的一封信
2015/10/10 职场文书