Hallo Greenfootler
Ich habe vorhin angefangen mit greenfoot zu arbeiten und habe eine figur erstellt die sich via pfeiltasten bewegen kann .. läuft soweit .. anschließend habe ich wände erstellt (160x32) die vom Spieler nicht berührt werden dürfen .. wenn ich mich auf die wand zu bewege komme ich zur hälfte in die wand rein und wenn ich "um das rechteck" herum fahre lande ich nach einer zeit innerhalb des kastens oder ich kann ihn je nach winkel ganz überfahren ... ich finde einfach keinen weg das ganze zu lösen (ich bin hier neu genau so wie in greenfoot wäre wirklich nett wenn mir jemand helfen könnte oder mich mal bei skype adden könnte um mit mir meine frage zu klären )
Skype : Littlejohn-derzwerg
Code :
public class Fahrer extends Actor
{
public void act()
{
bewegen();
}
private void bewegen(){
int x = getX(); // X-Koordinate in int x speichern
int y = getY(); // Y-Koordinate in int y speichern
if(Greenfoot.isKeyDown("right") ){
setRotation(90); // Rotiere Bild
if(getOneObjectInFront(Block_lang.class)==null)
setLocation (x + 2, y); //SetLocation setzt den neuen Standort fest
}
else if(Greenfoot.isKeyDown("left")){
setRotation(270);
if(getOneObjectInFront(Block_lang.class)==null)
setLocation(x - 2, y);
}
else if(Greenfoot.isKeyDown("up")){
setRotation(0);
if(getOneObjectInFront(Block_lang.class)==null)
setLocation(x, y - 2);
}
else if(Greenfoot.isKeyDown("down")){
setRotation(180);
if(getOneObjectInFront(Block_lang.class)==null)
setLocation(x, y + 2);
}
}
private Actor getOneObjectInFront(Class Block_hoch)
{
GreenfootImage myImage = getImage();
int distanceToFront = myImage.getWidth();
int xOffset =(int) Math.ceil(distanceToFront*Math.cos(Math.toRadians(getRotation())));
int yOffset =(int) Math.ceil(distanceToFront*Math.sin(Math.toRadians(getRotation())));
return (getOneObjectAtOffset(xOffset, yOffset, Block_hoch));
}
}

