private void Awake() { //Human driver with jet engine bike IEngine jetEngine = new JetEngine(); IDriver humanDriver = new HumanDriver(); m_PlayerBike.SetEngine(jetEngine); m_PlayerBike.SetDriver(humanDriver); m_PlayerBike.StartEngine(); //Android driver with nitro engine IEngine nitroEngine = new NitroEngine(); IDriver androidDriver = new AndroidDriver(); m_AndroidBike.SetEngine(nitroEngine); m_AndroidBike.SetDriver(androidDriver); m_AndroidBike.StartEngine(); //Fish driver with wood engine IEngine woodEngine = new WoodEngine(); IDriver fishDriver = new FishDriver(); m_FishBike.SetEngine(woodEngine); m_FishBike.SetDriver(fishDriver); m_FishBike.StartEngine(); //Mirror driver with coal engine IEngine coalEngine = new CoalEngine(); IDriver mirrorDriver = new MirrorDriver(); m_MirrorBike.SetEngine(coalEngine); m_MirrorBike.SetDriver(mirrorDriver); m_MirrorBike.StartEngine(); }
/// <summary> /// Raises the <see cref="E:RequestScreenshotMessageReceived"/> event. /// </summary> /// <param name="e">The <see cref="Network.MessageEventArgs<Network.Messages.LiveControl.RequestScreenshotMessage>"/> instance containing the event data.</param> private void OnRequestScreenshotMessageReceived(MessageEventArgs <RequestScreenshotMessage> e) { if (!DoesMirrorDriverExist()) { var dialogResult = MessageBox.Show( "You either don't have the DemoForge mirror driver installed, or you haven't restarted your computer after the installation of the mirror driver. Without a mirror driver, this application will not work. The mirror driver is responsible for notifying the application of any changed screen regions and passing the application bitmaps of those changed screen regions. Press 'Yes' to directly download the driver (you'll still have to install it after). You can visit the homepage if you'd like too: http://www.demoforge.com/dfmirage.htm", "Mirror Driver Not Installed", MessageBoxButtons.YesNo, MessageBoxIcon.Error); if (dialogResult == DialogResult.Yes) { Process.Start("http://www.demoforge.com/tightvnc/dfmirage-setup-2.0.301.exe"); } MessageBox.Show("The application will now exit.", "Missing Required Component", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } if (MirrorDriver.State != DesktopMirror.MirrorState.Running) { // Most likely first time // Start the mirror driver MirrorDriver.Load(); MirrorDriver.Connect(); MirrorDriver.Start(); Bitmap screenshot = MirrorDriver.GetScreen(); var stream = new MemoryStream(); screenshot.Save(stream, ImageFormat.Png); SendFragmentedBitmap(stream.ToArray(), Screen.PrimaryScreen.Bounds); } else if (MirrorDriver.State == DesktopMirror.MirrorState.Running) { Trace.WriteLine(String.Format("Received RequestScreenshotMessage.")); // Send them the list of queued up changes var regions = (List <Rectangle>)GetOptimizedRectangleRegions(); Bitmap screenshot = MirrorDriver.GetScreen(); if (regions.Count == 0) { Network.SendMessage(new ResponseEmptyScreenshotMessage(), NetDeliveryMethod.ReliableOrdered, 0); return; } for (int i = 0; i < regions.Count; i++) { if (regions[i].IsEmpty) { continue; } Bitmap regionShot = null; try { regionShot = screenshot.Clone(regions[i], PixelFormat.Format16bppRgb565); } catch (OutOfMemoryException ex) { Trace.WriteLine("OutOfMemoryException"); } var stream = new MemoryStream(); regionShot.Save(stream, ImageFormat.Png); SendFragmentedBitmap(stream.ToArray(), regions[i]); } } }
public bool DoesMirrorDriverExist() { return(MirrorDriver.DriverExists()); }