diff --git a/src/org/andengine/entity/Entity.java b/src/org/andengine/entity/Entity.java index f68e52400..774cd6f18 100644 --- a/src/org/andengine/entity/Entity.java +++ b/src/org/andengine/entity/Entity.java @@ -14,6 +14,7 @@ import org.andengine.opengl.util.GLState; import org.andengine.util.Constants; import org.andengine.util.adt.color.Color; +import org.andengine.util.adt.color.ColorUtils; import org.andengine.util.adt.list.SmartList; import org.andengine.util.adt.transformation.Transformation; import org.andengine.util.algorithm.collision.EntityCollisionChecker; @@ -692,6 +693,13 @@ public void setColor(final Color pColor) { this.onUpdateColor(); } + @Override + public void setColor(final int pARGBPackedInt) { + ColorUtils.convertARGBPackedIntToColor(pARGBPackedInt, this.mColor); + + this.onUpdateColor(); + } + /** * @param pRed from 0.0f to 1.0f */ diff --git a/src/org/andengine/entity/IEntity.java b/src/org/andengine/entity/IEntity.java index 4ef8f47b5..4771248e7 100644 --- a/src/org/andengine/entity/IEntity.java +++ b/src/org/andengine/entity/IEntity.java @@ -167,6 +167,7 @@ public interface IEntity extends IDrawHandler, IUpdateHandler, IDisposable, ITou public void setBlue(final float pBlue); public void setAlpha(final float pAlpha); public void setColor(final Color pColor); + public void setColor(final int pARGBPackedInt); public void setColor(final float pRed, final float pGreen, final float pBlue); public void setColor(final float pRed, final float pGreen, final float pBlue, final float pAlpha); diff --git a/src/org/andengine/entity/particle/modifier/ColorParticleModifier.java b/src/org/andengine/entity/particle/modifier/ColorParticleModifier.java index 4a6c81852..0552b0515 100644 --- a/src/org/andengine/entity/particle/modifier/ColorParticleModifier.java +++ b/src/org/andengine/entity/particle/modifier/ColorParticleModifier.java @@ -2,6 +2,7 @@ import org.andengine.entity.IEntity; import org.andengine.entity.particle.Particle; +import org.andengine.util.adt.color.Color; import org.andengine.util.modifier.ease.EaseLinear; import org.andengine.util.modifier.ease.IEaseFunction; @@ -25,6 +26,14 @@ public class ColorParticleModifier extends BaseTripleValueSpa // Constructors // =========================================================== + public ColorParticleModifier(final float pFromTime, final float pToTime, final Color pFromColor, final Color pToColor) { + this(pFromTime, pToTime, pFromColor.getRed(), pToColor.getRed(), pFromColor.getGreen(), pToColor.getGreen(), pFromColor.getBlue(), pToColor.getBlue()); + } + + public ColorParticleModifier(final float pFromTime, final float pToTime, final Color pFromColor, final Color pToColor, final IEaseFunction pEaseFunction) { + super(pFromTime, pToTime, pFromColor.getRed(), pToColor.getRed(), pFromColor.getGreen(), pToColor.getGreen(), pFromColor.getBlue(), pToColor.getBlue(), pEaseFunction); + } + public ColorParticleModifier(final float pFromTime, final float pToTime, final float pFromRed, final float pToRed, final float pFromGreen, final float pToGreen, final float pFromBlue, final float pToBlue) { this(pFromTime, pToTime, pFromRed, pToRed, pFromGreen, pToGreen, pFromBlue, pToBlue, EaseLinear.getInstance()); } diff --git a/src/org/andengine/entity/scene/menu/item/decorator/BaseMenuItemDecorator.java b/src/org/andengine/entity/scene/menu/item/decorator/BaseMenuItemDecorator.java index d1cbcff3d..4c2b7ad85 100644 --- a/src/org/andengine/entity/scene/menu/item/decorator/BaseMenuItemDecorator.java +++ b/src/org/andengine/entity/scene/menu/item/decorator/BaseMenuItemDecorator.java @@ -204,6 +204,11 @@ public void setColor(final Color pColor) { this.mMenuItem.setColor(pColor); } + @Override + public void setColor(final int pARGBPackedInt) { + this.mMenuItem.setColor(pARGBPackedInt); + } + @Override public void setColor(final float pRed, final float pGreen, final float pBlue) { this.mMenuItem.setColor(pRed, pGreen, pBlue); diff --git a/src/org/andengine/util/adt/color/Color.java b/src/org/andengine/util/adt/color/Color.java index 9aee9d699..aa8f1db86 100644 --- a/src/org/andengine/util/adt/color/Color.java +++ b/src/org/andengine/util/adt/color/Color.java @@ -87,6 +87,10 @@ public class Color { // Constructors // =========================================================== + /* package */ Color() { + + } + public Color(final Color pColor) { this.set(pColor); } diff --git a/src/org/andengine/util/adt/color/ColorUtils.java b/src/org/andengine/util/adt/color/ColorUtils.java index 8ea036f84..72f0184ed 100644 --- a/src/org/andengine/util/adt/color/ColorUtils.java +++ b/src/org/andengine/util/adt/color/ColorUtils.java @@ -64,21 +64,37 @@ public static final Color convertHSVToColor(final float pHue, final float pSatur public static Color convertARGBPackedIntToColor(final int pARGBPackedInt) { + final Color color = new Color(); + + ColorUtils.convertARGBPackedIntToColor(pARGBPackedInt, color); + + return color; + } + + public static void convertARGBPackedIntToColor(final int pARGBPackedInt, final Color pColor) { final float alpha = ColorUtils.extractAlphaFromARGBPackedInt(pARGBPackedInt); final float red = ColorUtils.extractRedFromARGBPackedInt(pARGBPackedInt); final float green = ColorUtils.extractGreenFromARGBPackedInt(pARGBPackedInt); final float blue = ColorUtils.extractBlueFromARGBPackedInt(pARGBPackedInt); - return new Color(red, green, blue, alpha); + pColor.set(red, green, blue, alpha); } public static Color convertABGRPackedIntToColor(final int pABGRPackedInt) { + final Color color = new Color(); + + ColorUtils.convertABGRPackedIntToColor(pABGRPackedInt, color); + + return color; + } + + public static void convertABGRPackedIntToColor(final int pABGRPackedInt, final Color pColor) { final float alpha = ColorUtils.extractAlphaFromABGRPackedInt(pABGRPackedInt); final float blue = ColorUtils.extractBlueFromABGRPackedInt(pABGRPackedInt); final float green = ColorUtils.extractGreenFromABGRPackedInt(pABGRPackedInt); final float red = ColorUtils.extractRedFromABGRPackedInt(pABGRPackedInt); - return new Color(red, green, blue, alpha); + pColor.set(red, green, blue, alpha); }