canvas新年快乐烟花绽放形成文字动画效果代码

代码语言:html

所属分类:动画

代码描述:canvas新年快乐烟花绽放形成文字动画效果代码

代码标签: canvas 新年 快乐 烟花 绽放 形成 文字 动画

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

<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">

</head>
<body>
 

  <script>
      function GameCanvas(settings) {
          let top = this;
  
          this.functions = [];
          this.keys = [];
          this.ctrlPressed = false;
          this.shiftSPressed = false;
          this.altPressed = false;
          this.images = [];
          this.spheres = [];
          this.font = "Arial";
          this.imageData = undefined;
          this.imageDataData = undefined;
          this.lastLoop = performance.now();
          this.calculateFPS = true;
          this.fps = -1;
          this.deltaTime = 1;
          let mouseLookupTable = [
            "left",
            "middle",
            "right"
          ];
          this.contextMenuDisabled = false;
          this.disableScrollOnMobile = false;
          this.eventFunctions = {
              "mousedown": typeof OnMouseDown !== "undefined",
              "mouseup": typeof OnMouseUp !== "undefined",
              "mousemove": typeof OnMouseMove !== "undefined",
              "contextmenu": typeof OnContextMenu !== "undefined",
              "touchstart": typeof OnTouchStart !== "undefined",
              "touchend": typeof OnTouchEnd !== "undefined",
              "touchmove": typeof OnTouchMove !== "undefined",
              "keydown": typeof OnKeyDown !== "undefined",
              "keyup": typeof OnKeyUp !== "undefined"
          };
          this.audioContext = new (window.AudioContext || window.webkitAudioContext)();
  
          this.createCanvas = function() {
              let canvas = document.createElement("canvas");
              document.body.appendChild(canvas);
              return canvas;
          }
          this.setSize = function(width, height) {
              if (top.canvas) {
                  top.canvas.width = top.width = width;
                  top.canvas.height = top.height = height;
                  window.width = this.width;
                  window.height = this.height;
              }
              else {
                  console.error("There is no canvas!");
              }
          }
          this.fillPageWithCanvas = function() {
              top.canvas.style.position = "fixed";
              top.canvas.style.top = "0px";
              top.canvas.style.left = "0px";
              top.setSize(window.innerWidth, window.innerHeight);
              top.disableScrollOnMobile = true;
              top.contextMenuDisabled = true;
              this.updateSizeOnResize = true;
          }
          this.requestFullscreen = function() {
              if (top.canvas.requestFullscreen)
                  top.canvas.requestFullscreen();
              else if (top.canvas.mozRequestFullScreen)
                  top.canvas.mozRequestFullScreen();
              else if (top.canvas.webkitRequestFullscreen)
                  top.canvas.webkitRequestFullscreen();
              else if (top.canvas.msRequestFullscreen)
                  top.canvas.msRequestFullscreen();
          }
          this.exitFullscreen = function() {
              if(document.exitFullscreen)
                  document.exitFullscreen();
              else if(document.mozCancelFullScreen)
                  document.mozCancelFullScreen();
              else if(document.webkitExitFullscreen)
                  document.webkitExitFullscreen();
              else if(document.msExitFullscreen)
                  document.msExitFullscreen();
          }
          this.lockPointer = function() {
              top.canvas.requestPointerLock = top.canvas.requestPointerLock || top.canvas.mozRequestPointerLock;
              top.canvas.requestPointerLock();
          }
          this.unlockPointer = function() {
              document.exitPointerLock = document.exitPointerLock || document.mozExitPointerLock;
              document.exitPointerLock();
          }
          this.disableContextMenu = function() {
              top.contextMenuDisabled = true;
          }
          this.enableContextMenu = function() {
              top.contextMenuDisabled = false;
          }
  
          this.key = function(key) {
              return top.keys[key];
          }
  
          this.isCtrlPressed = function() {
              return top.ctrlPressed;
          }
  
          this.isShiftPressed = function() {
              return top.shiftPressed;
          }
  
          this.isAltPressed = function() {
              return top.altPressed;
          }
  
          this.update = function() {
              if (top.calculateFPS) {
                  var thisLoop = performance.now();
                  var delta = (thisLoop - top.lastLoop);
                  top.fps = 1000 / delta;
                  top.deltaTime = delta / 1000;
                  top.lastLoop = thisLoop;
      
                  if (top.globalFunctions) {
                      window.fps = top.fps;
                      window.deltaTime = top.deltaTime;
                  }
              }
    
              top.mouse.movementX = 0;
              top.mouse.movementY = 0;
              top.mouse.lastX = top.mouse.x;
              top.mouse.lastY = top.mouse.y;
          }
  
          /******************
          
               Rendering
             
           ******************/
  
          this.clearScreen = function() {
              top.ctx.clearRect(0, 0, top.width, top.height);
          }
  
          this.background = function(color) {
              top.ctx.fillStyle = color;
              top.ctx.fillRect(0, 0, top.width, top.height);
          }
  
          this.circle = function(x, y, radius, color, strokeColor, lineWidth) {
              top.ctx.beginPath();
              top.ctx.arc(x, y, radius, 0, Math.PI * 2);
              top.ctx.fillStyle = color;
              if (strokeColor) top.ctx.strokeStyle = strokeColor;
              if (lineWidth) top.ctx.lineWidth = lineWidth;
              top.ctx.fill();
              if (strokeColor) top.ctx.stroke();
          }
  
          this.ring = function(x, y, radius, color, lineWidth) {
              top.ctx.beginPath();
              top.ctx.arc(x, y, radius, 0, Math.PI * 2);
              top.ctx.strokeStyle = color;
              if (lineWidth) top.ctx.lineWidth = lineWidth;
              top.ctx.stroke();
          }
  
          this.ellipse = function(x, y, radiusX, radiusY, color, rotation = 0, strokeColor, lineWidth) {
              top.ctx.beginPath();
              top.ctx.ellipse(x, y, radiusX, radiusY, rotation, 0, Math.PI * 2);
              top.ctx.fillStyle = color;
              if (strokeColor) top.ctx.strokeStyle = strokeColor;
              if (lineWidth) top.ctx.lineWidth = lineWidth;
              top.ctx.fill();
              if (strokeColor) top.ctx.stroke();
          }
  
              this.rectangle = function(x, y, width, height, color, strokeColor, lineWidth) {
                  top.ctx.fillStyle = color;
                  if (lineWidth) top.ctx.lineWidth = lineWidth;
                  if (strokeColor) {
                      top.ctx.beginPath();
                      top.ctx.strokeStyle = strokeColor;
                      top.ctx.rect(x, y, width, height);
                      top.ctx.fill();
                      top.ctx.stroke();
                  }
                  else
                      top.ctx.fillRect(x, y, width, height);
              }
  
              this.roundedRectangle = function(x, y, w, h, color, cornerRadii, strokeColor, lineWidth) {
                  top.ctx.beginPath();
                  top.ctx.arc(x + cornerRadii[0], y + cornerRadii[0], cornerRadii[0], Math.PI, Math.PI * 1.5);
                  top.ctx.lineTo(x + w - cornerRadii[1], y);
                  top.ctx.arc(x + w - cornerRadii[1], y + cornerRadii[1], cornerRadii[1], Math.PI * 1.5, Math.PI * 2);
                  top.ctx.lineTo(x + w, y + h - cornerRadii[2]);
                  top.ctx.arc(x + w - cornerRadii[2], y + h - cornerRadii[2], cornerRadii[2], 0, Math.PI * 0.5);
                  top.ctx.lineTo(x + cornerRadii[3], y + h);
                  top.ctx.arc(x + cornerRadii[3], y + h - cornerRadii[3], cornerRadii[3], Math.PI * 0.5, Math.PI);
                  top.ctx.closePath();
                  if (strokeColor) {
                      if (lineWidth) top.ctx.lineWidth = lineWidth;
                      top.ctx.strokeStyle = strokeColor;
                      top.ctx.stroke();
                  }
                  top.ctx.fillStyle = color;
                  top.ctx.fill();
              }
  
              this.triangle = function(x1, y1, x2, y2, x3, y3, color, strokeColor, lineWidth) {
                  top.ctx.beginPath();
                  top.ctx.moveTo(x1, y1);
                  top.ctx.lineTo(x2, y2);
                  top.ctx.lineTo(x3, y3);
                  top.ctx.closePath();
                  top.ctx.fillStyle = color;
                  if (lineWidth) top.ctx.lineWidth = lineWidth;
                  top.ctx.fill();
                  if (strokeColor) {
                      top.ctx.strokeStyle = strokeColor;
                      top.ctx.stroke();
                  }
              }
  
              this.setLineCap = function(lineCap) {
                  top.ctx.lineCap = lineCap;
              }
  
              this.resetLineCap = function() {
                  top.ctx.lineCap = "butt";
              }
  
              this.line = function(x1, y1, x2, y2, strokeWeight, color) {
                  top.ctx.beginPath();
                  top.ctx.moveTo(x1, y1);
                  top.ctx.lineTo(x2, y2);
                  if (color) top.ctx.strokeStyle = color;
                  if (strokeWeight) top.ctx.lineWidth = strokeWeight;
                  top.ctx.stroke();
              }
  
              this.picture = function(url, x, y, width, height) {
                  var imageElement = top.images[url];
                  if (!imageElement) {
                      var img = new Image();
                      img.src = url;
                      img.onload = function() {
                          top.ctx.drawImage(img, x, y, width, height);
                      }
                      top.images[url] = img;
               .........完整代码请登录后点击上方下载按钮下载查看

网友评论0