processing.js实现canvas大小蚂蚁走路动画效果代码

代码语言:html

所属分类:动画

代码描述:processing.js实现canvas大小蚂蚁走路动画效果代码

代码标签: processing.js canvas 大小 蚂蚁 走路 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>

<html lang="en">

<head>

   
<meta charset="UTF-8">





   
<style>
       
* {
         
margin: 0;
         
box-sizing: border-box;
         
overflow: hidden;
       
}
       
        body
{
         
background: #222;
         
width: 100%;
         
height: 100vh;
         
display: flex;
         
justify-content: center;
         
align-items: center;
       
}
        body canvas
{
         
box-shadow: 0.2em 0.2em 2em #0008;
         
border: none;
         
outline: none;
       
}
   
</style>



</head>

<body>
   
<canvas id="canvas"></canvas>
   
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/processing.min.js"></script>



   
<script id="rendered-js">
        var sketchProc = function (processingInstance) {
          with (processingInstance) {
            size(600, 600);
            frameRate(60);
            smooth();
       
            const Ant = function () {
              const _Ant = function (args) {
                this.x = args.x;
                this.y = args.y;
                this.size = args.size;
                this.speed = 1 + args.speed * 4 || 1;
                this.anim = {
                  body: 0,
                  abdomen: 0,
                  feelers: {
                    left: 0,
                    right: 0 },
       
                  blink: {
                    active: false,
                    timer: 0 } };
       
       
                this.legs = {
                  fl: { //front right
                    angles: [0, 0, 0] },
       
                  fr: { //front left
                    angles: [0, 0, 0] },
       
                  ml: { //middle left
                    angles: [0, 0] },
       
                  mr: { //middle right
                    angles: [0, 0] },
       
                  bl: { //back left
                    angles: [0, 0, 0] },
       
                  br: { //back right
                    angles: [0, 0, 0] } };
       
       
                this.timer = 0;
              };
              _Ant.prototype = {
                update: function () {
                  this.timer++;
       
                  //body/feelers
                  this.anim.body = -abs(sin(radians(this.timer * this.speed)) * 5);
                  this.anim.abdomen = -abs(sin(radians(this.timer * this.speed)) * 8);
                  this.anim.feelers.left = cos(radians(this.timer * this.speed * 2)) * 5;
                  this.anim.feelers.right = sin(radians(this.timer * this.speed * 2)) * 5;
       
                  //legs
       
                  //front left
                  this.legs.fl.angles[0] = 15 + sin(radians((this.timer + 90) * this.speed)) * 15;
                  this.legs.fl.angles[1] = 90 + sin(radians((this.timer + 90) * this.speed)) * -20;
                  this.legs.fl.angles[2] = -80 + sin(radians((this.timer + 180) * this.speed)) * 15;
       
                  //front right
                  this.legs.fr.angles[0] = 15 + sin(radians((this.timer - 90) * this.speed)) * 15;
                  this.legs.fr.angles[1] = 90 + sin(radians((this.timer - 90) * this.speed)) * -20;
                  this.legs.fr.angles[2] = -80 + sin(radians(this.timer * this.speed)) * 15;
       
                  //middle left
                  this.legs.ml.angles[0] = 60 + sin(radians(this.timer * this.speed)) * 15;
                  this.legs.ml.angles[1] = -70 + cos(radians(this.timer * this.speed)) * -15;
       
                  //middle right
                  this.legs.mr.angles[0] = 60 + sin(radians((this.timer + 180) * this.speed)) * 15;
                  this.legs.mr.angles[1] = -70 + cos(radians((this.timer + 180) * this.speed)) * -20;
       
                  //back left
                  this.legs.bl.angles[0] = -20 + cos(radians((this.timer - 90) * this.speed)) * -15;
                  this.legs.bl.angles[1] = -85 + cos(radians((this.timer - 90) * this.speed)) * 40;
                  this.legs.bl.angles[2] = 0 - this.legs.bl.angles[1] + sin(radians((this.timer - 90) * this.speed)) * -15;
       
                  //back right
                  this.legs.br.angles[0] = -20 + cos(radians((this.timer + 90) * this.speed)) * -15;
                  this.legs.br.angles[1] = -85 + cos(radians((this.........完整代码请登录后点击上方下载按钮下载查看

网友评论0