Download de presentatie
De presentatie wordt gedownload. Even geduld aub
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();
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.