장성호 님이 쓰신 글 :
: 더블버터링은 그냥 다음과 같이 한줄이면 끝입니다.
:
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
: this->DoubleBuffered=true;
: }
:
:
:
: Shape가 graphic-control이므로 shape가 Form위에 바로 올려져 있으면
: 위 코드로 하면되구..
:
: Shape가 다른 WinControl위에있으면
: Shape의 parent되는 control의 DoubleBuffered를 true로 설정해주시면 됩니다.
:
: 그럼..
:
: 배움이 님이 쓰신 글 :
: : 원래 하려하는 목적은 버블형태와 비슷한 스크린세이버를 만들어 보려 했습니다~
: : 생각보다는 쉽지가 않네요~
: :
: : 님 말씀에 힘입어 Screen좌표값을 구하고 radom 형태로 만들기는 했으나..
: : 이동할때의 자연스러움이나.. 깜빡임 현상들이 많이 심하네요..
: :
: : 누군가는 Double Buffer를 써서 자연스러움을 최소화시킨다고 하는데..
: : 아직 초보적인 단계라 거기까지는 무리가 있네요~
: :
: : 이동할때의 자연스러움을 나타내기위해서의 로직은 어떻게 짜야 하는것인지..
: : 참고사항 부탁드려요~
: :
: :
: : : 답은 여러가지가 있겠습니다만 제 의견을 말씀드리자면
: : :
: : : Screen->Height 와 Width 로 화면 크기를 가져오신후
: : :
: : : 랜덤값으로 왼쪽과 오른쪽을 하나 고르시고
: : : 위와 아래도 하나 고르시고
: : : 얼마나 움직이실지를 정하시고(수직과 수평의 값을 각각 다르게 하실수도 있고 같게 하실수도있구요)
: : :
: : : 그림이 화면 밖으로 나가지 않게 위에서 가져온 Screen 값으로 조절하시고
: : : 뭐 이런식이 되지 않을까요?
: : :
: : : 참고로요 움직이는 값을 정하실때 100*Random(x) 이런식으로 하시는게 낳으실겁니다
: : : 100같은 수를 안 곱해주시면 1픽셀식 밖에 안움직이는 수가 있으니까요;
: : :
: : : 원하시는 답변인지는 모르겠지만 이상 허접한 답변이었습니다
: : :
: : :
: : :
: : :
: : :
: : : 배움이 님이 쓰신 글 :
: : : : 아직 초보적인 단계라 로직에 대해 미비한게 많아요~
: : : : Shape 이동 루틴에 대해 궁금한게 있어 이렇게 올립니다~
: : : :
: : : : if(Shape7->Top < Height)
: : : : Shape7->Top+=400;
: : : : else
: : : : {
: : : : Shape7->Top = 10;
: : : : Shape7->Left +=10;
: : : : }
: : : :
: : : : 이렇게 하면 아래로 움직이는 로직이 되는데요..
: : : : 제가 하고 싶은건.. screen 값을 읽어와서 screen 안에서
: : : : 랜덤으로 왔다 갔다 하는 로직을 짜고 싶습니다..
: : : :
: : : : 근데.. Randomize를 사용해야 한다는건 아는데..
: : : : 이 좌표값을 어떻게 잃어와야.. screen안에서 random으로 돌아다니는 Shape을
: : : : 만들수 있을까요.. (자연스러움은 연출이 안되더라두요)
: : : :
: : : : 아직 배우는 단계라 부족함이 많습니다.. 답문 부탁드려요.. (__)