본문 바로가기

WindowPhone/XNA

너구리 만들기 2단계

오늘은 어제 추가한 content을 이용해서 background을 넣어 볼께용 :-D

제가 추가한 content들은

    `       http://creators.xna.com/

이곳에서 받을 수 있습니다.

자 그럼 후비고~

저번 내용들을 잘 따라 오셨다면

이와 같이 content들이 잘 추가가 되어 있을 텐데요 이중에서 이번에는 background.tga을 배경화면으로 사용해 보겠습니다.

우선 프로젝트를 보시면 기본적으로 몇몇 코드들이 생성 되어 있는데요. 이런 것 들은 나중에 훑어 보기로 하겠습니다.

일단!!

기본적으로 xna에서 표현하는 이미지는 Texture라고 하는데요 2D와 3D가 존재 하는데 이번에는 Texture2D을 이용해서 배경화면을 설정 해보겠습니다.

일단 전역변수로

Texture2D backGround;

이와 같은 변수를 추가 해주고 backGround Texture을 자동 생성된 함수인 LoadContest() 함수에서 읽습니다.

protected override void LoadContent()

        {

            // Create a new SpriteBatch, which can be used to draw textures.

            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here

            backGround = Content.Load<Texture2D>("Sprites\\background");

            viewPort = new Rectangle(0, 0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height);

        }


 

 

여기까지 하셨다면 backGround는 읽어 들이는데 성공한 것 입니다.

이 상태에서 실행해봤자 파란 화면만 나올 텐데요.

자~ 이제 그럼 바탕화면에 뿌려 봅시다. :-D

자동생성코드에 보면  spriteBatch 라는 친구가 있는데요 이 친구가 화면에 이미지를 뿌리는데 도움을 주는 친구 라고 하네요.

이 친구를 통해서 이미지를 뿌려 볼까용?

후후

이 다음 장 에서 한번씩 훑어 보겠지만 Draw라는 함수가 기본적으로 생성 되는데 이 함수는 60fps(Frame Per Second)로 1초에 60번씩 불려지면서 화면에 그림을 그리게 됩니다.

우리는 여기서 backGround을 그려 줄 텐데요.

그려주는 코드는 다음과 같습니다.

protected override void Draw(GameTime gameTime)

        {

            GraphicsDevice.Clear(Color.CornflowerBlue);

 

            spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);

            spriteBatch.Draw(backGround, viewPort, Color.White);

            spriteBatch.End(); 

 

            // TODO: Add your drawing code here

            base.Draw(gameTime);

        }


 

그림을 그리는 시작(Begin) 과 끝(End)을 알려 주고 있는데요,

이는 GPU 에게 그림을 그리는 시작과 끝을 알려줌으로써 따로 GPU가 그림을 그리기 위해 대기 타는 시간을 줄여주기 위함 입니다.

아무튼 위의 Draw 함수를 보면 3개의 인자를 받게 되어 있는데요, 실제로 Draw 함수를 보면 더 많은 인자를 받을 수 있게 짜져 있는데 필요에 따라서 사용 하시면 될 것 같습니다.. 이번에는 가장 기본인 3개의 인자를 받는 내용을 보도록 하죵

 

첫 번째로 Texture2D 는 위에서 저희가 만들어낸 backGround을 넣으면 될 것 이고요,

두 번째로 달라고 하고 있는 Rectangle는 해당 Texture가 보여질 위치를 설정 해서 넘겨주면 되구요,

마지막으로 달라고 하는 Color에는 원본 그대로의 색을 보여주기 위해서 White을 넣어주시면 됩니다.

이렇게 맞는 인자를 적당히 넣어 주시면 뾰로롱 하고 그림이 그려 지게 됩니다.

여기서 넘겨주는 Rectangle는 배경으로 사용 될 것 이므로 아래와 같이 사이즈를 설정해 주면 됩니다.

protected override void LoadContent()

        {

            // Create a new SpriteBatch, which can be used to draw textures.

            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here

            backGround = Content.Load<Texture2D>("Sprites\\background");

            viewPort = new Rectangle(0, 0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height);

        }



이와 같은 viewPort을 LoadContent 에서 설정해 주시면 됩니다.

이렇게 까지 해주셨다면 아래와 같이 배경화면이 나오시는걸 볼 수 있습니다. :-D

  

자 오늘 여기까지 하구요 다음 시간에는 프로젝트가 처음 생성시 저절로 생성되는 코드들을 하나씩 살펴 보도록 하겠습니다.

 

그럼 나이스한 주말 보내세요 :-D