0

我正在尝试调整gamefromscratch页面,展示如何处理基于精灵的射击。但我试图用容器中的位图替换精灵。我绊倒的地方是 onTick(delta) 的末尾,其中创建了一个图形对象,我不知道要替换的语法

   var g = new createjs.Graphics();
                g.setStrokeStyle(5);
                g.beginStroke(createjs.Graphics.getRGB(255,0,0));
                g.drawCircle(this.x,this.y,10);

                this.bulletGraphic = new createjs.Shape(g);
                stage.addChild(this.bulletGraphic);
            }
            bullets.push(bullet);

使用适用于容器中位图的代码。感谢您的关注。

4

2 回答 2

0

对于仅使用位图而不是形状,您可以使用:

      this.bulletGraphic = new createjs.Bitmap('urlOrImage');
      stage.addChild(this.bulletGraphic);
    }
    子弹.push(子弹);

如果您希望子弹位图另外位于容器中(无论出于何种原因):

      this.bulletGraphic = new createjs.Container();
      this.bulletBitmap = new createjs.Bitmap('urlOrImage');
      this.bulletGraphic.addChild(this.bulletBitmap);
      stage.addChild(this.bulletGraphic);
    }
    子弹.push(子弹);

我的一点旁注(与您的问题相关的注释,但以防万一): 该页面上给出的代码示例很好地解释了该主题背后的数学,但在代码方面我不会将此作为一个很好的例子。对于子弹,您通常会创建一个新类,继承自Shapeor Bitmap,此示例的作者使用普通对象并仅通过它引用图形资产(this.bulletGraphic)。所以如果你只是用它来学习数学,这很好,如果你想用它来创建一个真正的游戏,我建议你对代码进行相当多的重构,因为这会变得混乱很快。

于 2013-03-17T16:14:34.647 回答
0

我相信您正在寻找 g.beginBitmapStroke() 来替换 g.drawCircle()

你可以在这里找到 EaselJS 文档:

http://www.createjs.com/Docs/EaselJS/classes/Graphics.html#yui_3_8_0pr2_2_1363403850534_598

于 2013-03-16T03:22:40.223 回答