Divida images qse repetem

galera criei uma classe contendo gráficos das imagens outra classe q vai sortear a imagem e outra classe q vai receber a imagem na tela são 4 quadros o random ta sorteando 4 int diferentes ate ae ok, mas minhas imagens tão saindo repetidas nos 4 quadros…
============ classe dos gráficos =================

package Pack.Graphics;

public class CartasGraficos  {

public BufferedImage bkImage;

public static int posi_x =20;
public static int posi_y = 15;
public static int width=295;
public static int height=310;
public static ImageIcon [] iconeDaImagem;
public static ImageIcon imageIconPlayer;

	public CartasGraficos() {

		iconeDaImagem = new ImageIcon[5];
		imageIconPlayer = new ImageIcon();
		
			iconeDaImagem[0] =new ImageIcon(getClass().getResource("/c_0.gif"));
			iconeDaImagem[1] =new ImageIcon(getClass().getResource("/c1_Fire Dragon.gif"));
			iconeDaImagem[2] =new ImageIcon(getClass().getResource("/c2_Ace Dragon.gif"));
			iconeDaImagem[3] =new ImageIcon(getClass().getResource("/c3_Guerreiro Sicles.gif"));
			iconeDaImagem[4] =new ImageIcon(getClass().getResource("/c4_Mago do Caos.gif"));
				
	}	
	public void render(Graphics g) {
		
	}
}

================== classe do sorteio =======================

package Hbilidades;
import java.util.Random;
import Pack.Graphics.CartasGraficos;

public class Mecanica extends CartasGraficos{

	public static String nomeDaCarta;
	public static int vida;
	public static int vidaAtual;
	public static int level;
	
	public Random  random = new Random();
	public int sortearCartas;
	
	public Mecanica() {
		sortearCartas =random.nextInt(4)+1;
		
		sorteio();
	}
	
	public void sorteio() {
		
		sortearCartas =random.nextInt(4)+1;
		imageIconPlayer=iconeDaImagem[sortearCartas];
		
		System.out.println("r: "+sortearCartas);
		if(sortearCartas==1) {
			
			this.nomeDaCarta="Fyre_Dragon";
			this.vida= 500;
			this.vidaAtual = vida;
				
		}
		else if(sortearCartas==2) {
			
			nomeDaCarta="Ace_Dragon";
			this.vida= 500;
			this.vidaAtual = vida;
			
		}
		else if(sortearCartas==3) {
			
			nomeDaCarta="Guerreiro Sicles";
			this.vida= 300;
			this.vidaAtual = vida;
			
		}else if(sortearCartas==4) {
			
			nomeDaCarta="Mago do Caos";
			this.vida= 350;
			this.vidaAtual = vida;
			
		}
		
		//System.out.println("nome: "+ nomeDaCarta);
		//System.out.println("Vida: "+ vida+"/"+vidaAtual);
		
	}

================== primeira das 4 clases q vai exibir a imagem ==========


package Pack.Graphics;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import Hbilidades.Mecanica;

public class Player_1  {
	
public static Mecanica c1;
private int sortearC;

public Player_1(){

	c1 = new Mecanica();

}

	public void render(Graphics g) {
		
		Image image1= c1.imageIconPlayer.getImage();
		g.drawImage(image1, c1.posi_x, c1.posi_y, c1.width*2/3, c1.height*2/3, null);
		
		g.setColor(Color.WHITE);
		g.drawString("OK", c1.posi_x, c1.posi_y+20);
		
	}

}

====segunda clase q exibo outra imagem (porem ta repetindo a mesma imagem )=======

package Pack.Graphics;

import java.awt.Graphics;
import java.awt.Image;
import java.util.Random;

import javax.swing.ImageIcon;

import Hbilidades.Mecanica;

public class Player_2 {

	public static Mecanica c2;

public Player_2(){

	c2 = new Mecanica();
	

}
	
	public void render(Graphics g) {
		
		Image image2= c2.imageIconPlayer.getImage();
		g.drawImage(image2, 330, c2.posi_y, c2.width*2/3, c2.height*2/3, null);
		
	}

}

O seu atributo imageIconPlayer é estático, então vai ser o mesmo para todos os objetos que você criar e se alterar em um objeto, vai alterar em todos.
Lembre-se que o que é static pertence à classe e não aos objetos da classe.

Outra coisa, porque Mecanica extends CartasGraficos?
A mecânica é uma coisa e gráficos são outra, se você faz assim, está dizendo que a mecânica são os gráficos, não faz o menor sentido.

1 curtida

aa tendi, e a nomenclatura e q ainda estava por definir mas eu mudei em x de mudar o código todo da classe so troquei a nomenclatura, Mas q alegria me sinto como tivesse ganho um ps 5 so por q cheguei bem perto do que queria, minha semântica que está um :poop: mas melhoro so sou auto de data mas vcs me ajudam muito jaja to pagando as aulas^^