I'm trying to make a 2D game that moves actors around to look 3D but when I try and compile to test bugs I get this error: "possible lossy conversion converting double to int" or something like that. I just don't know how to get around this.
Code (I put "//error HERE" next to where I got the errors):
I'd love some help from anyone who knows how to fix this issue :)
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* A tree in the world.
*
* @author (Wasupmacuz)
* @version ()
*/
public class Tree extends ThreeD
{
private double worldX;
private double worldY;
private double worldZ;
private double distance;
private double distanceX;
private double distanceY;
private double perspective;
private int screenX;
private int screenY;
private int actorsShouldBeDistance=100;
public Tree()
{
actorsShouldBeDistance=100;
worldX=Greenfoot.getRandomNumber(800)-400;
worldY=Greenfoot.getRandomNumber(800)-400;
worldZ=Greenfoot.getRandomNumber(800)-400;
}
/**
* make sure the tree in front of the player when needed
*/
public void act()
{
if(getY()>215)
{
getWorld().setPaintOrder(Crosshair.class,AmmoDisplay.class,Tree.class);
}
else
{
getWorld().setPaintOrder(AmmoDisplay.class,Player.class);
}
}
/**
* makes things look 3D-ish
*/
public void cameraUpdate()
{
distanceX=worldX-cameraX;
distanceY=worldY-cameraY;
distance=(cameraYX*distanceX)+(cameraYY*distanceY);
if(distance<0.1)
{
getImage().setTransparency(0);
}
else
{
perspective=actorsShouldBeDistance/distance;
screenX=((cameraXX*distanceX)+(cameraXY+distanceY))*(perspective/cameraClipping); //error HERE
if(screenX<600)
{
if(screenX>0)
{
screenY=worldZ*perspective; //error HERE
if(screenY<400)
{
if(screenY>0)
{
setLocation(screenX,screenY);
setSize(100*perspective); //error HERE
getImage().setTransparency(255);
}
}
}
}
}
}
/**
* Change the size of the image based on a percentage
*/
public void setSize(int percent)
{
GreenfootImage image=new GreenfootImage("tree.png");
setImage(image);
getImage().scale(getImage().getWidth()*percent/100, getImage().getHeight()*percent/100);
}
}


