- 질문 게시판입니다.
Date | 18/05/31 11:20:18 |
Name | L'Etranger |
Subject | 자바 코딩 관련 질문드립니다 ㅜㅜ |
정말 완전 시작단계라 질문이 근본이 없는걸 이해해주셨으면 해요 코드를 여기다 붙여도 될런지 모르겠지만 그렇게 해볼게요 import java.awt.*; public class HorseRun extends Frame implements Runnable { private static final String EXIT_ON_CLOSE = null; private Image offScreenImage; private Graphics offScreen; private Image img; private Thread th; private int speed_x, speed_y; private int x, y; private boolean usedbuffer = true; public HorseRun() { super("HorseRun"); initlodation(); MediaTracker tracker = new MediaTracker(this); img = Toolkit.getDefaultToolkit().getImage("d:/HorseRun.gif"); tracker.addImage(img, 0); try { tracker.waitForAll(); } catch (InterruptedException e) {} th = new Thread(this); th.start(); } public void run() { while (th != null) { repaint(); try { th.sleep(50); } catch (InterruptedException e) {} } } void paintingjob(Graphics g, int w, int h) { g.clearRect(0, 0, w, h); x += speed_x; y += speed_y; if (x >= w) { initlodation(); } g.drawImage(img, x, y, this); if (usedbuffer) { g.drawString("Use Double-Buffering", 100, h / 2); } } void initlodation() { x = 0; y = 120; speed_x = 5; speed_y = 0; } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { int w = this.getSize().width; int h = this.getSize().height; if (offScreen == null && usedbuffer) { try { offScreenImage = createImage(w, h); offScreen = offScreenImage.getGraphics(); } catch (Exception e) { offScreen = null; } } if (offScreen != null) { paintingjob(offScreen, w, h); g.drawImage(offScreenImage, 0, 0, this); } else { paintingjob(g, w, h); } } 위의 코드를 아래의 코드에 합치고 싶은데요 위의 코드는 더블 버퍼링을 이용하여 왼쪽부터 오른쪽으로 말을 달리게 한 코드구요 아래 코드는 경마장 5개 트랙중 하나를 나타낸 코드예요 여기선 말이 깜빡이며 오른쪽으로 가게되어요 위의 장점을 이용해서 아래로 합쳐서 돌릴 수 있는 방법이 있을까요?? 질문이 난잡해서 죄송합니다 !! public class TrackPanel2 extends JPanel implements Runnable{ private List private Track track; public TrackPanel2(Track track) { list.add(0, 0); this.track = track; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Dimension dimension = this.getSize(); g.drawImage(new ImageIcon("img/horse.jpg").getImage(), 0, 0, (int)dimension.getHeight() - 20, (int)dimension.getHeight() - 20, this); } public void setData(int data) { Graphics g = this.getGraphics(); Dimension dimension = this.getSize(); list.add(1, data); g.clearRect(list.get(0), 0, (int)dimension.getHeight() - 20, (int)dimension.getHeight() - 20); g.drawImage(new ImageIcon("img/horse.jpg").getImage(), list.get(1), 0, (int)dimension.getHeight() - 20, (int)dimension.getHeight() - 20, this); list.add(0, list.get(1)); } public void init() { Graphics g = this.getGraphics(); list.set(0, 0); list.remove(1); paintComponent(g); } @Override public void run() { while(true) { int pos = track.getList().get(1).getCurPos(); if(pos > 1500) break; setData(pos); } } } 0
|