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);
}