2012-12-04 2 views
0

4 개의 챔피언 쉽 게임을 연결했습니다. 애니메이션 방식으로 텍스트를 표시 할 수있는 방법이 있습니까? 내 말은, 라운드 1이 화면에 쓰여진 후에 라운드 1이 끝난 후입니다.C#으로 애니메이션 텍스트를 표시하는 방법

의미는 온라인 게임에서와 같이 라벨에 표시되는 텍스트입니다. 화면에 나타나는 텍스트를 표시하고 몇 초 후에 사라집니다. 가능한지 모르겠어요!

답변

2

게임이 이겼을 때 그래픽 객체 형식을 가져 와서 수동으로 양식에 그려야합니다. 이 컨텍스트와 X의 형태이다

Graphics g = this.CreateGraphics(); 
g.DrawString("Game Won!", DefaultFont, Brushes.Red, x,y); 

, Y는 텍스트를 그릴 좌표는

물론

다른 사람은 당신이 X, Y 변경됩니다 타이머를해야 할 것이다 언급 한 바와 같이 또는 애니메이션 프레임마다 글꼴 크기와 같은 기타 속성을 지정합니다. 별도의 스레드에서이를 수행하고 결과를 이중 버퍼링하려고 할 것입니다.

+0

네, 정말 고마워요! 양식의 여러 구성 요소에 페인트 할 수 있습니까? 만약 당신이 그냥 그래픽 g = this.CreateGraphics(); , 나는 모든 형태의 그래픽을 만들 것입니다, 네? 그래서 그려진 아이템은 모든 구성 요소 위에 놓이게 될 것입니다. – Bernice

+0

winforms는 실제로 항목의 zindex로 재생할 수 없으므로 확실하지 않습니다. 최상위 항목에 그려야 할 수도 있습니다. 정말 이걸위한 적절한 플랫폼이 아닙니다. 문자열 만 그리기 시작하면 애니메이션에 대해 걱정할 필요가 없습니다. 게임이 모든 것 위에 우승하고 그 위에 그릴 때 폼에 새로운 Panel 컨트롤을 추가하기 만하면됩니다. – Mataniko

+0

이제 생각해 보면 사용자 정의 컨트롤을 만들고 OnPaint 메서드를 덮어 써서 가운데 ​​및 비례하여 애니메이션을 만들고 폼의 맨 위에 추가하면됩니다. – Mataniko

0

애니메이션으로 정확히 무엇을 의미하는지 알 수는 없지만, 일반적으로 20 밀리 초마다 애니메이션을 적용하는 방식으로 텍스트를 '애니메이트'하는 타이머를 만들 수 있습니다. 예를 들어 텍스트를 오른쪽에서 왼쪽으로 단순히 이동하려는 경우 타이머 경과 처리기에서 myText.X += 5 또는 이와 비슷한 값을 설정합니다.

+0

의미는 폼에 레이블이 아니라 화면에 텍스트가 표시되고 사라질 때 온라인 게임과 유사합니다. 몇 초 .. 가능한지 모르겠다! – Bernice

+0

@studentProgrammer : 툴팁을 팝업합니까? 또는 타이머를 사용하여 몇 초 후에'myLabel.Visible = false'를 설정하십시오. – zimdanen

+0

흠 몇 초 후에 레이블을 표시하고 표시 할 수 있지만 양식의 다른 모든 구성 요소 앞에 레이블이있는 방법이 있습니까? 툴팁은 무엇입니까? 나는 새로운 형태로, 결코 전에 그것을 사용! 당신의 도움을 주셔서 감사합니다! – Bernice

관련 문제