티스토리 뷰
오랜만에 작성을 합니다. 예제파일 튜토리얼을 간단하게 만들어달라는 사람들이 있어서 작성합니다.
xna 설치 후 프로젝트 생성을 누르면 해당 샘플 파일이 존재합니다.
해당 샘플 파일을 따라서 제작해보는 시간을 가져보려고 합니다.
새로 프로젝트를 생성 후 가장먼저 사이즈부터 맞게 조정합시다.
private const int BackBufferWidth = 1280;
private const int BackBufferHeight = 720;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
graphics.PreferredBackBufferWidth = BackBufferWidth;//사이즈 가로
graphics.PreferredBackBufferHeight = BackBufferHeight;//사이즈 세로
Content.RootDirectory = "Content";
}
생성 자 부분에 작성 합니다.
가장 먼저 배경화면부터 만들어보겠습니다.
새 클래스를 하나 만들어 줍시다. 이름은 샘플 파일과 같게 Level 로 작성하도록 하죠
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Audio;
using System.IO;
상단부분에 해당 부분을 작성해주세요~ c의 include 라고 보시면됩니다.
다음으로는 배경으로 쓸 녀석들을 우리 프로젝트에 추가해보도록 합시다.
컨텐츠를 누르고 오른쪽 마우스 클릭 추가-새폴더랑 기존항목 추가로 해당 그림처럼 만들어 줍니다.
Backgrounds 입니다. n이 빠졌네요-_-;;
다음으로 Level 에 추가로 작성해보겠습니다.
Level 클래스가 로드 및 드로우 업데이트 게임의 거의 모든 부분이라고 생각하셔도 됩니다.
먼저 작성에 앞서 필요한 변수들을 선언합니다.
class Level
{
public ContentManager Content//레벨클래스에서 그림을 로드하기 위해 작성
{
get { return content; }
}
ContentManager content;
private Texture2D[] layers;//배경이미지를 저장할 배열
private const int EntityLayer = 2;//배경화면 그릴 갯수(0,1,2 이렇게 3가지)
private Random random = new Random(354668);//랜덤 생성
이렇게 추가 하시고 생성자를 작성해봅시다.
public Level(IServiceProvider serviceProvider, string path)//생성자 스트링은 다음 강의때 사용
{
content = new ContentManager(serviceProvider, "Content");//컨텐츠 매니저 생성
layers = new Texture2D[3];//배경으로 3개가 들어감
for (int i = 0; i < layers.Length; ++i)//위에 선언한 이미지 크기만큼 로드
{
int segmentIndex = random.Next(3);//레이어 안에 이미지 중 0, 1, 2, 각 3가지들 중 한가지씩
//로드함 레이어0_0~2 중하나, 1_0~2 중하다, 2_0~2중 하나
layers[i] = Content.Load<Texture2D>("Backgrounds/Layer" + i + "_" + segmentIndex);
} //로드
}
생성자를 작성해서 그림 로드 했으니 실제적으로 그려줄 Draw 함수를 작성합시다.
public void Draw(GameTime gameTime, SpriteBatch spriteBatch)//이렇게 그립니다.
{
for (int i = 0; i <= EntityLayer; ++i)//총 0 1 2 이녀석들을 0,0에 그려라
spriteBatch.Draw(layers[i], Vector2.Zero, Color.White);
}
자 이렇게 Level 클래스 작성을 마쳤으니 메인클래스로 돌아가서 Level을 생성 및 적용하도록 합시다.
private Level level;//선언하시구요~
protected override void LoadContent()//로드 부분에
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
LoadNextLevel();//해당 함수부분을 추가합니다.
// TODO: use this.Content to load your game content here
}
LoadNextLevel() 이 함수 녀석이 Level을 생성하는 역할을 하게 됩니다.
private void LoadNextLevel()//로드 넥스트
{
string levelPath;//아직 요녀석은 상관하지마세용~
levelPath = null;//일단 널로 처리해 둡시다.
level = new Level(Services, levelPath);//레벨 생성
}
레벨 생성을 마쳤으니 그려주도록 합시다.
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
level.Draw(gameTime, spriteBatch);//해당 부분을 추가해주록 합시다
spriteBatch.End();
// TODO: Add your drawing code here
base.Draw(gameTime);
}
자이제 F5를 눌러보도록 하죠
다들 잘되셨나요~
레벨클래스를 생성하여 메인 클래스에서 생성 및 그려줬습니다.
다음 시간은 맵을 그려보도록 합시다.
- Total
- Today
- Yesterday
- 안드로이드 개발
- 안드로이드
- XNA
- xna 2D
- C# 매크로 강의
- 매크로 강의
- 안드로이드 게임
- 리니지m 매크로
- 골프 게임
- MSP 프로젝트P
- C# 듀랑고 매크로
- 매크로 강좌
- C# 이미지매크로
- 듀랑고 매크로
- 메이저골프게임
- 메이저골프
- XNA 2D tutorial
- 모바일게임 매크로
- 플래시
- 매크로
- MSPproject
- XNA 3D tutorial
- XNA 퍼즐게임
- 이미지 찾기 매크로
- C# 매크로
- 포토샵 에러
- 듀랑고 자동
- 비활성화 화면 캡쳐
- 모모앱플레이어 매크로
- 듀랑고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |