Hey, der folgende Code ist noch nicht ganz so wie er werden sollte, aber man sieht glaub ich ihn der Art was ich damit erreichen wollte.
( ex-(test.getWidth()/2)-ax = x-Position des Balles
ey-(test.getHeight()/2)-ay = y-Position des Balles )
Allerdings bin ich mit dem Ergebnis nicht zufrieden, ich hätte gerne das der Ball aus dem Teleportgegenstück so wieder austritt als würde er gerade durchlaufen, also:
und nicht nur an eine der 4 Ecken wieder austritt und weiterläuft
Vielen dank für die Hilfe
Und wenn ihr wisst wie man das schöner schreiben kann (weil ich glaube das ich da ziemlich viel unnötig/unschön geschrieben habe wäre das auch sehr nett )
Lg RobJava
( ex-(test.getWidth()/2)-ax = x-Position des Balles
ey-(test.getHeight()/2)-ay = y-Position des Balles )
Allerdings bin ich mit dem Ergebnis nicht zufrieden, ich hätte gerne das der Ball aus dem Teleportgegenstück so wieder austritt als würde er gerade durchlaufen, also:
Code:
\
\
\
\
( ) ( )
\
\
und nicht nur an eine der 4 Ecken wieder austritt und weiterläuft
Java:
public class Teleport {
public float ex;
public float ey;
public float ax;
public float ay;
public void tele(float ey,float ex,float ax,float ay,float telex1,
float teley1, float telex2,float teley2,Bitmap teleport,Bitmap test,Canvas canvas,float scx, float scy){
canvas.drawBitmap(teleport,telex1, teley1, null);
canvas.drawBitmap(teleport,telex2, teley2, null);
if(ex-(test.getWidth()/2)-ax+test.getWidth()>= telex1
&& telex1+teleport.getWidth() >=ex-(test.getWidth()/2)-ax
&& ey-(test.getHeight()/2)-ay+test.getHeight()>=teley1
&& ey-(test.getHeight()/2)-ay<=teley1+teleport.getWidth()){
if(scx<=0 && scy<=0 ){
ex=telex2+teleport.getWidth();ax=0;
ey=teley2+teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
if(scx>=0 && scy<=0 ){
ex=telex2-teleport.getWidth();ax=0;
ey=teley2+teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
if(scx>=0 && scy>=0 ){
ex=telex2+teleport.getWidth();ax=0;
ey=teley2-teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
if(scx>=0 && scy>=0 ){
ex=telex2-teleport.getWidth();ax=0;
ey=teley2-teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
}
// leve2 tele1
if(ex-(test.getWidth()/2)-ax+test.getWidth()>= telex2
&& telex2+teleport.getWidth() >=ex-(test.getWidth()/2)-ax
&& ey-(test.getHeight()/2)-ay+test.getHeight()>=teley2
&& ey-(test.getHeight()/2)-ay<=teley2+teleport.getWidth()){
if(scx<=0 && scy<=0 ){
ex=telex1+teleport.getWidth();ax=0;
ey=teley1+teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
if(scx>=0 && scy<=0 ){
ex=telex1-teleport.getWidth();ax=0;
ey=teley1+teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
if(scx>=0 && scy>=0 ){
ex=telex1+teleport.getWidth();ax=0;
ey=teley1-teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
if(scx>=0 && scy<=0 ){
ex=telex1-teleport.getWidth();ax=0;
ey=teley1-teleport.getHeight();ay=0;
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
}
this.ex=ex;
this.ey=ey;
this.ax=ax;
this.ay=ay;
return;
}
public float gebeex(){
return ex;
}
public float gebeey(){
return ey;
}
public float gebeax(){
return ax;
}
public float gebeay(){
return ay;
}
}
Vielen dank für die Hilfe
Und wenn ihr wisst wie man das schöner schreiben kann (weil ich glaube das ich da ziemlich viel unnötig/unschön geschrieben habe wäre das auch sehr nett )
Lg RobJava
Zuletzt bearbeitet: