嘿,我有一個JavaScript在畫布上的問題。基本上,我無法弄清楚如何讓球以曲折形式前進。我是JavaScript新手,仍然在學習它,所以如果你們中的任何人都可以幫助我,那將不勝感激。所以我的問題是,我將如何去做一個曲折曲折的球行進?目前它只是從左到右做一條直線。Javascript - Canvas,如何使Zig zag中的球行進
這裏是我的代碼
// JavaScript Document
window.addEventListener('load', eventWindowLoaded, false);
function eventWindowLoaded() {
canvasApp();
}
function canvasSupport() {
return Modernizr.canvas;
}
function canvasApp() {
// test if Modernizr has been loaded
if (!canvasSupport()) {
return;
}
var pointImage = new Image();
// put an image into an image object
pointImage.src = "point.png";
function drawScreen() {
// fill the background
context.fillStyle = '#EEEEEE';
context.fillRect(0, 0, theCanvas.width, theCanvas.height);
// Draw a Box around the fill
context.strokeStyle = '#000000';
context.strokeRect(1, 1, theCanvas.width - 2, theCanvas.height-2);
// Create ball
if (moves > 0) {
moves--;
ball.x += xunits;
ball.y += yunits;
}
// Draw points to illustrate path
points.push({
x: ball.x,
y:ball.y
});
// for loop with drawImage inside the loop to draw the points
for (var i = 0; i < points.length; i++) {
context.drawImage(pointImage, points[i].x, points[i].y, 1, 1);
}
context.fillStyle = "#000000";
context.beginPath();
context.arc(ball.x, ball.y, ball_radius, 0, Math.PI * 2, true);
context.closePath();
context.fill();
}
var speed = 10;
// coordinates of the left hand point
var p1 = {
x: 20,
y: 250
};
var p2 = {
x: 480,
y: 250
};
// distance between left and right x coordinates
var dx = p1.x - p2.x;
var dy = p1.y - p2.y;
// Calculate the distance between points
var distance = Math.sqrt(dx * dx + dy * dy);
var moves = distance/speed;
var xunits = (p2.x - p1.x)/moves;
var yunits = (p2.y - p1.y)/moves;
var ball = {
x: p1.x,
y: p1.y
};
var points = new Array();
var the_interval = 20
var ball_radius = 5
// save the context in a variable
theCanvas = document.getElementById("canvasOne");
context = theCanvas.getContext("2d");
// call the drawscreen function every 33 miliseconds
setInterval(drawScreen, the_interval);
}
我使用Modernizr來幫助我。
好的謝謝,但我不明白如何使用這個我在哪裏把這種方法?我無法分辨它是否只是被遺忘,或者我一直在盯着這個完全相同的代碼6個小時,這讓我看起來似乎無法看到它。 – user2110609 2013-02-26 10:11:24