【发布时间】:2013-05-03 01:54:01
【问题描述】:
我使用 jquery 和有用的在线教程为一个学校项目创建了一个突破性游戏。
工作小提琴在这里:http://jsfiddle.net/Kinetic915/kURvf/
编辑修改小提琴:http://jsfiddle.net/Kinetic915/nVctR/
我已将大部分更改为 javascript,但在更改将球呈现为 javascript 的 jquery 代码时遇到问题。
我在有问题的地方做了标记并留了空格。
非常感谢您提供的任何帮助!
//***********************************************************************************
// START CODE
//***********************************************************************************
// VARIABLES and other initializing functions are here
function start() {
//******************************************************************************
//JQUERY
// HERE IS THE MAIN PROBLEM!!!!!!
// HERE IS THE MAIN PROBLEM!!!!!!
Cir = $('#canvas')[0].getContext("2d");
//JQUERY
//changing to Cir = canvas.getContext("2d"); causes the code to FAIL.
return setInterval(drawCIRCLE, 10);
}
function windowsize() {
//success with javascript
WIDTH.width = window.innerWidth;
HEIGHT.height = window.innerHeight;
WIDTH = window.innerWidth;
HEIGHT = window.innerHeight;
//Previous JQUERY:
// WIDTH = $("#canvas")[0].width = $(window).width();
// HEIGHT = $("#canvas")[0].height = $(window).height();
}
windowsize();
var x = WIDTH / 2 - 30; //divide by 2 start in middle of window
var y = HEIGHT / 2;
//THIS DRAWS THE CIRCLE
function circle() {
//Cir.clearRect(0, 0, WIDTH, HEIGHT);
Cir.beginPath();
Cir.arc(x, y, 10, 0, Math.PI * 2, true);
Cir.closePath();
Cir.fill();
}
// Initialization of the Block array, rendering of the gutter area and coordinate box
were here
//*********************************************************
// HERE IS THE CODE THAT RENDERS THE BALL MOVEMENT ETC.
//draw a circle
function drawCIRCLE() {
clear();
circle();
drawPADDLE(); //calls draw paddle function
drawGUTTER(); // calls draw gutter function
drawCOORBOX(); // calls draw coordinate box function
drawBRICKS(); //calls the function to draw the boxes
//have we hit a brick?
rowheight = brickheight + padding;
colwidth = brickwidth + padding;
row = Math.floor(y / rowheight);
col = Math.floor(x / colwidth);
//if so, reverse the ball and mark the brick as broken
if (y < numrows * rowheight && row >= 0 && col >= 0 && bricks[row][col] == 1) {
dy = -dy;
bricks[row][col] = 0;
}
if (x + dx > WIDTH || x + dx < 0) dx = -dx;
if (y + dy < 0) dy = -dy;
else if (y + dy > ((HEIGHT - paddleh) - ppoffset) || y + dy > HEIGHT) {
if (x > paddlex && x < paddlex + paddlew)
//switch! once first is true, then second goes
dy = -dy;
else if (y + dy > ((HEIGHT - paddleh) - ppoffset) && y + dy > HEIGHT) {
clearInterval(intervalId);
}
}
x += dx;
y += dy;
if (rightpress) paddlex += 5;
else if (leftpress) paddlex -= 5;
}
function clear() {
Cir.clearRect(0, 0, WIDTH, HEIGHT);
//Is this jquery? I suspect this part of the code making the circle rendering fail.
}
start();
init_paddle();
initbricks();
【问题讨论】:
-
你能把它提炼成一个更小的代码示例和更具体的问题吗?如果您向我们扔一堆代码并要求我们找出问题并解决它们,您不太可能获得太多帮助。
-
在你使用
$("#canvas")的地方,如果你不使用jQuery,你应该使用document.getElementById("canvas");。但是为什么不使用jquery呢? -
我的教授不希望我们使用 jquery。我设置了 var canvas = document.getElementById("canvas");然后我尝试了 Cir = canvas.getContext("2d");这不起作用。
-
对不起,我只是不确定错误在哪里,这就是我发布所有内容的原因。我试图发布另一个更简洁但也没有得到答案的问题,所以我在这里尝试:/
-
我现在尝试缩小它!
标签: javascript jquery html css breakout