Es ist ziemlich lang und dilettantisch Code:
@SuppressLint("WrongCall")
public class Pohyb extends SurfaceView{
private Bitmap hrac, svet, klip, klip2, klip3, klip4, player, mrak, rak, ak, k, s,nuzky, nuzkyb, star, kamen, rock, scissors;
private Bitmap nu, nu2, nu3, nu4, nu5, nu6, nu7, nu8, nu9, nu10, nu11, nu12, nu13, nu14, nu15, nu16, nu17, nu18, nu19;
private Bitmap nuze1, nuze2, nuze3, nuze4, nuze5;
private Bitmap muc1, muc2, muc3, muc4, muc5, muc6, muc7, muc8, muc9;
private SurfaceHolder holder;
private Vlakno v;
private SoundPool zvuky;
private int zvukM;
private int msprite = 6;
MediaPlayer mediaPlayer;
int svetXSize, svetYSize;
private int xSpeed = 1, ySpeed = 1, zSpeed = 0;
private int xKoeficient = 3;
private int xSize = 180 ,ySize = (int) (xKoeficient*xSize);
private int realXSize = xSize, realYSize = ySize;
private int citacX, citacY;
private int x = 100;
private int y = 100;
private int start = 0;
private int cisloHrace = 1;
Random r = new Random();
private int xMrak = 100;
private int xRak = 200;
private int xAk = 300;
private int xK = 400;
private int rychlost;
private float rKoeficient = 6;
private int biggest, smallest;
private int p, l;
private int yStart;
public boolean hra = false;
public boolean akce = false;
public boolean O = false;
private boolean promnenne = true;
private boolean ohajo = false;
private boolean ohajo2 = true;
private boolean strih = false;
private boolean strihKontrola;
private boolean dotykKamene = false;
private boolean limbus;
private boolean akt;
private boolean zobrazeniNuzek;
private boolean rovnaSeDve;
private boolean Klara;
private boolean prepinacNuzek;
private boolean zakaz;
private boolean zivyMrtvy;
private boolean playOrDie;
private boolean napis;
private boolean potvrzeniStrihu;
private float dX, dY;
private float deltaX, deltaY;
private int xz, yz;
private int kasa;
private int xStar, yStar;
private int dieKatzeStitzi;
private int rollingStones;
private float vyska = 543;
private int ptakuvStredX;
private int ptakuvStredY;
private int rockY;
private int scissorsY;
private int napisPocet;
private int konecneKonec;
private String pad = "STONES:";
public Pohyb(Context context) {
super(context);
v = new Vlakno(this);
holder = getHolder();
holder.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
boolean konekt = true;
v.setRunning(false);
while (konekt){
try{
v.join();
konekt = false;
} catch (InterruptedException e) {
}
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
v.setRunning(true);
v.start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
}
}
)
;
mediaPlayer = MediaPlayer.create(context, R.raw.ptacek_audio_format_01);
mediaPlayer.start();
mediaPlayer.setLooping(true);
svet = BitmapFactory.decodeResource(getResources(), R.drawable.pozadi_01_960_540);
player = BitmapFactory.decodeResource(getResources(), R.drawable.ptak_02);
klip2 = BitmapFactory.decodeResource(getResources(), R.drawable.klip_02);
klip3 = BitmapFactory.decodeResource(getResources(), R.drawable.klip_03);
klip4 = BitmapFactory.decodeResource(getResources(), R.drawable.klip_04);
s = BitmapFactory.decodeResource(getResources(), R.drawable.an_strih_01);
star = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_01);
nu = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_01);
nu2 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_02);
nu3 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_03);
nu4 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_04);
nu5 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_05);
nu6 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_06);
nu7 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_07);
nu8 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_08);
nu9 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_09);
nu10 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_10);
nu11= BitmapFactory.decodeResource(getResources(), R.drawable.nuze_11);
nu12 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_12);
nu13 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_13);
nu14 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_14);
nu15 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_15);
nu16 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_16);
nu17 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_17);
nu18 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_18);
nu19 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_19);
nu19 = BitmapFactory.decodeResource(getResources(), R.drawable.nuze_19);
nuze1 = BitmapFactory.decodeResource(getResources(), R.drawable.nuzky_01);
nuze2 = BitmapFactory.decodeResource(getResources(), R.drawable.nuzky_02);
nuze3 = BitmapFactory.decodeResource(getResources(), R.drawable.nuzky_03);
nuze4 = BitmapFactory.decodeResource(getResources(), R.drawable.nuzky_04);
nuze5 = BitmapFactory.decodeResource(getResources(), R.drawable.nuzky_05);
muc1 = BitmapFactory.decodeResource(getResources(), R.drawable.a_01);
muc2 = BitmapFactory.decodeResource(getResources(), R.drawable.a_02);
muc3 = BitmapFactory.decodeResource(getResources(), R.drawable.a_03);
muc4 = BitmapFactory.decodeResource(getResources(), R.drawable.a_04);
muc5 = BitmapFactory.decodeResource(getResources(), R.drawable.a_05);
muc6 = BitmapFactory.decodeResource(getResources(), R.drawable.a_06);
muc7 = BitmapFactory.decodeResource(getResources(), R.drawable.a_07);
muc8 = BitmapFactory.decodeResource(getResources(), R.drawable.a_08);
muc9 = BitmapFactory.decodeResource(getResources(), R.drawable.a_09);
scissors = BitmapFactory.decodeResource(getResources(), R.drawable.kopie_01);
rock = BitmapFactory.decodeResource(getResources(), R.drawable.kamen_01);
hrac = player;
mediaPlayer = MediaPlayer.create(context, R.raw.ptacek_audio_format_01);
mediaPlayer.start();
mediaPlayer.setLooping(true);
klip = BitmapFactory.decodeResource(getResources(), R.drawable.klip_01);
}
Nuzky n = new Nuzky();
Paint paint = new Paint();
DecimalFormat zaokrouhli = new DecimalFormat("#.####");
Kamen kam = new Kamen();
Mrak m = new Mrak();
Mrak m2 = new Mrak();
Mrak m3 = new Mrak();
Mrak m4 = new Mrak();
/////////////////////////////////////////////////////////////
@SuppressLint("DrawAll ocation")
@Override
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(svet, 0, 0, null);
mrak = BitmapFactory.decodeResource(getResources(), R.drawable.mrak_01);
rak = mrak;
ak = mrak;
k = mrak;
nuzky = BitmapFactory.decodeResource(getResources(), R.drawable.nuzky_01);
kamen = BitmapFactory.decodeResource(getResources(), R.drawable.kamen_01);
prom();
if(O == true){
hrac = klip;
//setVse();
rKoeficient =(float) (((int)(realXSize - xSize) * 0.2) + 3);
rKoeficient += 0.01;
vyska = (float) (vyska - (0.01 * (rKoeficient*rKoeficient)));
//vyska = (int)(vyska);
Log.v("abc", 0.01 * rKoeficient +"");
nacitac(akce);
deltaX =((dX - (xSize/2)) - (x));
deltaY =((dY - ((3*xSize)/2)) - (y));
forllover();
if(hra == true){
}else if(hra == false){
}
dotykNuzek();
n.velikost((int)rKoeficient, limbus, strih, rovnaSeDve);
rovnaSeDve = n.rsd;
kam.velikost((int)rKoeficient);
m.rozmery((int)rKoeficient);
m.vetsimensi();
m2.rozmery((int)rKoeficient);
m2.vetsimensi();
m3.rozmery((int)rKoeficient);
m3.vetsimensi();
m4.rozmery((int)rKoeficient);
m4.vetsimensi();
dotykKamene();
nuzkyAnim();
//strihani();
mrak = Bitmap.createScaledBitmap(mrak, m.size, m.size, true);
rak = Bitmap.createScaledBitmap(rak, m2.size, m2.size, true);
ak = Bitmap.createScaledBitmap(ak, m3.size, m3.size, true);
k =Bitmap.createScaledBitmap(k, m4.size, m4.size, true);
nuzky = Bitmap.createScaledBitmap(nuzky,n.size, n.size,true);
kamen = Bitmap.createScaledBitmap(kamen,kam.size, kam.size,true);
canvas.drawBitmap(mrak, m.x, m.y, null);
canvas.drawBitmap(rak, m2.x, m2.y, null);
canvas.drawBitmap(ak, m3.x, m3.y, null);
canvas.drawBitmap(k, m4.x, m4.y, null);
canvas.drawBitmap(nuzky, n.x, n.y, null);
if(dotykKamene == false){
canvas.drawBitmap(kamen, kam.x, kam.y, null);
}else if(dotykKamene == true){
if(kam.size == 2){
dotykKamene = false;
}
}
canvas.save();
canvas.rotate(-90, 30 , svetYSize);
paint.setTextSize(40);
paint.setTypeface(Typeface.create("Arial",Typeface.BOLD));
paint.setColor(Color.RED);
canvas.drawText(pad + " " + (rollingStones + "") , 30, svetYSize, paint);
canvas.restore();
canvas.save();
canvas.rotate(-90, 60 , svetYSize);
paint.setTextSize(40);
paint.setTypeface(Typeface.create("Arial",Typeface.ITALIC));
paint.setColor(Color.RED);
canvas.drawText((Math.round(vyska) + "") + "m", 60, svetYSize, paint);
canvas.restore();
}else if(O == false){
}
hrac = Bitmap.createScaledBitmap(hrac, xSize, ySize, true);
canvas.drawBitmap(hrac, x, y, null);
if(zobrazeniNuzek == true){
if(scissorsY > svetYSize - (int)(realYSize/1.8)){
scissorsY -= 5;
}else{
canvas.save();
canvas.rotate(-90, x - realXSize/2, svetYSize - (int)(realYSize/1.8) + (int)(scissors.getHeight() * 0.8));
paint.setTextSize(60);
paint.setTypeface(Typeface.create("Arial",Typeface.BOLD));
paint.setColor(Color.BLACK);
canvas.drawText("SCISSORS", x - realXSize/2, svetYSize - (int)(realYSize/1.8) + (int)(scissors.getHeight() * 0.8), paint);
if(Klara == false && prepinacNuzek == true){
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Klara = true;
}
prepinacNuzek = true;
canvas.restore();
}
if(rockY < 10){
rockY += 5;
}else{
canvas.save();
canvas.rotate(-90, x + svetXSize/5 - x/4 , rock.getHeight() + 10);
paint.setTextSize(60);
paint.setTypeface(Typeface.create("Arial",Typeface.BOLD));
paint.setColor(Color.BLACK);
canvas.drawText("ROCK", x + svetXSize/5 - x/4, rock.getHeight() + 10, paint);
canvas.restore();
}
canvas.drawBitmap(scissors, x - realXSize/2, scissorsY, null);
canvas.drawBitmap(rock, x + svetXSize/5, rockY, null);
ptakuvStredX = svetXSize/2 ;
ptakuvStredY = svetYSize/2 ;
dX = ptakuvStredX+(xSize/4);
dY = ptakuvStredY;
deltaX =((dX - (xSize/2)) - (x));
deltaY =((dY - ((3*xSize)/2)) - (y));
forllover();
rollingStones = 0;
canvas.save();
canvas.rotate(-90, x - x/4 , y + (int)(ySize * 0.6));
paint.setTextSize(60);
paint.setColor(Color.BLACK);
paint.setTypeface(Typeface.create("Arial",Typeface.BOLD));
if(xz == 0 && yz == 0){
canvas.drawText("PAPER", x - x/4, y +(int)(ySize * 0.6), paint);
}
canvas.restore();
if(Klara == true){
canvas.save();
canvas.rotate(-90, 100, 200); // trim
paint.setTextSize(120);
paint.setColor(Color.BLACK);
paint.setTypeface(Typeface.create("Arial",Typeface.BOLD));
canvas.drawText("GO", 100, 200, paint);
zakaz = false;
canvas.restore();
}
}
if(ohajo2 == true){
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
carodejnice();
canvas.drawBitmap(star,(int)(svetXSize*-0.25), yStart, null);
}else if(ohajo2 == false && limbus == false){
if(yStart< svetYSize){
yStart += 10;
promeny();
canvas.drawBitmap(star,(int)(svetXSize*-0.25), yStart, null);
}
}
if(playOrDie == true){
playOrDie();
}
if(vyska <= 0){
canvas.drawColor(Color.argb(255, 0, 0, 0));
konecneKonec += 1;
if(konecneKonec > 30 && konecneKonec < 60){
paint.setARGB(200, 254, 0, 0);
paint.setTextAlign(Align.CENTER);
paint.setTextSize(80);
canvas.rotate(-90, canvas.getWidth()/2, canvas.getHeight()/2);
canvas.drawText("2", canvas.getWidth()/2, canvas.getHeight()/2, paint);
}else if(konecneKonec > 60 && konecneKonec < 100){
paint.setARGB(200, 254, 0, 0);
paint.setTextAlign(Align.CENTER);
paint.setTextSize(80);
canvas.rotate(-90, canvas.getWidth()/2, canvas.getHeight()/2);
canvas.drawText("1", canvas.getWidth()/2, canvas.getHeight()/2, paint);
}else if(konecneKonec > 100 && konecneKonec < 200){
paint.setARGB(200, 254, 0, 0);
paint.setTextAlign(Align.CENTER);
paint.setTextSize(80);
canvas.rotate(-90, canvas.getWidth()/2, canvas.getHeight()/2);
canvas.drawText("TO BE CONTINUED", canvas.getWidth()/2, canvas.getHeight()/2, paint);
}else if(konecneKonec == 250){
android.os.Process.killProcess(android.os.Process.myPid());
}
}
///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
}
public boolean onTouchEvent(MotionEvent dej){
switch(dej.getAction()){
case MotionEvent.ACTION_DOWN:
dX = (dej.getX());
dY = (dej.getY());
ohajo = true;
hra = true;
if(hra == false){
}else if(hra == true){
}
if(O == true){
akce = true;
}
return true;
}
switch(dej.getAction()){
case MotionEvent.ACTION_UP:
hra = false;
akce = false;
carodejnice();
if(limbus == true && zakaz != true){
rockY = - rock.getHeight();
scissorsY = svetYSize;
prepinacNuzek = false;
Klara = false;
nahoda(rollingStones, n.pocetStrihu);
playOrDie = true;
//O = true;
//zobrazeniNuzek = false;
//limbus = false;
}
return true;
}
invalidate();
return true;
}
public void nacitac(boolean upAndDown){
if(upAndDown == true && xSize > smallest){
xSize -= 2;
ySize -= 3 * 2;
x += 1;
y += 3;
}else if(upAndDown == false && xSize < biggest){
xSize += 2;
ySize += 3 * 2;
x -= 1;
y -= 3;
}
}
public void promeny(){
start += 1;
if(start > 20){
start = 0;
}
if(start == 5){
hrac = klip;
}else if(start == 10){
hrac = klip2;
}else if(start == 15){
hrac = klip3;
}else if(start == 20){
hrac = klip4;
}
}
public void forllover(){
xz = (int) ((deltaX/120) * rKoeficient);
yz = (int) ((deltaY/200) * rKoeficient);
x += xz;
y += yz;
}
public void prom(){
if(promnenne == true){
svetXSize = getWidth();
svetYSize = getHeight();
xSize = svetXSize/8 * 3;
ySize = (int) (xKoeficient*xSize);
realXSize = xSize;
realYSize = ySize;
x = svetXSize/2 - (xSize/2);
y = svetYSize/2 - (ySize/2);
p = svetXSize/2;
l = svetYSize/2;
yStart = (int)(svetYSize/3);
xMrak = (svetXSize/4) - (svetXSize/8);
xRak = 2*(svetXSize/4) - (svetXSize/8);
xAk = 3*(svetXSize/4) - (svetXSize/8);
xK = 4*(svetXSize/4) - (svetXSize/8) ;
ptakuvStredX = svetXSize/2 - xSize/2;
ptakuvStredY = svetYSize/2 - ySize/2;
smallest = (svetXSize/6) ;
biggest = svetXSize/8 * 3;
rock =Bitmap.createScaledBitmap(rock, realXSize, realXSize, true);
scissors = k =Bitmap.createScaledBitmap(scissors,2*realXSize, 2*realXSize, true);
potvrzeniStrihu = false;
rockY = - rock.getHeight();
scissorsY = svetYSize;
n.getit(svetXSize, svetYSize);
m.zisk(svetXSize, svetYSize);
m2.zisk(svetXSize, svetYSize);
m3.zisk(svetXSize, svetYSize);
m4.zisk(svetXSize, svetYSize);
kam.getit(svetXSize, svetYSize);
promnenne = false;
}
}
public void carodejnice(){
if(ohajo == true && ohajo2 == true){
kasa +=1;
switch(kasa){
case 1: star = nu;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
break;
case 2: star = nu3;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
break;
case 3: star = nu15;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip;
promeny();
break;
case 4: star = nu9;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip2;
break;
case 5: star = nu14;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip3;
break;
case 6: star = nu19;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip4;
break;
case 7: star = nu7;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
break;
case 8: star = nu6;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip2;
break;
case 9: star = nu5;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip3;
break;
case 10: star = nu4;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip4;
break;
case 11: star = nu3;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip2;
break;
case 12: star = nu2;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip3;
break;
case 13: star = nu;
star = Bitmap.createScaledBitmap(star, (int)(1.5*svetXSize), (int) (1.5*svetXSize), true);
hrac = klip;
kasa = 0;
O = true;
ohajo = false;
ohajo2 = false;
break;
}
}
}
public void nuzkyAnim(){
if(n.size == 2){
strihKontrola = false;
}
if(n.size > 4*xSize && strihKontrola == false){
strih = true;
strihKontrola = true;
}
if(strih == true){
dieKatzeStitzi += 1;
switch(dieKatzeStitzi){
case 1: nuzky = nuze1;
break;
case 2: nuzky = nuze2;
break;
case 3: nuzky = nuze3;
break;
case 4: nuzky = nuze4;
break;
case 5: nuzky = nuze5;
strihani();
break;
case 6: nuzky = nuze4;
break;
case 7: nuzky = nuze3;
break;
case 8: nuzky = nuze2;
break;
case 9: nuzky = nuze1;
strih = false;
dieKatzeStitzi = 0;
rovnaSeDve = true;
potvrzeniStrihu = true;
break;
}
}
}
public void dotykNuzek(){
int vrsekN = n.y + (int)(0.2 * n.size);
int spodekN = n.y + (int)(0.8 * n.size);
int pravoN = n.x + (int)(n.size * 0.25);
int levoN = n.x + (int)(n.size * 0.75);
int yT = y + (int)(ySize * 0.2);
int yD = y + (int)(ySize * 0.8);
if((x) > pravoN && (x) < levoN && yT > vrsekN && yT < spodekN){
limbus = true;
}
if((x+xSize) > pravoN && (x+xSize) < levoN && yT > vrsekN && yT < spodekN){
limbus = true;
}
if((x) > pravoN && (x) < levoN && yD > vrsekN && yD < spodekN){
limbus = true;
}
if((x+xSize) > pravoN && (x+xSize) < levoN && yD > vrsekN && yD < spodekN){
limbus = true;
}
}
public void dotykKamene(){
if(x > kam.x && x < (kam.x + kam.size) && (y + (ySize/2)) > kam.y && (y + (ySize/2)) < (kam.y + kam.size)){
if(dotykKamene == false){
rollingStones += 1;
dotykKamene = true;
}
}
}
public void strihani(){
if(limbus == true){
zakaz = true;
zobrazeniNuzek = true;
n.size = 2;
strihKontrola = false;
O = false;
potvrzeniStrihu = false;
}
}
public void nahoda(int kameny, int nuzky){
Random ran = new Random();
if(kameny >= nuzky/2){
zivyMrtvy = true;
}else{
zivyMrtvy = false;
}
}
public void playOrDie(){
if(zivyMrtvy == true){
n.pocetStrihu = 0;
O = true;
zobrazeniNuzek = false;
limbus = false;
playOrDie = false;
}else if(zivyMrtvy == false){
zobrazeniNuzek = false;
napisPocet += 2;
switch(napisPocet){
case 10: hrac = muc1;
break;
case 20: hrac = muc2;
break;
case 30: hrac = muc3;
break;
case 40: hrac = muc4;
break;
case 50: hrac = muc5;
break;
case 60: hrac = muc6;
break;
case 70: hrac = muc7;
break;
case 80: hrac = muc8;
break;
case 90: hrac = muc9;
napis = false;
break;
case 180: n.pocetStrihu = 0;
prom();
hra = false;
akce = false;
O = false;
promnenne = true;
ohajo = false;
ohajo2 = true;
strih = false;
strihKontrola = false;
dotykKamene = false;
limbus = false;
akt = false;
zobrazeniNuzek = false;
rovnaSeDve = false;
Klara = false;
prepinacNuzek = false;
zakaz = false;
zivyMrtvy = false;
hrac = player;
vyska = 543;
napisPocet = 0;
playOrDie = false;
potvrzeniStrihu = false;
break;
}
}
}
}
Bitte erläutern im Detail, was bedeutet „das Spiel nicht gestartet wurde“. Meinst du, dass du abgestürzt bist? Wenn dies der Fall ist, untersuchen Sie LogCat, um zu sehen, was falsch gelaufen ist. – CommonsWare
Welche Probleme hatten Sie, die erforderlich waren? LargeHeap = true? –
Also habe ich die Frage bearbeitet. Weißt du wo das Problem ist? –