rendered paste bodyimport java.awt.*;
import javax.swing.*;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
public class c_char extends JPanel implements KeyListener,Runnable {
private c_map map;
private c_main a;
public int x=1,y=1;
private Image char_image;
private MediaTracker tracker;
private boolean up = false;
private boolean down = false;
private boolean right = false;
private boolean left = false;
public int mangija_count = 0;
public String nickname;
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
left = true;
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
right = true;
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
down = true;
}
if (e.getKeyCode() == KeyEvent.VK_UP) {
up = true;
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
left = false;
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
right = false;
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
down = false;
}
if (e.getKeyCode() == KeyEvent.VK_UP) {
up = false;
}
}
public void keyTyped(KeyEvent e) { }
public c_char gamer[] = new c_char[20]; // 20 playerit
public void joonista_mangija(String nimik, int x,int y,int positsion) {
gamer[positsion] = new c_char();
Toolkit toolkit = Toolkit.getDefaultToolkit();
gamer[positsion].char_image = toolkit.getImage("sprite.gif");
gamer[positsion].x = x;
gamer[positsion].y = x;
gamer[positsion].nickname = nimik;
tracker.addImage(gamer[positsion].char_image,positsion);
}
public c_char() {
tracker = new MediaTracker(this);
joonista_mangija("Alex",1,1,0);
joonista_mangija("Barbara",1,1,1);
try {
tracker.waitForAll();
} catch(Exception keemia) { System.out.println("problem "+keemia); }
map = new c_map();
addKeyListener(this);
setFocusable(true);
Thread th = new Thread(this);
th.start();
// alustame threadi mis kontrollib playerit koguaeg..
}
public synchronized void paintComponent(Graphics g) {
super.paintComponent(g); // puhastame kõik
map.paintComponent(g); // laeme uuesti mapi millegipärast :\
int xp = (map.ruudu_korgus * x);
int yp = (map.ruudu_korgus * y);
g.setColor(Color.pink);
g.drawString("Alex",xp,yp-5);
// g.drawImage(char_image, xp, yp,this);
}
public boolean liigu_funktsioon_(int dx, int dy) {
int nx = x + dx;
int ny = y + dy;
if (validLocation(nx, ny)) { // Vaatame ega me keelatud alale ei lähe
x = nx;
y = ny;
repaint();
return true;
}
return false;
}
public boolean validLocation(int nx, int ny) {
if (map.struktuur[nx][ny] == map.blokeeritud) {
return false; }
return true;
}
/* Threadi koht */
public void run() {
while(true) {
try {
repaint();
int x1=0,y1=0;
Thread.sleep(100);
if (left) {
x1 -= 1;
}
if (right) {
x1 += 1;
}
if (up) {
y1 -= 1;
}
if (down) {
y1 += 1;
}
if ((x1 != 0) || (y1 != 0)) {
liigu_funktsioon_(x1,y1); // Üritame liigutada
}
} catch(Exception e) { System.out.println("problem "+e); }
}
}
}