2016-06-08 7 views
0

내 목표는 사용자가 보드에서 체커를 움직일 수있는 체커 게임을 만드는 것입니다.투명 배경이있는 다른 PictureBox 위에 움직이는 PictureBox

내가 만든 보드는 DataGridView 클래스입니다.

지금 내가하고있는 일은 투명 배경이있는 각각의 검사기에 그림 상자를 만드는 것인데, 사용자가 선택한 검사기를 움직이면 나는 그를 BringToFront로 설정하고있다.

"투명"효과는 실제로 부모 컨트롤과 관련이 있으며 모든 검사기의 부모는 DataGridView입니다.

따라서 2 개의 체커가 겹치면 그 결과 투명한 효과가 없습니다.

Example of my problem image

나는 몇 가지 해결책을 가지고 있지만 메모리 많이 걸립니다 모든 심지어 UI 스레드가 아닌 스레드에서 정지.

내 해결 방법은 그 배경이 클라이언트의 스크린 샷이며 체커를 움직이는 동안 변경되는 하나의 커다란 패널 (모든 체커의 부모)을 갖는 것이 었습니다.

그런 일을하는 올바른 방법은 무엇입니까? 나는 계류에서 그물을보고 해결책을 찾고 있었다) : 제발 도와주세요!

편집 : 거의 다

:

https://youtu.be/nyhfIOzqeY8

+0

당신이 정말로 –

+0

좋아, 그래서 내가했다 화면 촬영 보드 및 체커를로드 한 후 _a single_의 PictureBox에있는 모든 그리기해야하고 내가 패널로 모든 체커 부모를 만들 이 화면 촬영을 holidng하고 있습니다 : http://s33.postimg.org/57e2f6r4f/image.png –

+0

즉, 모든 검사기 조각을 하나의 그림 상자에 직접 그려야하며 여기의 방법을 사용하십시오. http://stackoverflow.com/questions/4779027/투명도를 높이기 위해 비트 맵 이미지의 불투명도 변경 - 컨트롤을 만드는 것보다 훨씬 빠름 –

답변

0

앞으로 누군가가이 문제에 도움이 필요할 경우.

  1. 이 MainControl 모든 컨트롤을 추가 (willywonkadailyblah 감사합니다!) (내 경우는 있었다 pictureboxes) 귀하의 컨트롤을 만들기
  2. 는 모든 컨트롤의 부모가 MainControl
  3. 여기에 트릭이 될 수 있도록, 마우스를 아래로 움직이면 움직이는 컨트롤에서 이미지가 제거되고, 스크린 샷은 이미지를 움직이게하고 MainControl 이미지는이 스크린 샷을 유지하도록 설정합니다. . . 이제 컨트롤을 이동할 수 있으며, 다른 컨트롤에 대해서는 부모이기 때문에 투명합니다.

https://youtu.be/PUEyZPhPTlc

(:

0

당신은 내가 투명성을 사용하지 것이다 사진을 사용하려는 경우. 모든 응용 프로그램에서 투명성이 느립니다.

대체 솔루션에 대해 잠시 생각해 봅시다. 얼마나 많은 주들이 광장이 될 수 있습니까? 기본 색 사각형은 비어 있거나 위에 빨간색 또는 검은 색 조각이있을 수 있습니다. 다른 색의 사각형에는 절대로 조각이 없습니다.

총 4 개 상태입니다. 스프라이트 시트에서 분리되거나 결합 될 수있는 4 가지 이미지. 그런 다음 상태에 따라 사진을 전환하면됩니다. 기본 빈, 빨간색 기본, 검정 기본 또는 다른 색 사각형.

멋진 테두리가 필요한 경우 이미지를 그 옆이나 옆에 조각으로 만들면 좋습니다.