【问题标题】:HTML5 Canvas drawing image at randomHTML5 Canvas 随机绘制图像
【发布时间】:2012-02-07 02:25:05
【问题描述】:

在编程方面我是个菜鸟,所以请耐心等待并指出我需要提供的任何其他信息。 我正在使用 Javascript 和 HTML5 画布制作游戏。在当前阶段,我调用两个图像并将它们分配给对象。它使用一个贯穿更新和渲染函数及其子函数的基本循环。

var player = {}
player.truck = new Image();
player.truck.src = "truck.png";
var missile = {}
missile.rocket = new Image();
missile.rocket.src = "missile2.png"

两者都通过单独的渲染函数进行操作,其变量由更新函数操作,而变量又由 keyPress 事件操作。 刷新时,玩家图像显示和行为都很好 - 但导弹完全随机显示。

检查键:

function checkKeys() {
    if (keyPressList[37]==true) {
        ConsoleLog.log("pressed left ")
        player.moveX = player.x -= 3;           
    }

    if (keyPressList[39]==true) {ConsoleLog.log("pressed right")
        player.moveX = player.x += 3;
    }

    if (keyPressList[32]==true) {ConsoleLog.log("space pressed")
        shotFired=true;
    }
}

更新导弹(update() 的子函数):

function updateMissiles(){
    if (shotFired==false){
        missile.x = player.x + 68;
        missile.y = 521;
    }else if(shotFired==true && currentGameStateFunction==gameStatePlayLevel){
        missile.y -= 5;
    }
}

渲染导弹(render() 的子函数):

function renderMissiles(x,y){
    context.drawImage(missile.rocket,missile.x,missile.y);
}

编辑:我目前正在处理多项任务,所以我将整个内容上传到 www.techgoldmine.com

【问题讨论】:

  • 你能提供你的动画循环吗?
  • 如果可能,请制作一个 jsfiddle :jsfiddle.net
  • 我已经上传到这里了:www.techgoldmine.com

标签: javascript html canvas drawimage


【解决方案1】:

shotfired 什么时候会重置为 false?可能是一旦你开火,它就会一直向updateMissiles() 开火。

【讨论】:

  • 谢谢!你打开了我的眼睛,看到它破裂的地方。你帮了大忙!
猜你喜欢
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
  • 2014-10-20
  • 1970-01-01
  • 2013-11-26
  • 2015-06-16
  • 2014-06-08
相关资源
最近更新 更多