2017-10-15 4 views
0

학교 프로젝트를 위해 작은 WindowsForm Dice 게임을 만드는 중입니다. 사양 중 하나는 위치와 함께 장애물이있는 텍스트 파일을 읽고 뒤로 이동할 공간 수를 읽는 것입니다. 이 정보가 들어있는 텍스트 파일을 지그재그 배열로 성공적으로 읽었으며 지금은 장애물로 작동하는 PictureBox를 생성해야합니다. 코드를 잘 컴파일하고 모든 작동하지만 PictureBoxes 내 양식에 나타나지 않는 것 같습니다. x와 y 값은 정확하고 양식 내부에 있습니다. if 문은 장애물이 플레이어를 앞으로 또는 뒤로 보내고 있는지 여부를 확인하고 이에 따라 이미지를 변경합니다.런타임 중에 PictureBox 추가하기

int obstacleX = Convert.ToInt32(lbl.Location.X) - 14; 
int obstacleY = Convert.ToInt32(lbl.Location.Y) + 6; 
PictureBox obstacle = new PictureBox(); 
if (Library.GlobalVariables.obstacleStats[i][1] < 0) 
{ 
    obstacle.Image = Properties.Resources.badObstacle; 
} 
else 
{ 
    obstacle.Image = Properties.Resources.goodObstacle; 
} 
obstacle.Location = new Point(obstacleX, obstacleY); 
obstacle.Size = new Size(17, 17); 
obstacle.Show(); 
this.Controls.Add(obstacle); 

분명히 분명한 점이 있습니까? 당신의 도움에 대한

감사합니다,

조쉬

+0

당신은 새 개체를 표시하는 화면을 다시 그려야 :

여기에 관심이있는 사람들에 대한 최종 코드입니다. – nocturns2

+0

어떻게 화면을 다시 그릴 수 있습니까? this.Refresh()는 효과가없는 것 같습니다. –

+0

pbox가 다른 컨트롤과 겹쳐 질 경우 obstripe.BringToFront()를 추가하십시오. –

답변

0

사진이 완전히 표시되지 않을 수 있습니다, 그냥 SizeMode는 시도로 설정 :

obstacle.SizeMode = PictureBoxSizeMode.Zoom 
0

obstacle.SizeMode = PictureBoxSizeMode.Zoom이 문제를 해결 추가. 도움을

int obstacleX = Convert.ToInt32(lbl.Location.X) - 14; 
int obstacleY = Convert.ToInt32(lbl.Location.Y) + 6; 
PictureBox obstacle = new PictureBox(); 
if (Library.GlobalVariables.obstacleStats[i][1] < 0) 
{ 
    obstacle.Image = Properties.Resources.badObstacle; 
} 
else 
{ 
    obstacle.Image = Properties.Resources.goodObstacle; 
} 
obstacle.Location = new Point(obstacleX, obstacleY); 
obstacle.Size = new Size(17, 17); 
obstacle.SizeMode = PictureBoxSizeMode.Zoom; 
this.Controls.Add(obstacle); 
obstacle.Show(); 
obstacle.BringToFront(); 

감사합니다,

조쉬

관련 문제