mirror of
https://github.com/photonstorm/phaser
synced 2024-11-23 21:24:09 +00:00
Updated tutorial code so you can't bounce off stars.
This commit is contained in:
parent
00abd388e8
commit
840d3669b0
6 changed files with 64 additions and 6 deletions
|
@ -103,7 +103,7 @@ function create() {
|
|||
function update() {
|
||||
|
||||
// Collide the player and the stars with the platforms
|
||||
game.physics.arcade.collide(player, platforms);
|
||||
var hitPlatform = game.physics.arcade.collide(player, platforms);
|
||||
game.physics.arcade.collide(stars, platforms);
|
||||
|
||||
// Checks to see if the player overlaps with any of the stars, if he does call the collectStar function
|
||||
|
@ -135,7 +135,7 @@ function update() {
|
|||
}
|
||||
|
||||
// Allow the player to jump if they are touching the ground.
|
||||
if (cursors.up.isDown && player.body.touching.down)
|
||||
if (cursors.up.isDown && player.body.touching.down && hitPlatform)
|
||||
{
|
||||
player.body.velocity.y = -350;
|
||||
}
|
||||
|
|
|
@ -108,7 +108,7 @@ function create() {
|
|||
function update() {
|
||||
|
||||
// Collide the player and the stars with the platforms
|
||||
game.physics.arcade.collide(player, platforms);
|
||||
var hitPlatform = game.physics.arcade.collide(player, platforms);
|
||||
game.physics.arcade.collide(stars, platforms);
|
||||
|
||||
// Checks to see if the player overlaps with any of the stars, if he does call the collectStar function
|
||||
|
@ -140,7 +140,7 @@ function update() {
|
|||
}
|
||||
|
||||
// Allow the player to jump if they are touching the ground.
|
||||
if (cursors.up.isDown && player.body.touching.down)
|
||||
if (cursors.up.isDown && player.body.touching.down && hitPlatform)
|
||||
{
|
||||
player.body.velocity.y = -350;
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -24,12 +24,16 @@ Phaser.AnimationParser = {
|
|||
* @param {number} [margin=0] - If the frames have been drawn with a margin, specify the amount here.
|
||||
* @param {number} [spacing=0] - If the frames have been drawn with spacing between them, specify the amount here.
|
||||
* @param {number} [skipFrames=0] - Skip a number of frames. Useful when there are multiple sprite sheets in one image.
|
||||
* @param {Phaser.Frame} [frame] - Optional Frame, if this font is embedded in a texture atlas.
|
||||
* @return {Phaser.FrameData} A FrameData object containing the parsed frames.
|
||||
*/
|
||||
spriteSheet: function (game, key, frameWidth, frameHeight, frameMax, margin, spacing, skipFrames) {
|
||||
spriteSheet: function (game, key, frameWidth, frameHeight, frameMax, margin, spacing, skipFrames, frame) {
|
||||
|
||||
var img = key;
|
||||
|
||||
var frameX = (frame) ? frame.x : 0;
|
||||
var frameY = (frame) ? frame.y : 0;
|
||||
|
||||
if (typeof key === 'string')
|
||||
{
|
||||
img = game.cache.getImage(key);
|
||||
|
@ -91,7 +95,7 @@ Phaser.AnimationParser = {
|
|||
|
||||
for (var i = 0; i < total; i++)
|
||||
{
|
||||
data.addFrame(new Phaser.Frame(i, x, y, frameWidth, frameHeight, ''));
|
||||
data.addFrame(new Phaser.Frame(i, x + frameX, y + frameY, frameWidth, frameHeight, ''));
|
||||
|
||||
x += frameWidth + spacing;
|
||||
|
||||
|
|
|
@ -710,6 +710,60 @@ Phaser.Cache.prototype = {
|
|||
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a new Sprite Sheet to the Cache, where the sheet is part of a Texture Atlas.
|
||||
*
|
||||
* The atlas must already exist in the cache, and be available based on the given `atlasKey`.
|
||||
*
|
||||
* The `atlasFrame` specifies the name of the frame within the atlas that the Sprite Sheet is
|
||||
* stored in.
|
||||
*
|
||||
* @method Phaser.Cache#addSpriteSheetFromAtlas
|
||||
* @param {string} key - The key that this asset will be stored in the cache under. This should be unique within this cache.
|
||||
* @param {string} atlasKey - The key of the Texture Atlas in the Cache.
|
||||
* @param {string} atlasFrame - The frame of the Texture Atlas that the Sprite Sheet is in.
|
||||
* @param {number} frameWidth - Width of the sprite sheet.
|
||||
* @param {number} frameHeight - Height of the sprite sheet.
|
||||
* @param {number} [frameMax=-1] - How many frames stored in the sprite sheet. If -1 then it divides the whole sheet evenly.
|
||||
* @param {number} [margin=0] - If the frames have been drawn with a margin, specify the amount here.
|
||||
* @param {number} [spacing=0] - If the frames have been drawn with spacing between them, specify the amount here.
|
||||
* @param {number} [skipFrames=0] - Skip a number of frames. Useful when there are multiple sprite sheets in one image.
|
||||
*/
|
||||
addSpriteSheetFromAtlas: function (key, atlasKey, atlasFrame, frameWidth, frameHeight, frameMax, margin, spacing, skipFrames) {
|
||||
|
||||
if (frameMax === undefined) { frameMax = -1; }
|
||||
if (margin === undefined) { margin = 0; }
|
||||
if (spacing === undefined) { spacing = 0; }
|
||||
|
||||
var frame = this.getFrameByName(atlasKey, atlasFrame);
|
||||
|
||||
if (!frame)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var obj = {
|
||||
font: null,
|
||||
base: this.getBaseTexture(atlasKey),
|
||||
frame: frame
|
||||
};
|
||||
|
||||
|
||||
var obj = {
|
||||
key: key,
|
||||
frameWidth: frameWidth,
|
||||
frameHeight: frameHeight,
|
||||
margin: margin,
|
||||
spacing: spacing,
|
||||
base: this.getBaseTexture(atlasKey),
|
||||
frame: frame,
|
||||
frameData: Phaser.AnimationParser.spriteSheet(this.game, data, frameWidth, frameHeight, frameMax, margin, spacing, skipFrames, frame)
|
||||
};
|
||||
|
||||
this._cache.image[key] = obj;
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a new texture atlas to the Cache.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue