canvas实现fj40越野车行驶在凹凸山坡路面动画效果代码
代码语言:html
所属分类:动画
代码描述:canvas实现fj40越野车行驶在凹凸山坡路面动画效果代码
代码标签: canvas fj40 越野车 行驶 凹凸 山坡 路面 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> * { margin: 0; box-sizing: border-box; overflow: hidden; } body { background: #77A1D1; 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 > var sketchProc = function(processingInstance) { with (processingInstance) { size(600, 600); frameRate(60); smooth(); var road, truck; var keys = []; keyPressed = function() { keys[keyCode] = true; }; keyReleased = function() { keys[keyCode] = false; }; var collision = function(wheel, track) { return dist(wheel.x, wheel.y, track.x, track.y) < wheel.diameter / 2; }; var Truck = (function() { Truck = function(args) { this.x = args.x || 300; this.y = args.y || 200; this.w = args.w || 150; this.h = args.h || 100; this.vx = args.vx || 0; this.vy = args.vy || 0; this.gravity = args.gravity || 0.2; this.angle = 0; this.speed = { value: 7, min: 0, max: 20 }; this.wheels = [ { x: this.x - this.w * 0.5, y: this.y, diameter: 57, circumference: PI * 58, angle: 0, vx: 0, vy: 0 }, { x: this.x + this.w * 0.5, y: this.y, diameter: 58, circumference: PI * 58, angle: 0, vx: 0, vy: 0 } ]; this.colors = { outline: color(55, 35, 25), body: color(250, 175, 65), roof: color(255, 255, 255), guards: color(80, 70, 85), carriage: color(60, 50, 50), accent: color(230, 80, 60), windows: color(50, 50, 50, 20) }; this.truckImage = this.getTruck(); this.wheelImage = this.getWheel(); }; Truck.prototype = { getTruck: function() { background(0, 0, 0, 0); //curve brace under carriage stroke(this.colors.outline); strokeWeight(3); noFill(); beginShape(); vertex(380, 342); bezierVertex(380, 352, 375, 359, 366, 361); vertex(280, 361); bezierVertex(272, 359, 267, 352, 266, 342); endShape(); //front bumper noStroke(); fill(this.colors.outline); rect(454, 326, 73, 16); //line under front bumper stroke(this.colors.outline); noFill(); beginShape(); vertex(517, 336); vertex(517, 349); vertex(451, 363); endShape(); //under carriage stroke(this.colors.guards); line(124, 337, 160, 337); stroke(this.colors.outline); fill(this.colors.carriage); beginShape(); vertex(501, 271); vertex(502, 300); vertex(.........完整代码请登录后点击上方下载按钮下载查看
网友评论0