수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

자바 테트리스 오늘 두번째 질문입니다.. 막혀서;;;

잠팅이

2023.04.01




//아이템 시작셋팅
this.currentitem = itemlist.get(rnd.nextint(itemlist.size()));
//아이템리스트 크기 반환한다음 크기만큼 나눈거 중 랜덤으로 가져온다.
//즉, 아이템리스트의 개수는 7개 이다.. 7/1 해서 하나를 박스로 가져온다.
//이것을 currentitem에 저장한다. 현재나올것
this.currentitem.setcolor(this.colorlist.get(this.rnd.nextint(this.colorlist.size())));
//색상도 종류별로 해서 나눠서 그것을 현재 나오는 블럭에 색깔 적용한다.
this.currentitem.setdefaultlocation();
//setdefaultlocation()로 이동
setnextitem(); //setnextitem() 메소드로 이동

this.setdefaultcloseoperation(jframe.exit_on_close);
this.setvisible(true);
//this.setresizable(false);
t = new thread(this);
t.start();///////////////////setdefaultlocation() 메소드 시작/////////////////////////////////////////////////////////
//시작위치조정

public void setdefaultlocation(){
for (int i=0; ipanel.length; i++){ //패널개수는 테트리스 전부 같이 4개 입니다..
int x = block[i].getx() + (int)(xcnt/2-2);
// 블럭은 변환가지수 입니다.. 예를 들어 ㄱ 자블럭이 면 변환이 4이니 4이고 ㅁ블릭이면 변환이 1이니 1 이런거입니다.

int y = block[i].gety() +2;

panel[i].setlocation(x * area, y * area);
}
this.currentxy.setxy((int)(xcnt/2-2),2);//////////////////setnextitem() 메소드로 시작/////////////////////////////////////////////////////////////

public void setnextitem(){
item temp;
do{
temp = itemlist.get(rnd.nextint(itemlist.size())); //아이템 개수 만큼으로 나눠서 하나
}
while (temp==this.currentitem);//현재아이템과 중복x 현재와 나중의 것이 같다면
this.nextitem = temp;
this.nextitem.setcolor(this.colorlist.get(this.rnd.nextint(this.colorlist.size())));
this.nextitem.setnextlocation();//위치셋팅

////////////////////////////////////블럭클래스///////////////////////////////////////////
class block
{
private int x;
private int y;
//생성자
public block(){
}
public block(int x, int y){
this.x = x;
this.y = y;
}
//해당 포인트맛큼 감산
public void move(int xplus, int yplus){
this.x += xplus;
this.y += yplus;
}
//x포인트 반환
public int getx(){
return this.x;
}
//y포인트 반환
public int gety(){
return this.y;
}
//자신 반환
public block getblock(){
return this;
}
//xy셋팅
public void setxy(int x, int y){
this.x = x;
this.y = y;
}
}
////////////////블럭의 함수////////////////////////////////////////////

아이템 시작 세팅에서 궁금한게 처음에 this.currentitem.setdefaultlocation(); 입니다.

this.currentitem은 현재 나올 모양의 블럭을 가지고 잇습니다.. ㄴ,ㅁ,ㅣ, ㄹ 자 등등이 랜덤입니다.

this.currentitem.setdefaultlocation(); 함수에서..

int x = block[i].getx() + (int)(xcnt/2-2);
// 블럭은 변환가지수 입니다.. 예를 들어 ㄱ 자블럭이 면 변환이 4이니 4이고 ㅁ블릭이면 변환이 1이니 1 이런거입니다.

int y = block[i].gety() +2;

panel[i].setlocation(x * area, y * area);
}
this.currentxy.setxy((int)(xcnt/2-2),2);

부분이 이해를 잘못하겠습니다.. 블럭 [i].getx() 하라는데.. 뭐 어떻게 하는건지 잘 모르겠습니다..

블럭클래스부분 적어놨습니다..ㅜㅜ

setlocation 가 무슨 메소드인지;;;
여튼 xy 나오는건 모르겠습니다..ㅜㅜ

그리고 넥스트 아이템에서 문제는..

public void setnextitem(){
item temp;
do{
temp = itemlist.get(rnd.nextint(itemlist.size())); //아이템 개수 만큼으로 나눠서 하나
}
while (temp==this.currentitem);//현재아이템과 중복x
this.nextitem = temp;
this.nextitem.setcolor(this.colorlist.get(this.rnd.nextint(this.colorlist.size())));
this.nextitem.setnextlocation();//위치셋팅

입니다.. 세번쨰 라인이.. 문제인데.. 랜덤해서 나오는것을 temp에 저장한다음..

와일문 ==은 같다라는 뜻인데.. 현재 아이템과 temp가 같다면 이라고 해석이 되는데..

왜 코딩 했는 작성자는 현재아이템과 중복x 라고 주석을 달아놨더라고요...

이해가 잘안되네요...

그리고 마지막..this.setdefaultcloseoperation(jframe.exit_on_close);
this.setvisible(true);
//this.setresizable(false);
t = new thread(this);
t.start();

인데.. 만약 꺼지면 꺼진다는거고... 쓰레드를 시작 start()메서드를 실행해서

run 이라는 메서드로 실행된다는걸 알겠습니다..

너무 넓게 알아서.. 제대로 안다 라고는 할수는 없는데...

혹시 무심코 클릭하시다가 본인이 아시는 부분이 나왔다 하면 좀 짚어서 틀린부분이나 추가 설명같은거 좀 적어주세요..

부탁드립니다.. 누구한테 물어볼때도 없고..ㅠㅠ 답답하네요..

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2695702 [질문] Java 버전 차이에 의한 오류?!! (2) 검사 2025-05-23
2695672 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) 뽀그리 2025-05-22
2695647 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) 아빠몬 2025-05-22
2695586 IFRAME 캐싱 질문 봄나비 2025-05-22
2695498 [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; 터1프한렩 2025-05-21
2695468 자바랑 이클립스에서요.. 스킬 2025-05-21
2695375 Mysql 연동하는 자바 질문있습니다. 아리솔 2025-05-20
2695319 파워포인트 파일을 저장할 수 있을까요? 시윤 2025-05-19
2695289 [질문]Tween 값의 정도를 알고 싶습니다. 타마 2025-05-19
2695238 c 와 c++의 시작 (10) ChocoHoilc 2025-05-18
2695215 탑메뉴의 repeat-x .배경이 두가지에요ㅠ ㅠ 널위해 2025-05-18
2695187 자바스크립트와 자바의 import에 관해서 질문드려요 (1) 무슬 2025-05-18
2695116 테마 문의 (해당 사이트와 같은 테마 혹은 플러그인) Sweet 2025-05-17
2695084 [질문] starDrag()와 같은 함수 만들기 민구 2025-05-17
2695055 폰트 질문드립니다. 할인사이트에 많이 쓰는 굵은 숫자폰트.. (2) 일본녀 2025-05-17
2695025 [개발툴]Jcreator 에 관해서... (5) 에녹 2025-05-16
2695006 BitmapData ..무비클립에 적용 할수 있을까요? (1) 날위해 2025-05-16
2694977 C언어 소스문제점좀요 ... (2) 들꿈 2025-05-16
2694950 자바스크립트로 화면에 내용을 뿌려줄때 접근성 (3) 꺆잉 2025-05-16
2694921 보더 레이아웃 안에 플로우 레이아웃 넣는방법? 초롱 2025-05-15
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com