Watch all the tutorial videos first. They explain the basics pretty well.
You have to wire up a lot of separate concepts all together. I don't know what your level of experience is so I'm going to go super slow. Let's dive in!
It sounds like you&
039;ve defined two entities. Let's call them #EntityPlayer
and
EntityBullet
. You&
039;ve defined two classes, but you still need to instantiate them. In Weltmeister, make a new level and save it as "first.js". Select the "entities" button in the upper-right to select the entity layer. This layer lets you paint entities, like the ones you've defined, into your new level. Press the spacebar to bring up a menu. You should see your entities in there, #Player
and
Bullet
(they won&
039;t have the #Entity
prefix on them). Select
Player
and click on the visible area of the editor to put one down. If you&
039;ve assigned an <4> for your #EntityPlayer
by assigning to its
animSheet property you should see it drawn inside Weltmeister.
Go to your main.js file. That&
039;s where you define the #Game
class that runs your game. You&
039;ll probably end up defining multiple of these but I'm getting ahead of myself. Somewhere in the #init
method of your
Game
class type in this:
this.loadLevelDeferred(LevelFirst);
You need to make sure that you put
game.levels.first
in the
requires
section at the top of main.js. That should load the level you've defined in Weltmeister when you start up your game. The tutorial videos cover a lot of this stuff, so I'm skimping on detail here.
Getting to the good stuff: Impact is going to call the
update
method of your entities every frame. Your
EntityPlayer
is going to have an
update
method where you can ask it to check to see if the "fire" button is getting hit and, if it is, to spawn an
EntityBullet
.
Add this to the
init
method in main.js:
ig.input.bind(ig.KEY.SPACE, 'fire');
You&
039;re telling Impact that when the player presses the space bar it will trigger the "fire" key. You can check it by looking at #ig.input.pressed('fire')
in the
update
method of your
EntityPlayer
like this:
update(): function() {
if (ig.input.pressed('fire')) {
var bullet = ig.game.spawnEntity('EntityBullet', this.pos.x, this.pos.y, {
vel: {
x: 0,
y: -100
}
});
}
}
This tells Impact to spawn a new
EntityBullet
when the
EntityPlayer
presses the fire button. The new
EntityBullet
instance will start in the same position as the
EntityPlayer
instance but will have a velocity that sends it up the screen.
After that you have to set the collision type of
EntityBullet
correctly so that it collides with your bad guys.
Check out the collision documentation for help there.