Gameprogrammeren: Variabelen, declaraties en toekenningen Arjan Egges Paul Bergervoet Wouter van Toll
Variabelen Variabele: geheugenplaats met een naam Declaratie: aangifte van het type van de variabele Toekenningsopdracht: variabele krijgt waarde int x, y; x y 20 x = 20;
Toekenningsopdrachten Expressie aan de rechterkant mag andere variabelen gebruiken Vorige waarde gaat verloren int x, y; x = 20 ; x y 50 20 25 26 y = x + 5 ; x = y * 2 ; y = y + 1 ;
Syntax van opdracht (toekenning)
Syntax van opdracht
Declaratie en toekenningen Eén keer declarareren Mogelijk meerdere toekenningen Declaratie en eerste toekenning int x; int x = 100; x = 100; x = 100; x = 250; x = x + 1; x = 2 * x;
Syntax van declaratie
Type van variabelen int geheel getal double benadering van reëel getal int x; double d; x 10 3 x = 10 ; d = 3.141592653 ; d 3.3333333333 3.141592653 10.0 d = 10 ; x = x / 3 ; d = d / 3 ;
Const declaratie const double pi = 3.1415926535897938; Latere toekenningen verboden pi = 4.0; double straal = 2.0; double oppervlakte = pi * straal * straal;
Syntax van declaratie
Plaats van een declaratie
Standaardtypes Gehele getallen: Getallen met een decimale punt: 1 byte sbyte ± 127 byte 0..255 28-1 2 bytes short ± 32767 ushort 0..65535 216-1 4 bytes int ± 2 miljard uint 0..4 miljard 232-1 8 bytes long ± 1018 ulong 0..1019 264-1 Getallen met een decimale punt: 4 bytes float 7 cijfers, afgerond, ≤1038 8 bytes double 15 cijfers, afgerond, ≤10300 16 bytes decimal 28 cijfers, exact, ≤1028
Constanten Geheel getal (kleinst passende) Getal met een decimale punt string (tekst) hexadecimaal 137 –25 0x1A 0xFF 26 255 0.5 –273.15 6.02E23 1E3 3E–11 602000000000000000000000 1000 0.00000000003 "Hallo!" "A" "" "een \"citaat\"" "\n" "\\"
Typering van operatoren Beide argumenten geheel resultaatwaarde geheel Minstens één floating resultaatwaarde floating bij + operator ook: Minstens één string resultaatwaarde string 2 + 5 3 * 4 5 / 2 0.5 * 7 10 / 3.0 1.5 * 2.5 “ga” + “me” “€” + bedrag
Verschillende typen int en double zijn voorbeelden van een primitief of built-in type C# kent ook `complexere’ types Color GameTime GraphicsDevice … Deze zitten in libraries zoals MonoGame, .NET, ...
Syntax van primitieve types
Enumerated type Wordt gebruikt om een verzameling verschillende toestanden aan te duiden Bijvoorbeeld: En voor ButtonState (Pressed/Released): enum CharacterClan { Warrior, Wizard, Elf, Spy }; CharacterClan myClan = CharacterClan.Warrior; ButtonState someState = ButtonState.Released;
Enumerated type Nog een voorbeeld: enum MonthType { January, February, March, April, May, June, July, August, September, October, November, December }; enum DayType { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; MonthType currentMonth = MonthType.February; DayType today = DayType.Tuesday;
Type Vector2 Het Vector2-type wordt gebruikt om vectoren in 2D te bewaren. Bijvoorbeeld: Vector2 positie = new Vector2(150.0f, 300.0f); positie = Vector2.Zero; positie = positie + new Vector2(300.0f, 300.0f); float x_waarde = positie.X; positie.Y = 350.0f;
Kleuren Color(...) (0,255,0) (255,0,0) (0,0,255) (0,0,0) (255,255,0) (255,255,255) (0,255,255) (255,0,255) (0,0,255) (0,0,0)
Variabelen van het type Color Variabelenamen Color blueColor, greenColor, redColor, grayColor, whiteColor; blueColor = new Color(0, 0, 255); greenColor = new Color(0, 255, 0); redColor = new Color(255, 0, 0); grayColor = new Color(200, 200, 200); whiteColor = new Color(255, 255, 255); Declaraties Toekenningen We gebruiken `new’ voor niet-primitieve typen Informatie om de kleur te kunnen maken
Mengkleuren new Color(255, 0, 0) new Color(255, 64, 0)
Scope van een variabele In een methode: kan alleen in die methode gebruikt worden In een klasse: kan in alle methoden van de klasse gebruikt worden Die variabelen noemen we dan attributen of membervariabelen De plekken waar een variabele gebruikt kan worden noemen we de scope (het bereik) van een variabele