일반적으로 게임을 만들 때는 게임 루프라는 무한 반복되는 루프를 만들어 만들게 됩니다. 이런 방법을 이용하는 이유는 검색하면 많이 나오기 때문에 따로 설명하진 않겠습니다. ( 이 정도 글을 읽으시면서 설마 이 정도도 모를라고? ㅎㅎㅎㅎ ) 여하튼 게임을 만드는데 꼭 게임 루프가 있어야 하느냐? 그건 아닙니다. 특히나 WPF나 실버라이트 같은 경우 자체적으로 UX프레임웍이 잘돼 있어서 더더욱 게임 루프 없이도 게임을 만드는 데 지장이 없습니다. (참고 : 아이유vs지연 프로젝트 ) 하지만 게임 루프가 필요할 때가 있죠.. 여전히 기존 프래임웍과 게임 루프를 어떻게 연결하여 사용해야 할지 의문이긴 합니다만... 뭐 일단 게임 루프부터 만들고 알아보도록 하죠 ㅎㅎㅎ 프로젝트 생성은 "GameLoop_Compo..
기본적인 버튼의 모양은 엄청 투박합니다. WPF씩이나 쓰면서 이런 버튼을 그냥 쓸 순 없죠 ㅋㅋㅋㅋ 블렌드를 사용하여 간단하게 이미지 버튼을 만들어 봅시다. 1. 프로젝트 생성 WPF프로잭트를 하나 생성한 후 버튼을 하나 추가합시다. (꼭 버튼이 아니여도 상관없습니다.) 버튼으로 사용할 이미지를 '프로젝트 탭'으로 드래그하여 추가합니다. 2. 컨트롤로 만들기 버튼에서 오른쪽 클릭을 한 후 '컨트롤로 만들기(Make Into Control...)' 를 누릅니다. 컨트롤 타입(Control type)을 버튼으로 해주시고 이름(Name)을 적당히 넣어주세요. 디파인 인(Define in)는 이 버튼 스타일을 어디에 선언할지를 선택하는 것입니다. 일반적으로 이런 스타일들은 App(Application)에 선언합..
OOB(Out Of Browser) 1. OOB(Out Of Browser)를 사용해 보자 2. OOB(Out Of Browser)에서 인스톨 인터페이스를 보여주기 이전 글에서 OOB를 이용하면 데스크탑에서 실버라이트 응용프로그램을 사용할수 있다고 하였습니다. 그런데 생각해보면 OOB를 설치하기위해서는 오른쪽 클릭후 인스톨....으잌? 이런식으로 말이죠. 이 방법은 당연이 사용자 경험(UX)의 계념에서 보자면 최악입니다. 숨겨진 메뉴에다가 어떻게 설치해야하는지 알려주지도 안으며 클릭도 2번이나 하죠. 어찌됬건 인스톨인터페이스를 노출시켜 프로그램설치를 안내해봅시다. 버튼2개를 만들어서 인스톨이 안되있는경우 인스톨 버튼을 보여주고 인스톨이 안되있는 경우 일반버튼을 보여주겠습니다. 1.인스톨이 되어있는지 판별..
OOB(Out Of Browser) 1. OOB(Out Of Browser)를 사용해 보자 2. OOB(Out Of Browser)에서 인스톨 인터페이스를 보여주기 실버라이트로 데스크탑 응용프로그램을 만들수 없을까? 실버라이트로 로컬에 있는 파일들을 컨트롤 할수 없을까? 이런 질문의 답은 OOB(Out Of Browser)입니다. WPF가 있는데 구지 실버라이트를 데스크탑에서 돌려야 하냐?라는 물음이라면 던저버리세요. 으외로 닷넷프래임웍의 설치에 문제가 많습니다 ㅡ.-; 특히 비스타 이전버전들이 문제가 많은데 XP는 여전이 사용자가 많다는 문제가-_-; 여튼 WPF를 돌리기 위해선 닷넷 프레임웍을 설치해야 하지만 OOB는 실버라이트 플러그인만 설치되있으면 동작합니다. 그외에도 인터넷에 연결만 되있으면(...
일반적으로 트랜스폼은 블랜드에서 생성해서 쓰기 때문에 동적으로 생성할일이 많지는 않습니다. 하지만 동적으로 생성한 컨트롤에 트랜스폼을 주고 싶으면 동적으로 생성해야 하죠. 동적으로 트랜스폼을 주려면 2가지 방법이 있습니다. 한개만 지정하는 방법과 그룹으로 지정하는 방법이 있죠. 1개만 지정하는 방법은 컴포짓트랜스폼(CompositeTransform)을 이용합니다. 이 컴포짓트랜스폼은 4.0이후버전에서 사용하는데....이전 버전에서 사용가능한지 모르겠군요. 어찌됬건 컴포짓트랜스폼은 좌표이외에도 대부분의 트랜스폼 옵션을 사용할수 있기때문에 거의 컴포짓트랜스폼만 생성하면 별문제 없이 애니메이션 생성이 가능하죠. 이 포스팅에선 4.0이후 버전에서 1개만 지정하여 사용하는 방법을 알려드리겠습니다. 1개만 지정한개..
WPF나 실버라이트를 하면서 가장 아리송한 부분이 색지정입니다. 특히 배경색 말이죠. 보통 윈폼에서는 칼라나 RGB열거형을 쓰는데 WPF나 실버라이트는 브러쉬라는 것을 사용합니다. 브러쉬는 사용하는건 별문제가 안되는데 이녀석도 객체처럼 초기화를 하려고 하면 초기화가 안됩니다 ㅡ,.ㅡ; 헛 에러가-_-;; 비주얼 스트디오의 친절함에 익숙한 닷넷 개발자들이라면 적지않게 당황할수 밖에 없는 상황이죠 ㅎㅎㅎ 어지됬건 각 브러쉬에 맞는 브러쉬로 초기화를 해야 먹힙니다, 위와 같은 백그라운드의 경우 SolidColorBrush를 이용해야 합니다. LayoutRoot.Background = new SolidColorBrush(Colors.Red); LayoutRoot.Background = new SolidColor..
애니메이션의 반복 옵션을 주려면 스토리보드에 'RepeatBehavior'속성을 주면 됩니다. Storyboard m_sbReturn = new Storyboard(); this.m_sbReturn.RepeatBehavior = RepeatBehavior.Forever; 참 쉽조잉? 이렇게 옵션을 'RepeatBehavior.Forever'으로 주면 무한 반복 합니다. 멈추려면 '.Stop()'을 호출하면 됩니다.
가속 감속 넣기는 참 쉽습니다. 문제는 애니메이션을 구성할때 어떻게 구성했냐에 따라 다르죠. 이전글 - [WPF/Silverlight] 오브젝트 애니메이션 이전글을과 같이 'DoubleAnimationUsingKeyFrames'로 구현한경우 키프레임 구성에 사용한 'EasingDoubleKeyFrame'을 사용하여 가속/감속을 지정하여야 합니다. 가속/감속을 지정할때 사용하는 속성은 'EasingFunction'입니다. 이게 있어야 지정이 가능하죠. //DoubleAnimationUsingKeyFrames kf = new EasingDoubleKeyFrame(); kf.EasingFunction = new CircleEase() { EasingMode = System.Windows.Media.Animat..
텍스트 박스, 버튼, 유저컨트롤 등이 뒤섞여있는데 모두 같은 애니메이션을 주려면? 이럴때 보통 오브젝트(object)로 선언하여 관리하면 되지만 오브젝트 형태는 애니메이션을 줄수가 없습니다. 오브젝트는 스토리 보드에 추가 할수 없다는 에러입니다. 이럴 때는 오브젝트를 'FrameworkElement' 형태로 바꿔주면 됩니다. 에러가 사라 젔습니다. 그렇기 때문에 애니메이션을 통으로 관리 할때는 'FrameworkElement'로 해야 하는 것이지요. 초간단 천체 소스
그냥은 안되고 외부 라이브러리를 사용해야 합니다. FluxJpeg라는 라이브러리인데 비트맵을 JPG로 변환할때 사용합니다. 클래스로 사용하는 전체 코드이니 귀찬으면 그냥 복사해서 써도 됩니다. using System.Windows.Media.Imaging; using System.IO; public class claExportImg { Canvas m_layoutScreen = null; public claExportImg() { } public void OnCapture(Canvas layoutScreen) { //사용할 레이아웃 지정 this.m_layoutScreen = layoutScreen; WriteableBitmap wb = new WriteableBitmap(this.m_layoutScre..