De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Gameprogrammeren: Game Assets

Verwante presentaties


Presentatie over: "Gameprogrammeren: Game Assets"— Transcript van de presentatie:

1 Gameprogrammeren: Game Assets
Arjan Egges Paul Bergervoet Wouter van Toll

2 Game assets Externe informatie die nodig is om een game uit te voeren
Voornamelijk: Sprites Geluiden Hiervoor gebruiken we een uitgebreide versie van de game loop

3 De game loop (uitgebreid)
LoadContent Assets laden Wordt eenmalig uitgevoerd Niet alle acties in de game loop hoeven ingevuld te worden! LOADCONTENT UPDATE DRAW

4 Sprites tekenen Methodes van de SpriteBatch-klasse:
DrawString: Tekst op het scherm tekenen Draw: Sprites (plaatjes) op het scherm tekenen Begin: aanroepen vóór de eerste teken-actie End: aanroepen na de laatse teken-actie

5 Sprites tekenen using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics; class SpriteDrawing : Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Texture2D balloon; static void Main() SpriteDrawing game = new SpriteDrawing(); game.Run(); } SpriteBatch-object Variabele om de sprite in te bewaren

6 Stel de locatie van de sprites in
Sprites tekenen public SpriteDrawing() { Content.RootDirectory = "Content"; graphics = new GraphicsDeviceManager(this); } protected override void LoadContent() spriteBatch = new SpriteBatch(GraphicsDevice); balloon = Content.Load<Texture2D>("spr_lives"); Constructormethode Stel de locatie van de sprites in Maak een SpriteBatch-object Ballon-sprite laden

7 Sprites tekenen … protected override void Draw(GameTime gameTime) {
LET OP: Tekenopdrachten altijd tussen een ‘Begin’- en een ‘End’-aanroep! protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.White); spriteBatch.Begin(); spriteBatch.Draw(balloon, Vector2.Zero, Color.White); spriteBatch.End(); } Ballon tekenen

8 Sprites tekenen Positie (0,0)

9 sprite is de linkerbovenhoek!
Sprites tekenen De oorsprong van de sprite is de linkerbovenhoek!

10 Meerdere sprites using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics; class FlyingSprites : Game { static void Main() FlyingSprites spel = new FlyingSprites(); spel.Run(); } Texture2D balloon, background; Vector2 balloonPosition; Membervariabelen voor de sprites Membervariabele voor de ballonpositie

11 Meerdere sprites protected override void LoadContent() {
De LoadContent actie protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); background= Content.Load<Texture2D>("spr_background"); balloon= Content.Load<Texture2D>("spr_lives"); } Laden van sprites

12 Pas de ‘gamewereld’ aan
Meerdere sprites protected override void Update(GameTime gameTime) { int yposition = gameTime.TotalGameTime.Milliseconds / 2; balloonPosition = new Vector2(300, yposition); } ... Pas de ‘gamewereld’ aan

13 Meerdere sprites … protected override void Draw(GameTime gameTime) {
spriteBatch.Begin(); spriteBatch.Draw(background, Vector2.Zero, Color.White); spriteBatch.Draw(balloon, balloonPosition, Color.White); spriteBatch.End(); } Tekenen van sprites Let op: de volgorde waarin je de sprites tekent is belangrijk!!

14 Meerdere sprites balloonPosition

15 Muisinvoer verwerken Uitbreiding van het vorige voorbeeld: een ballon die de muis volgt. Alleen nog 1 extra using nodig: protected override void Update(GameTime gameTime) { MouseState mousePos = Mouse.GetState(); balloonPosition = new Vector2(mousePos.X, mousePos.Y); } ... Ophalen van de muis-‘toestand’ using Microsoft.Xna.Framework.Input;

16 Andere oorsprong gebruiken
Zodat de ballon aan de muispointer hangt 1 membervariabele toevoegen: LoadContent uitbreiden om oorsprong te berekenen: Vector2 balloonOrigin, balloonPosition; protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); balloon = Content.Load<Texture2D>("spr_lives"); background = Content.Load<Texture2D>("spr_background"); balloonOrigin = new Vector2(balloon.Width / 2, balloon.Height); }

17 Andere oorsprong gebruiken
Draw-methode aanpassen Manier 1: protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.White); spriteBatch.Begin(); spriteBatch.Draw(background, Vector2.Zero, Color.White); spriteBatch.Draw(balloon, balloonPosition - balloonOrigin, Color.White); spriteBatch.End(); }

18 Andere oorsprong gebruiken
Manier 2: protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.White); spriteBatch.Begin(); spriteBatch.Draw(background, Vector2.Zero, Color.White); spriteBatch.Draw(balloon, balloonPosition, null, Color.White, 0.0f, balloonOrigin, 1.0f, SpriteEffects.None, 0); spriteBatch.End(); } Rotatie Oorsprong Schaal Spiegelen

19 Geluid en muziek Gebruik de volgende ‘using’ voor achtergrondmuziek:
Nu kunnen we muziek afspelen door de volgende opdrachten aan te roepen: Of korter: using Microsoft.Xna.Framework.Media; Song music = Content.Load<Song>("snd_music"); MediaPlayer.Play(music); MediaPlayer.Play(Content.Load<Song>("Music"));

20 Geluidseffecten Gebruik de volgende ‘using’ voor geluidseffecten:
Geluidseffect laden: Geluidseffect afspelen: using Microsoft.Xna.Framework.Sound; SoundEffect mySnd = Content.Load<SoundEffect>("snd_scream"); mySnd.Play();


Download ppt "Gameprogrammeren: Game Assets"

Verwante presentaties


Ads door Google