processing实现圣诞老人下雪天送礼物舌头被黏在电话柱上动画效果代码

代码语言:html

所属分类:动画

代码描述:processing实现圣诞老人下雪天送礼物舌头被黏在电话柱上动画效果代码

代码标签: processing 圣诞 老人 下雪 礼物 舌头 被黏 电话 柱上 动画

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

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
  
<style>
* {
  margin: 0;
  box-sizing: border-box;
  overflow: hidden;
}

body {
  background: #cdebf0;
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
body canvas {
  box-shadow: 0.2em 0.2em 2em #0004;
  border: none;
  outline: none;
}
</style>


  
  
</head>

<body translate="no">
  <canvas id="canvas"></canvas>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/processing.1.4.8.js"></script>
  
      <script >
var sketchProc = function(processingInstance) {
  with (processingInstance) {
    size(600, 600); 
    frameRate(60);    
    smooth();
    
    /* jshint esnext: true */

    //santa object
    const Santa = (function() {
        const _Santa = function(args) {
            this.x = 400;
            this.y = 430; 
            this.diameter = 180;
            this.tounge = {
                x1: 0,
                y1: 0,
                x2: 0,
                y2: 0,
                x3: 0,
                y3: 0,
                x4: 0,
                y4: 0
            };
            this.arms = {
                left: {
                    x1: 0,
                    y1: 0,
                    x2: 0,
                    y2: 0,
                    x3: 0,
                    y3: 0,
                    x4: 0,
                    y4: 0
                },
                right: {
                    x1: 0,
                    y1: 0,
                    x2: 0,
                    y2: 0,
                    x3: 0,
                    y3: 0,
                    x4: 0,
                    y4: 0
                }
            };
            this.eyes = 0;
            this.offset = 0;
            this.timer = 0;
            this.state = "base";
            this.setup();
        };
        _Santa.prototype = {
            setup: function() {
                //left arm
                this.arms.left.x1 = this.x + this.diameter * 0.18;
                this.arms.left.y1 = this.y - this.diameter * 0.25;
                this.arms.left.x2 = this.x + this.diameter * 0.18;
                this.arms.left.y2 = this.y + this.diameter * 0.0;
                this.arms.left.x3 = this.x + this.diameter * 0.18;
                this.arms.left.y3 = this.y + this.diameter * 0.3;
                this.arms.left.x4 = this.x + this.diameter * 0.18;
                this.arms.left.y4 = this.y + this.diameter * 0.55;

                //right arm
                this.arms.right.x1 = this.x - this.diameter * 0.37;
                this.arms.right.y1 = this.y - this.diameter * 0.25;
                this.arms.right.x2 = this.x - this.diameter * 0.37;
                this.arms.right.y2 = this.y + this.diameter * 0.0;
                this.arms.right.x3 = this.x - this.diameter * 0.37;
                this.arms.right.y3 = this.y + this.diameter * 0.3;
                this.arms.right.x4 = this.x - this.diameter * 0.37;
                this.arms.right.y4 = this.y + this.diameter * 0.55;
            },
            update: function() {
                switch(this.state) {
                    case "pull":
                        this.timer++;
                        this.offset = constrain(this.offset + 0.5, 0, 80);
                        this.eyes = constrain(this.eyes + 0.1, 0, 20);
                        if(this.offset === 80.........完整代码请登录后点击上方下载按钮下载查看

网友评论0