![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 13.05.2012
Сообщений: 4
|
![]()
Ребята! Помогите пожалуйста переделать программку! Вот есть исходник под старый jdk. Вкратце что тут происходит: прорисована машина, дорога и светофор. При нажатии на зеленый цвет светофора машина едет, на желтый - едет в два раза медленнее, на красный - останавливается. Заранее спасибо!
import java.awt.*; import java.applet.*; import java.awt.event.*; public class Applet1 extends Applet { int WidthL=80,HeightL=70, W=780, H=400, XStartL, YStartL; Image imR, imG, imE; Image L[]; String Lnames[]; Image C[]; String Cnames[]; String strL; int CarW=300,CarH=100; int x=-10-CarW, y=-10-CarH, i, Lnow=0,NumCars=5,Cnow=1; int d=100,dx=0, dy=0, dirx=1, diry=1; int YHRoad=H/2+50, XDRoad1=(int)(W*0.8), XDRoad2=20; double naklon=-0.1; int WRoad=100, DRoad=280,RoadNotDraw=1; MyTimer TimerThread = null; public void init() { initForm(); usePageParams(); XStartL= 50; YStartL=10; L = new Image[6]; Lnames = new String[6]; Lnames[0]="red.jpg"; Lnames[1]="ellow.jpg"; Lnames[2]="green.jpg"; Lnames[3]="red_l.jpg"; Lnames[4]="ellow_l.jpg"; Lnames[5]="green_l.jpg"; for (i=0;i<6; i++) L[i]= getImage(getDocumentBase(), Lnames[i]); C = new Image[NumCars]; Cnames = new String[NumCars]; Cnames[0]="car1.jpg"; Cnames[1]="car2.jpg"; Cnames[2]="car3.jpg"; Cnames[3]="car4.jpg"; Cnames[4]= "car12.jpg"; //Cnames[5]= "car2.jpg"; for (i=0;i<NumCars; i++) { C[i]= getImage(getDocumentBase(), Cnames[i]);} H=this.getSize().height; W=this.getSize().width; //DrawRoads(this.getGraphics()); // Определяет, создает и регистрирует объект MouseListener. this.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { mouseClick(e.getX(),e.getY()); } }); } public void OnResize(){ RoadNotDraw=1; x=-800; y=-800; } public void mouseClick(int x, int y) { if ((x>XStartL)&&(x<XStartL+WidthL)) if((y>YStartL)&&(y<YStartL+HeightL* 3)) { Lnow=(y-YStartL)/HeightL; update(this.getGraphics()); switch ( Lnow ) { case 0: dx=0; dy=0; break; case 1: d=50; dx=1; dy=1; break; case 2: d=20; dx=5; dy=5; break; default: dx=0; d=100; } }; } public void paint(Graphics g) { update(g);} public void update(Graphics g) { for (i=0;i<3; i++) if (i==Lnow) g.drawImage(L[Lnow+3], XStartL, YStartL+HeightL*i, this); else g.drawImage(L[i], XStartL, YStartL+HeightL*i, this); if(RoadNotDraw<5)DrawRoads(g); } public int GetD() {return d;}; public void DrawCar(Graphics g){ double n2=17; if ((x<-CarW)||(x>W+CarW)||(y<-CarH)||(y>H+CarH)){ //new car Cnow=(int)(NumCars*Math.random()); switch ( Cnow%4 ) { case 0: dirx= 1; diry= 0; x=0; y=YHRoad; break; case 1: dirx=-1; diry= 0; x=W; y=YHRoad; break; case 2: dirx=-1; diry=1; x=XDRoad1; y=0; break; case 3: dirx=1; diry=-1; x=(int)(H*naklon); y=H; break; } }; switch ( Cnow ) { case 2: y+=(int)(dy*diry/2); x=20+XDRoad1+(int)(y*naklon*n2); break; case 3: y+=(int)(dy*diry/2); x=20+XDRoad1+(int)(y*naklon*n2); break; default: x+=dx*dirx; y+=dy*diry; } g.drawImage(C[Cnow], x, y, this); }; public void DrawRoads(Graphics g) { int xDR[],yDR[]; xDR=new int[4]; yDR=new int[4]; xDR[0]=XDRoad1; yDR[0]=0; xDR[1]=XDRoad1+DRoad; yDR[1]=0; xDR[2]=(int)(H*naklon)+DRoad; yDR[2]=H; xDR[3]=(int)(H*naklon); yDR[3]=H; g.setColor(new Color(255,255,255)); g.fillRect(0, YHRoad, W, WRoad); g.fillPolygon(xDR,yDR,4); RoadNotDraw++; } private final String labelParam = "label"; private final String backgroundParam = "background"; private final String foregroundParam = "foreground"; private void usePageParams() { final String defaultLabel = "Default label"; final String defaultBackground = "156413"; final String defaultForeground = "000000"; String labelValue; String backgroundValue; String foregroundValue; this.setBackground(stringToColor("1 56413")); } |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 13.05.2012
Сообщений: 4
|
![]()
Продолжение:
private Color stringToColor(String paramValue) { int red; int green; int blue; red = (Integer.decode("0x" + paramValue.substring(0,2))).intValu e(); green = (Integer.decode("0x" + paramValue.substring(2,4))).intValu e(); blue = (Integer.decode("0x" + paramValue.substring(4,6))).intValu e(); return new Color(red,green,blue); } /** * External interface used by design tools to show properties of an applet. */ public String[][] getParameterInfo() { String[][] info = { { labelParam, "String", "Label string to be displayed" }, { backgroundParam, "String", "Background color, format \"rrggbb\"" }, { foregroundParam, "String", "Foreground color, format \"rrggbb\"" }, }; return info; } Label label1 = new Label(); void initForm() { this.setBackground(Color.green); this.setForeground(Color.black); } public void start() { if (TimerThread == null) { TimerThread = new MyTimer(this); m_DrawRectThread.start(); } } public void stop() { if (TimerThread != null) { m_DrawRectThread.stop(); TimerThread = null; } } } //////// new class class MyTimer extends Thread { Graphics g; Dimension dimAppWndDimension; int i, cnt=0; Applet1 Mama; public MyTimer(Applet1 Appl) { g = Appl.getGraphics(); dimAppWndDimension = Appl.getSize(); Mama=Appl; } public void run() { while (true) { Mama.DrawCar(g); try { Thread.sleep(Mama.GetD()); } catch (InterruptedException e) { stop(); } } } } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Аплет | Lord_of_dayS | Помощь студентам | 1 | 13.05.2012 20:54 |