我試圖從發射槍的位置發射子彈。所以當鼠標移動時,槍向一個方向移動。我希望子彈沿着槍指向的方向移動。所以我可以在任何方向開火。從演員到老鼠的軌跡旋轉如何從演員到老鼠的軌跡旋轉
我試過使用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);
}
}
順便提一下,記得Java標準的類名稱有大寫首字母。顯然在句法上可以接受,但有時會讓事情變得混亂。 –