Hallo block_,
eine richtige Fehlermeldung bekomme ich leider nicht Es steht nur da, das der Prozess beendet wird.
meine Kreis-Klasse sieht wie folgt aus:
public class Circle extends View {
private final float x;
private final float y;
private final int r;
private static final int WININDEX = 4;
private static int tmpindex = 0;
private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
public Circle(Context context, int width, int hight, int color) {
super(context);
mPaint.setColor(color);
this.x = width/2;
this.y = hight/2;
this.r = (int) ((Math.min(width, hight)*0.8)/2);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(x, y, r, mPaint);
}
public void chanceColor(int color){
mPaint.setColor(color);
}
public boolean isWinColor(){
return tmpindex == WININDEX;
}
// Klassenmethoden:
// gibt eine zufällige Farbe zurück
public static int getColor(){
int arrColor[] = new int[10];
arrColor[0] = Color.rgb(47,79,79);
arrColor[1] = Color.rgb(0,0,128);
arrColor[2] = Color.rgb(0,191,255);
arrColor[3] = Color.rgb(0,255,255);
arrColor[4] = Color.rgb(0,100,0); // win
arrColor[5] = Color.rgb(255,255,0);
arrColor[6] = Color.rgb(184,134,11);
arrColor[7] = Color.rgb(178,34,34);
arrColor[8] = Color.rgb(255,69,0);
arrColor[9] = Color.rgb(255,20,147);
tmpindex = (int)(Math.random()*arrColor.length);
return arrColor[tmpindex];
}
}
Alles anzeigen
Im Spiel wird der Kreis wie folgt erstellt:
gameCircle = new Circle(this,
display.getWidth(),
display.getHeight(),
Circle.getColor());
Nun möchte ich gern im Thread die Farbe wechseln:
gameCircle.chanceColor(Circle.getColor());
gameCircle.refreshDrawableState();
getColor sollte natürlich nicht von außen aufrufbar sein, sondern nur private in der Kreis-Klasse selbst!