Я пытаюсь переместить функцию из основного класса в подкласс в маленькой игре, которую я делаю. Я скопировал и вставил функцию из основного класса в подкласс и по какой-то причине, я получаю эту ошибку:Получение странной ошибки при попытке нарисовать изображение в java?
no suitable method found for drawImage(java.awt.Image,int,int,pony)
method java.awt.Graphics2D.drawImage(java.awt.BufferedImage, java.awt.BufferedImageOp, int, int) is not applicable; (actual argument java.awt.Image cannot be converted to java.awt.BufferedImage by method invocation conversion);
Это функция:
public void explode(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
int i=0;
float angle = 0.03f;
float PI = 3.14159f;
int x2,y2;
int r=40;
while(r<200)
{
while (angle < 2 * PI)
{
x2 = (int)this.x + (int) (Math.cos(angle)*r);
y2 = (int)this.y + (int) (Math.sin(angle)*r);
g2d.drawImage(sparkles[i].getImage(), x2, y2,this);
angle+=0.1;
i+=1;
}
i=0;
angle=0.03f;
r+=5;
}
}
Вот вызов функции в главном классе:
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
for(int i=0;i<curPonies;i++)
{
if(ponies[i].colliding())
{
ponies[i].explode(g);
}
}
}
Если переместить функцию взрываются в главном классе он прекрасно работает, но если я пытаюсь вызвать его из другого класса я получаю ошибку выше. Если кто-нибудь скажет мне, почему это происходит, я бы очень признателен за помощь.
спасибо!
'java.awt.Graphics2D.drawImage (java.awt.BufferedImage, java.awt.BufferedImageOp, Int, Int)' Где он спрашивает враг параметр BufferedImageOp (второй параметр), вы положить Int. Для последнего pareter, нуждающегося в int, вы ставите объект ('this'). В нем также говорится: фактический аргумент java.awt.Image не может быть преобразован в java.awt.BufferedImage путем преобразования вызова метода, то есть изображение, которое вы не можете преобразовать в BufferedImage. Если вы знаете, что это BufferedImage, бросьте его. '(BufferedImage) getImage()' –
Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный и проверенный пример). –