Non cominciamo a parlare difficile.
eventhandler?
La gestione della tastiera è addebitata al metodo KeyControl() in Updatr() nel file My.cs e richiama il metodo Ctrls della struttura Discovery (l'astronave) nel file Discovery.cs.
Ecco le parti salienti dei due files:
My.cs:
Discovery.cs:codice:namespace Progetto_Albireo { public class My : Microsoft.Xna.Framework.Game { //Generals public static GraphicsDeviceManager Graphicsdevicemanager; #if WIDE public static int RisX, RisY; #else public static int RisX = 1350; public static int RisY = 650; #endif RenderTarget2D renderTarget; Texture2D shadowMap; MemoryStream stream = new MemoryStream(); .......... //Discovery public static Discovery Discovery = new Discovery(new Vector3(0f, 0f, 30000f), //Position -Vector3.UnitZ, //Go 10f, //Speed -Vector3.UnitZ, //To Vector3.Up); //Up .......... public static bool PhotoMode = false; .......... public void KeyControl() { KeyState = Keyboard.GetState(); if ((KeyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Escape)) & (OldState != KeyState)) this.Exit(); if (OldState != KeyState) Discovery.Ctrls(KeyState); OldState = KeyState; } public My() { Graphicsdevicemanager = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { .......... shadowMap = new Texture2D(GraphicsDevice, RisX, RisY); PresentationParameters pp = GraphicsDevice.PresentationParameters; renderTarget = new RenderTarget2D(GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, false, GraphicsDevice.DisplayMode.Format, DepthFormat.Depth24); base.Initialize(); } protected override void LoadContent() { .......... } protected override void Update(GameTime gametime) { .......... KeyControl(); //DISCOVERY Discovery.Move(); } protected override void Draw(GameTime gametime) { if (PhotoMode) GraphicsDevice.SetRenderTarget(renderTarget); .......... if (PhotoMode) { GraphicsDevice.SetRenderTarget(null); shadowMap = (Texture2D)renderTarget; shadowMap.SaveAsJpeg(stream, RisX, RisY);//o SaveAsPng() System.Drawing.Bitmap b = new System.Drawing.Bitmap(stream); b.Save(@"C:\frame.bmp"); PhotoMode = false; } } } }
codice:namespace Progetto_Albireo { public struct Discovery { //principali public Vector3 Position; public Vector3 Go; public float Speed; public Vector3 To; public Vector3 Up; .......... public Discovery(Vector3 P, Vector3 G, float S, Vector3 T, Vector3 U) { .......... } .......... public void Ctrls(KeyboardState KeyState) { .......... if (KeyState.IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Space)) { if (My.PhotoMode) My.PhotoMode = false; else My.PhotoMode = true; } ..........



Rispondi quotando