제일 마지막줄이 제일 위에 그려지고, 밑에가 뚫려있는 그 보드를 그리는 함수가 필요합니다.
그리고 난 뒤에, 벽을 그리는 함수(실제로 게임상에서 벽돌을 못들어가게 하는 함수)를 보려고 합니다.
언제나 빠른 답변 감사합니다.
아 추가적으로,
void CWATTetrisView::OnPaint() { CPaintDC dc(this); // device context for painting
CClientDC pDC(this); // 현재 화면의 정보를 얻음 CPen penLine; // 사용할 pen 의 셋팅 CPen *OldPen; // 기존에 사용하던 설정으로 복구할 변수 penLine.CreatePen(0,3,RGB(0,0,0)); OldPen = pDC.SelectObject((&penLine));
////////////////////////////////////////////////////////////////////////// // 실제 출력될 내용
for(int tempY=0;tempY<4;tempY++) { for(int tempX=0; tempX<4; tempX++) { if (0 != g_NowBlockInfo[m_iNowBlockShape][m_iNowBlockDir][tempY][tempX]) { DrawOneBlock(BOARD_Y_POS + m_iNowBlockY+tempY,BOARD_X_POS + m_iNowBlockX+tempX,m_iOneBlockSize,&pDC,RGB(250,050,250)); } else { // 벽돌이 아닌 곳을 회색으로 표시 // DrawOneBlock(BOARD_Y_POS + m_iNowBlockY+tempY, BOARD_X_POS+m_iNowBlockX+tempX,m_iOneBlockSize,&pDC,RGB(200,200,200)); } } } //////////////////////////////////////////////////////////////////////////
아 답변은 감사한데, 제 질문과는 조금 다르네요..
전 2007년도 버전을 보고 있는데...
일단 제가 이해가 안되는 것은
for(tempY = 0;tempY<BOARD_Y_SIZE+1;tempY++)
{
for(int tempX=0; tempX<BOARD_X_SIZE+2; tempX++)
{
if(0 != g_BoardInfo[tempY][tempX])
{
DrawOneBlock((BOARD_Y_POS+tempY),BOARD_X_POS+tempX,m_iOneBlockSize,&pDC,RGB(200,200,200));
}
}
}
이 함수에서 보면,
y값을 0부터 BOARD_Y_SIZE까지 증가시키면서, 회색판을 그리는 건데,...
그러면 제일 마지막에 한줄이 그려지는데
지금 제가 궁금한것은
제일 마지막줄이 제일 위에 그려지고, 밑에가 뚫려있는 그 보드를 그리는 함수가 필요합니다.
그리고 난 뒤에, 벽을 그리는 함수(실제로 게임상에서 벽돌을 못들어가게 하는 함수)를 보려고 합니다.
언제나 빠른 답변 감사합니다.
아 추가적으로,
void CWATTetrisView::OnPaint()
{
CPaintDC dc(this); // device context for painting
CClientDC pDC(this); // 현재 화면의 정보를 얻음
CPen penLine; // 사용할 pen 의 셋팅
CPen *OldPen; // 기존에 사용하던 설정으로 복구할 변수
penLine.CreatePen(0,3,RGB(0,0,0));
OldPen = pDC.SelectObject((&penLine));
//////////////////////////////////////////////////////////////////////////
// 실제 출력될 내용
for(int tempY=0;tempY<4;tempY++)
{
for(int tempX=0; tempX<4; tempX++)
{
if (0 != g_NowBlockInfo[m_iNowBlockShape][m_iNowBlockDir][tempY][tempX])
{
DrawOneBlock(BOARD_Y_POS + m_iNowBlockY+tempY,BOARD_X_POS + m_iNowBlockX+tempX,m_iOneBlockSize,&pDC,RGB(250,050,250));
}
else
{
// 벽돌이 아닌 곳을 회색으로 표시
// DrawOneBlock(BOARD_Y_POS + m_iNowBlockY+tempY, BOARD_X_POS+m_iNowBlockX+tempX,m_iOneBlockSize,&pDC,RGB(200,200,200));
}
}
}
//////////////////////////////////////////////////////////////////////////
for(tempY = 0;tempY<BOARD_Y_SIZE+1;tempY++)
{
for(int tempX=0; tempX<BOARD_X_SIZE+2; tempX++)
{
if(0 != g_BoardInfo[tempY][tempX])
{
DrawOneBlock((BOARD_Y_POS+tempY),BOARD_X_POS+tempX,m_iOneBlockSize,&pDC,RGB(200,200,200));
}
}
}
이 함수대로 넣고 실행을하면, 제일 처음 벽돌이 생성되는 위치가 위에서 부터 생성이 되는데, 조절되게 하는 방법좀 부탁드립니다...
최초에 시작되는 것만 수정하면 될것같던데..
못찾겠어요...