Pravim neku jednostavnu igricu i tu koristim niti ali nista slozeno medjutim javlja mi se problem kada pozovem f-ju repaint() iz run() metode nece da je pozve ne javi gresku kompajlira i radi aplet ali jednostavno nece da odradi repaint a drugi problem je da vrednosti promenljivih y1 i y2 nece da promeni u metodi run() cak sam pokusao da prosledim argumente u drugu f-ju pa tamo da dodelim vrednosti ali ni to nije islo
Igrica se zasniva na tom da dole ima mali top kojim se za F1 treba pucati a sa streslicama pomerati levo i desno e sada kod mene kordinate y1 i y2 bi trebale da budu kordinate metka koje menjam medjutima javlja mi se gore navedeni problem a ja nikako ne mogu da uocim gresku sobzirmo da su promenljive y1 i y2 protected tipa po defoultu pa svi u jednoj kalasi imaju pravo na pristp i menjanje ali ovde to ne radi.
Napomena: ja aplete radim u javi 1.4 posto tamo ima poseban dio za aplete to mi je lakse tako da ne moram stalno da iz dosa kompajliram
Ako mognete samo da mi odgonetnete ovaj problem kako bi nastavio sa zapocetom igricom
/*
* Pucacina.java
*
* Created on Subota, 2006, Decembar 23, 20.09
*/
package Pucacina;
import java.awt.Event;
import java.awt.*;
import java.lang.*;
/**
*
* @author xx
*/
public class Pucacina extends java.applet.Applet implements Runnable {
/** Initialization method that will be called after the applet is loaded
* into the browser.
*/
int left=250,right=250, x=250;
public int y1,y2;
public void init() {
}
public void run(){
//System.out.print ("Pocinje RUN ");
int pomY1,pomY2;
for(int i=45;i>0;i--){
y1=i*10;
y2=(i-1)*10;
repaint();
System.out.println("y1="+y1+"y2="+y2);
try{
Thread.sleep(500);
}
catch(Exception e){}
}
}
public boolean keyDown(Event dogadjaj, int dirka){
//System.out.println("dirak="+dirka);
switch(dirka){
case Event.LEFT:
if(x>5)
x-=5;
break;
case Event.RIGHT:
if(x<480)
x+=5;
break;
case Event.F1:
Pucacina p = new Pucacina();
Thread t = new Thread(p);
t.start();
break;
}
// System.out.println("x="+x);
repaint();
return true;
}
public void paint (Graphics g){
this.setSize(500,500);
setBackground(Color.blue);
g.setColor(Color.black);
//g.drawRect(x,480,20,20);
g.fillRect(x,480,20,20);
g.fillRect(x+7,475,6,5);
g.setColor(Color.yellow);
System.out.println("Ovde se treba izcrtati: y1="+y1+"y2="+y2+" x="+x);
g.drawLine(x+8,y1,x+8,y2);
System.out.println("Crta");
}
}
HVALA