이글루스

열심히..

by 사닉
★ 카테고리 ★
★ 최근 등록된 덧글 ★
g.drawImage(candl..
by 사닉 at 12/10
같이 생각해 봤던 부분..
by 김교수 at 12/09
화면상으로 본 프로그램..
by 김교수 at 11/30
캔버스의 requestFoc..
by 사닉 at 11/24
네... 키보드 입력에 너..
by 사닉 at 11/23
setFocus를 해 보았나요?
by 김교수 at 11/23
두번째, 키보드 입력시..
by 김교수 at 11/23
잘 진행되고 있네요.^^
by 김교수 at 11/09
그것들도 다 할꺼야 ㅋ ..
by 사닉 at 10/27
음...그냥 사용 가능한..
by ZaiFan at 10/27
★ 최근 등록된 트랙백 ★
Active investing.
by Active bond investin..
Chase bank secured..
by Chase bank credit c..
Instant payday loan.
by No faxing payday in..
Gay lesbian bisexua..
by Bisexual men dating s..
Generic ambien.
by Ambien online.
Drugs detected on d..
by Hydrocodone without..
★ 이전블로그 ★
★ 이글루링크 ★
★ 이글루 파인더 ★
rss

skin by 나드리
캡슐화 작업

객체를 만들고 각 객체에 대하여 쓰레드를 적용하기 위해서는 예전 수업때 배웠던 Data 클래스와 관련하여 캡슐화 작업을 하였다.

CandleImg 클래스와 PoliceImg 클래스를 만들어 크기/좌표 값 및 객체의 성격을 설정하는 메소드들을 두었다.

그리고 MainCanvas 클래스에서 CandleImg/PoliceImg 객체를 생성하고 쓰레드를 실행하면서 그림을 그리게 된다.

한 클래스에서 작업을 하였을때와는 달리 캡슐화작업을 통하여 확장성을 얻을 수 있었다.

CandleImg/PoliceImg 클래스는 각 객체의 성격을 가지고 있기 때문에 MainCanvas 클래스에서 다양한 값을 넣으면서 사용할 수 있게 되었다.


문제는 Graphics 관련하여 발생하였다.

Canvas를 상속받은 클래스의 객체가 만들어지면 그때 paint() 메소드가 실행되며,

repaint() 메소드를 실행시 update() 메소드가 실행된다고 개념을 잡고 있었다.

하지만 현재 상황은 Canvas를 상속받은 클래스의 객체가 만들어지면 paint() 메소드가 실행되며,

repaint() 메소드가 자동으로 무한 실행되고 있다......


이 부분을 제어하면서 CandleImg/PoliceImg 객체의 속성값들을 전달하고 표시하며 저장하여야 하므로  이 문제의 해결이 현재 가장 시급한 상황인 듯 싶다.

다른 조의 프로젝트를 보니 롤플레잉 게임 만드는 사람도 있던데 현재 프로젝트의 진행상황을 보면 소스도 너무 단순하고 완료된 부분이 거의 없다. 기간은 일주일.. 짧은 시간이지만 기본 구현 방식에서부터 탄탄히하여 후회없도록 할 것이다.

by 사닉 | 2009/12/01 23:18 | 시스템프로젝트(2학기) | 트랙백 | 덧글(2)
DB와 게임간의 연동 테스트

게임과 테스트를 위한 테이블을 만들어서 연동 테스트를 하였다.

필수사항으로 들어가야할 필드명을 위주로 하였다.

필드 번호(objid), 참여자이름(name), 게임점수(score)를 가진 테이블을 만들어 두고

게임이 실행된뒤 일정시간이 지나면 게임이 종료되고

st.executeUpdate("insert into account value("+objid+","+"\""+name+"\""+","+score+")");

위의 Sql문이 실행되도록 하였다.

기본적인 필드외에 정보는 먼저 기본적인 게임 프레임을 완성하고 게임 진행함에 있어서 필요한 정보들을 DB로 저장할 계획을 가지고 있다.

물론 반본적인 작업을 조금이라도 줄이고자 그림 객체에 대한 정보도 DB로 저장할 생각이다.

게임 실행시 커서가 첫번째 버튼에 위치하던 현상을 requestFocus(); 메소드를 캔버스 객체에 연결하여 프로그램 실행시 커서가 캔버스에 위치하게 되어 바로 키 입력시 촛불객체가 움직일 수 있게 하였다.

기말고사까지 마지막 1주 남은 상황에 암울.. 이번주에 열심히 해서 마무리하도록 해야겠다.

by 사닉 | 2009/11/24 16:38 | 시스템프로젝트(2학기) | 트랙백 | 덧글(1)
메인 프레임과 캔버스 및 키입력 이벤트 합체!!

메인프레임의 캔버스에 키입력 이벤트가 발생하는 것을 합쳤다.

키입력 이벤트는 아무래도 캔버스가 존재하는 클래스 안에 내부클래스로 두는 방법밖에는 없는거 같다.

그 이유는 이벤트들을 모아서 독자적인 클래스를 만들려고 했는데 캔버스가 존재하는 클래스와 이벤트가 존재하는 클래스간의 값 이동이 어려운건지 안되는건지.. 결론은 안된다.

일단, 내부 클래스나 무명클래스로 만들다가 가능하다면 외부클래스로 만들어나갈것이다.

새로운 문제가 생겼다.

프로그램을 실행하면 시작 버튼에 키입력이 시작되버려서 이동키를 입력시 촛불 객체가 움직이지 않는다.

그래서 캔버스에 마우스 클릭을 한번 한뒤에야 촛불 객체가 움직이기 시작한다.

프로그램 시작시 키의 처음위치를 캔버스로 지정할 수 있는 방법을 찾아야겠다.

계획상 이번주라면 마무리 단계가 진행되어야 하는데 진행상황이 아주 늦은감이 많다
by 사닉 | 2009/11/17 16:26 | 시스템프로젝트(2학기) | 트랙백 | 덧글(2)
방향키 입력에 의한 이미지 이동


keyPressed 메소드를 이용하여 방향키를 입력함에 따라 이미지 객체가 상,하,좌,우로 움직이도록 만들어보았다.

그래픽 객체를 사용하여 다른 클래스간에 사용이 익숙지 않아 먼저 한클래스 내에서 그래픽과 이벤트를 사용하였다.

현재 이 부분에서 가장 크게 보완해야 할 부분은

첫번째, 이미지 객체가 화면을 벗어날 경우 처리 방법

두번째, 키보드 입력시마다 페인트를 다시 하는데 위에서 아래로 자동으로 내려오는 장애물을 다시 그리지 않고 화면을 유지하는 방법이 있을지?

이 두가지가 가장 시급한 문제인 것 같다.

그리고 클래스간 자유롭게 사용할 수 있는 능력도 문제다.

이번주에는 위에서 아래로 적이 자동으로 내려오고 촛불객체를 마음대로 움직이며 예외가 발생하지 않도록 기본 틀을 완성해야겠다.
by 사닉 | 2009/11/10 16:15 | 시스템프로젝트(2학기) | 트랙백 | 덧글(2)
이미지와 프레임 합치기

이미지와 프레임을 합쳐서 기본적인 동작 방식을 만들었다.

Graphics g를 어떻게 사용할지 몰라서 많이 해맸는데

1. paint()의 매개변수를 이용하여 Graphics g 사용
2. getGraphics()를 이용한 Graphics g 얻어내기
3. Frame 외부에서 Graphics g 얻어내기

위의 3가지를 명확히 구분하니까 좀더 쉬워진듯 싶다.

이제 촛불 그림이 있는 객체를 키보드 입력을 통한 이동이 가능하도록 하여야 겠다.

키보드 관련은 KeyAdapter를 사용하면 될거 같은데 먼저 기본적인 예제부터 익숙해진 다음 프로젝트에 맞게 응용하는 방향으로 나아가야 할 듯 싶다.
by 사닉 | 2009/11/02 15:36 | 시스템프로젝트(2학기) | 트랙백 | 덧글(1)