- 질문 게시판입니다.
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 list = new ArrayList<>();
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


목록
번호 제목 이름 날짜 조회 추천
공지 질문 게시판 이용 규정 11 토비 15/06/19 22725 4
15825 IT/컴퓨터통신사 무제한 데이터, 데이터 쉐어링 잘 아시는분... 7 dongri 24/05/04 250 0
15823 기타보드 게임 같은 걸 프로토타입으로 만들려면 어떻게 해야 할까요? 3 아재 24/05/03 140 0
15822 기타세컨 차량 구매 21 Beemo 24/05/03 386 0
15821 IT/컴퓨터IT 계열에서 과제 테스트 일정이 잡혔습니다. 14 [익명] 24/05/03 383 0
15820 IT/컴퓨터마라톤 대회용 카메라를 추천받고 싶습니다. 10 오디너리안 24/05/02 478 0
15819 문화/예술5월 4일(토)에 수족관에 간다면 인파가 얼마나 몰릴까요? 3 열한시육분 24/05/02 336 0
15818 IT/컴퓨터네이버블로그/네이버카페/인스타그램/페이스북/링크드인 모와보기? 4 루키루키 24/05/02 288 0
15817 의료/건강ADHD 해외파견 10 [익명] 24/04/30 587 0
15815 체육/스포츠격투기 운동을 시작해볼까 하는데 조언 부탁드립니다. 18 삼유인생 24/04/30 433 0
15814 IT/컴퓨터챗gpt같은 걸 써보고 싶은데, 추천부탁드립니다. 12 똘빼 24/04/29 498 0
15813 의료/건강응급실 질문입니다. 3 kogang2001 24/04/29 464 0
15812 가정/육아아이 학원을 어떻게 알아보는게 좋을까요? 7 토비 24/04/29 454 0
15811 IT/컴퓨터중고 크롬북을 사고 싶은데 마땅한 이유가 없읍니다 14 아침커피 24/04/29 356 0
15810 법률자진퇴사/권고사직/실업급여문의입니다. 8 [익명] 24/04/29 353 0
15809 기타초콜릿에서 방구냄새가 납니다 6 2024 24/04/29 346 0
15808 가정/육아선입선출 수납박스 20 kaestro 24/04/29 547 0
15807 경제퇴직금 계좌 전환 관련하여 문의드립니다. 2 거참귀찮네 24/04/29 239 0
15806 IT/컴퓨터5만원 미만 스마트워치? 7 기아트윈스 24/04/28 344 0
15805 IT/컴퓨터usb 포트 늘리는 물건 추천해주실수 있을까요? 6 kaestro 24/04/28 407 0
15804 의료/건강CRP수치가 높으면 많이 위험한가요?? 2 Broccoli 24/04/28 407 0
15803 의료/건강해외 유학 전 검강검진 + 예방접종 질문드립니다. 6 귤깐손 24/04/27 372 0
15802 문화/예술이슬람 노래 찾습니다 1 몸맘 24/04/27 228 0
15800 의료/건강간염 예방접종 질문입니다. 2 kogang2001 24/04/26 256 0
15799 IT/컴퓨터크롬캐스트4세대로 넷플릭스 광고요금제 볼수 있나요? 일리지 24/04/26 206 0
목록

+ : 최근 2시간내에 달린 댓글
+ : 최근 4시간내에 달린 댓글

댓글