発射している銃の位置から弾丸を発射しようとしています。したがって、マウスを動かすと、銃はある方向に動きます。弾丸が銃の向いている方向に移動するようにします。だから、どの方向にも発砲できる。
turntowards()
メソッドを使ってみました。しかし、弾丸は、画面が回転しているにもかかわらず、画面の右側にしか発射されません。
助言がありますか?
私は文字クラスを持っています:
import greenfoot.*;
public class Gun extends Actor
{
private int speed;
public void act()
{
// Add your action code here.
MouseInfo mouse = Greenfoot.getMouseInfo();
if (mouse !=null)
setRotation((int)(180*Math.atan2(mouse.getY()-getY(),mouse.getX()-getX())/Math.PI));
move(speed);
if(Greenfoot.mouseClicked(null))
{
getWorld().addObject(new bullet(getRotation()),getX(),getY());
turnTowards(mouse.getX(), mouse.getY());
}
}
}
私は弾丸クラスを持っています:
import greenfoot.*;
public class bullet extends Actor
{
private int direction;
public void act()
{
setLocation(getX()+5,getY());
}
public bullet(int dir)
{
this.direction=dir;
}
}
そして、私は悪役クラスを持っています:
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class balloon here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class baddie extends Actor
{
public void act()
{
setLocation(getX(), getY()-1);
}
}