0

我是 JQuery 和 gameQuery 的新手,所以我可能有很多错误,请多多包涵。

我只是按照教程来尝试学习如何制作网页游戏,但由于教程有点过时,我需要改变一些东西。问题是我无法让我的“游戏”正常工作。这是我的代码:

var PLAYGROUND_HEIGHT = 250;
var PLAYGROUND_WIDTH = 700;
var FPS = 30;
var bg1speed = 0.5
var bg2speed = 2
var bg3speed = 8


$("#playground").playground({height: PLAYGROUND_HEIGHT, width: PLAYGROUND_WIDTH});

$("#playground").addGroup("background", {width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$("#playground").addGroup("actors", {width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$("#playground").addGroup("playerMissileLayer",{width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$("#playground").addGroup("enemiesMissileLayer",{width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});

var background2 = new $.gQ.Animation({imageURL: "data/background2.png"});
var background3 = new $.gQ.Animation({imageURL: "data/background3.png"});
var background4 = new $.gQ.Animation({imageURL: "data/background4.png"});
var background5 = new $.gQ.Animation({imageURL: "data/background5.png"});
var background1 = new $.gQ.Animation({imageURL: "data/background1.png"});
var background6 = new $.gQ.Animation({imageURL: "data/background6.png"});

$("#background").addSprite("background1", {animation: background1, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$("#background").addSprite("background2", {animation: background2, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT, posx: PLAYGROUND_WIDTH});
$("#background").addSprite("background3", {animation: background3, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$("#background").addSprite("background4", {animation: background4, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT, posx: PLAYGROUND_WIDTH});
$("#background").addSprite("background5", {animation: background5, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$("#background").addSprite("background6", {animation: background6, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT, posx: PLAYGROUND_WIDTH});

$("#playground").registerCallback(function(){
	if($("#background1").x() <= -PLAYGROUND_WIDTH){
		$("#background1").x(PLAYGROUND_WIDTH, False);
	};
	if($("#background2").x() <= -PLAYGROUND_WIDTH){
		$("#background2").x(PLAYGROUND_WIDTH, False);
	};
	if($("#background3").x() <= -PLAYGROUND_WIDTH){
		$("#background3").x(PLAYGROUND_WIDTH, False);
	};
	if($("#background4").x() <= -PLAYGROUND_WIDTH){
		$("#background4").x(PLAYGROUND_WIDTH, False);
	};
	if($("#background5").x() <= -PLAYGROUND_WIDTH){
		$("#background5").x(PLAYGROUND_WIDTH, False);
	};
	if($("#background6").x() <= -PLAYGROUND_WIDTH){
		$("#background6").x(PLAYGROUND_WIDTH, False);
	};
	
	$("#background1").x(-bg1speed, true);
	$("#background2").x(-bg1speed, true);
	$("#background3").x(-bg2speed, true);
	$("#background4").x(-bg2speed, true);
	$("#background5").x(-bg3speed, true);
	$("#background6").x(-bg3speed, true);
}, FPS);

$("#playground").startGame()
<html>

    <head>
        <title>Test</title>
      	<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
	      <script src="http://gamequeryjs.com/jquery.gamequery.js"></script>
      	<script src = "data/Test.js"></script>
    </head>

</html>

实际上,这个片段显示了与我的错误不同的错误消息。那很奇怪。

无论如何,得到的错误是:

Uncaught TypeError: Cannot read property 'children' of undefined
at Object.waitForResources (jquery.gamequery.js:313)
at jquery.gamequery.js:306

有谁知道为什么会这样?

旁注:我认为 gameQuery 应该抛出更多自定义异常,这将使像我这样的人更容易找出我们做错了什么。

4

0 回答 0