Gameprogrammeren: Game Assets

Slides:



Advertisements
Verwante presentaties
Het type int Tekenen met Java operatoren
Advertisements

Klassen en objecten.
Hoofdstuk 2 Hallo, C# !.
Klik in de berichtenbalk op Bewerken inschakelen,
Hoofdstuk 8 Objecten en klassen.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
Hoorcollege 14 Vijanden, excepties. Overzicht programmaconstructies Opdrachten Toekenning Aanroep void-methode return-opdracht while-opdracht for(each)-opdracht.
Hoorcollege 4 Objecten en methoden. Eigen methode toevoegen class Painter : Game { public void HandleInput() { … } protected override void Update(GameTime.
Trogdor The burninator Ruben Middel Raymond Siudak.
Hoorcollege 3 Game assets, Invoer verwerken. Tutorlunch GroepTutorStutorZaal UPaul BergervoetBob BestBBG 001 VMarries van de HoefSander VerkuilBBG 731.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Hoofdstuk 3 Methoden om te tekenen.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
GUI Graphical User Inferface. Window Definieer object(en) create voeg toe aan Gui update Gui draw Gui.
Animatie & Game Physics
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Partial Classes, Enemies, Exceptions
Game Object Structuren
Objectgeoriënteerd Programmeren (2)
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Keuzeopdrachten
Gameprogrammeren: Overerving
Gameprogrammeren: Char en String
Gameprogrammeren: Variabelen, declaraties en toekenningen
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Animatie
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Player input in Painter
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Gameprogrammeren: Tiles in Tick Tick
Gameprogrammeren: Afsluiting
Gameprogrammeren: Willekeurigheid (Randomness)
Gameprogrammeren: Herhalingen
Gameprogrammeren: Platform-games
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Gameprogrammeren: Properties
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Game Basics
Game Assets, Invoer Verwerken
Arjan Egges & Paul Bergervoet
Libraries, Platform Games
Gameprogrammeren: Recursie
Gameprogrammeren: Exceptions
Gameprogrammeren: Abstracte klassen
Willekeurigheid en Herhaling
Gameprogrammeren: Interfaces
Gameprogrammeren: Tiles en File I/O in Tick Tick
Game: omgaan met tijd (Jewel-Jam)
Gameprogrammeren: Klassen en objecten
Workshop 2D Spelontwikkeling
Arjan Egges & Paul Bergervoet
Object Communication (Jewel Jam)
Gameprogrammeren: Enemies in Tick Tick
Gameprogrammeren: Sprite sheets
Gameprogrammeren: Arrays
Transcript van de presentatie:

Gameprogrammeren: Game Assets Arjan Egges Paul Bergervoet Wouter van Toll

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

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

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

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

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

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

Sprites tekenen Positie (0,0)

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

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

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

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

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!!

Meerdere sprites balloonPosition

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;

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); }

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(); }

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

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"));

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();