在另一张图片上添加图片?

时间:2011-04-08 07:27:05

标签: java image

我试图制作一个回合制游戏,到目前为止进展顺利,但是现在我来到了我希望能够移动单位的部分。我使用图像来确定不同类型的地形,并使用另一个图像来显示一个单位,但我不能让单位在地形上出来,它只会在地形下弹出。好像我是第一个碰到这个问题的人,所以我是以错误的方式去做的吗?

带有地形图像的图块:

    protected void paintComponent(Graphics paintIt) //paints this sexy-hex
{
    super.paintComponent(paintIt);  //not sure if we need this? lol
    paintIt.setColor(is);   //sets the color (later not even used, we need pics and shit)
    //paintIt.fillPolygon(hex); //fills the hexagon with the desired color, will not be used later on either
    if(isExplored)
        paintIt.drawImage(image, 0, 0, null);

    else
        paintIt.fillPolygon(hex); // I want to paint it black


    if (hoover) //are we pointing at this cell?
    {
        paintIt.setColor(Color.WHITE);  //we want the nice line around the cell to be white
        Graphics2D g2 = (Graphics2D) paintIt;   
        g2.setStroke(new BasicStroke(3));   //and 3 pixels wide (we are allowed to change it, supposedly in proportion to "rad"
        g2.drawPolygon(hex);    //draws the line around the hexagon
    }       
}

单位:

    protected void paintComponent(Graphics paintIt)
{
    if(!selected)
    {
        paintIt.drawImage(image, 0, 0, null);
        paintIt.drawImage(image2,0,0,null);
        /*
        super.paintComponent(paintIt);
        paintIt.setColor(Color.BLACK);
        paintIt.drawPolygon(shape); */  
    }
    else
    {
        super.paintComponent(paintIt);
        paintIt.setColor(Color.RED);
        paintIt.drawPolygon(shape); 
    }
}

很抱歉这些评论,并且对于一些甚至没有使用的代码感到抱歉,只是认为最好在项目完成之前使用它,如果我们需要回到某个地方。 单位图像小于地形,因此适合。我在没有画出地形的情况下进行了测试,所以我知道单位是在它下面画的。 如果还有代码,你需要知道我在做什么,告诉我,只是认为这是相关的部分。 编辑#2 tile是从另一个扩展JFrame的类创建的类。 unit-class是从该JFrame类创建的,但是存储在tile中。 tile和unit都是JComponents。

1 个答案:

答案 0 :(得分:1)

修复了,我不得不在地形级中绘制单位图像,使其显示在顶部。由于我已经将该单元存储在课堂中,我不知道为什么我从一开始就没有这样做。 谢谢anyhoo< 3