我正在从这里学习 html5 和画布交互
http://www.adobe.com/devnet/createjs/articles/getting-started.html
这是代码的一部分
function handleComplete() {
exportRoot = new lib.PlatypusGame();
exportRoot.removeChild(exportRoot.platypus);
stage = new Stage(canvas);
stage.addChild(exportRoot);
Touch.enable(stage);
Ticker.setFPS(20);
// add the listener to window, so we can do some work before updating the stage:
Ticker.addListener(window);
}
function tick() {
if (platypii.length < 1 || Math.random() < 0.01 && platypii.length < 5) {
var platypus = new lib.Platypus();
platypus.scaleX = platypus.scaleY = Math.random()*0.3+0.3;
platypus.x = 800;
// nominalBounds holds the dimensions of the first frame of the symbol at export time.
platypus.y = Math.random()*(400-platypus.scaleY*platypus.nominalBounds.height);
platypus.velX = (1+platypus.scaleX)*-6;
platypus.velY = 0;
// we only want to know about clicks on the balloon, not the whole platypus:
platypus.platypusIdle.balloon.onClick = handleBalloonClick;
platypus.onPopped = handleBalloonPopped;
platypii.push(platypus);
exportRoot.addChild(platypus);
}
// go in reverse to make it easier to splice items from the array
for (var i=platypii.length-1; i>=0; i--) {
platypus = platypii[i];
// add gravity to the Y velocity if it's falling:
if (platypus.falling) { platypus.velY += 3; }
platypus.x += platypus.velX;
platypus.y += platypus.velY;
if (platypus.x < -platypus.nominalBounds.width*platypus.scaleX || platypus.y > 400) {
platypii.splice(i,1);
exportRoot.removeChild(platypus);
// add +100 points if it fell or -500 if it escaped
updateScore(platypus.y > 400 ? 100 : -500);
}
}
stage.update();
}
我正在尝试通过更改 platypus.velY = 0 来改变鸭嘴兽以波浪式移动;到 platypus.velY = Math.sin(platypus.x) * 5; ,但没有成功,有什么想法吗?