Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C#-Quelltext |
|
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using Microsoft.Xna.Framework.GamerServices; namespace TeamPlatformer { public delegate void ScreenChangeEventHandler(); public class TeamPlatformer : Game { public event ScreenChangeEventHandler ExitHandler; GraphicsDeviceManager graphics; SpriteBatch spriteBatch; ScreenManager screenManager; public TeamPlatformer() : base() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { screenManager = new ScreenManager(this); ExitHandler += screenManager.onExit; base.Initialize(); } protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); } protected override void UnloadContent() { } protected override void Update(GameTime gameTime) { if (Keyboard.GetState().IsKeyDown(Keys.Escape)) ExitHandler(); base.Update(gameTime); } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); base.Draw(gameTime); } } } |
C#-Quelltext |
|
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 32 33 34 35 36 37 38 39 40 41 42 43 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; namespace TeamPlatformer { class ScreenManager : DrawableGameComponent { public ScreenManager(Game game): base(game) { } protected override void LoadContent() { base.LoadContent(); } protected override void UnloadContent() { base.UnloadContent(); } public override void Update(GameTime gameTime) { base.Update(gameTime); } public void onExit() { Game.Exit(); } public override void Draw(GameTime gameTime) { base.Draw(gameTime); } } } |
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ich finde es gibt sogar sehr viele Anwendungsfälle für Events bei Spielen:
- reagiere auf UI-Controls
- reagiere auf Keyboard-Input
- reagiere auf Physik-Events (Kollisionen z.B.)
- reagiere auf Timer
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ändert nichts daran, dass es Events sind. In den meisten Anwendungsfällen gibt es tatsächlich nur einen einzigen Interessenten an einem Event.Selbst auf UI-Control-Events wie Click reagiert doch meist eh nur ein Listener.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Und wenn man statt dem Event ein Methodenaufruf macht geht einem die Steuerbarkeit, Konsistenz und die bessere Übersichtlichkeit flöten, die man mit Events hat.
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Werbeanzeige