public static Map loadWrl(string name) { Map map = new Map(); System.IO.FileStream str1 = new System.IO.FileStream(name, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite); BinaryReader inf = new System.IO.BinaryReader(str1); map.name = new string(inf.ReadChars(5)); map.w = inf.ReadInt16(); map.h = inf.ReadInt16(); map.minimap = inf.ReadBytes(map.w * map.h); byte[] bytes = inf.ReadBytes(map.w * map.h * 2); map.map = new short[map.w * map.h]; Buffer.BlockCopy(bytes, 0, map.map, 0, map.w * map.h * 2); map.elementCount = inf.ReadInt16(); map.mapElements = new byte[map.elementCount][]; for (int i = 0; i < map.elementCount; i++) map.mapElements[i] = inf.ReadBytes(64 * 64); map.palette = inf.ReadBytes(pal_size); map.groundType = inf.ReadBytes(map.elementCount); return map; }
public Camera(Map map) { scale = 1.0f; mapBounds.X = mapBounds.Y = 0; mapBounds.Width = map.w * 64; mapBounds.Height = map.h * 64; w = map.w; h = map.h; //FIXME- add scale visibleMapBounds.Width = visibleMapBounds.X + (int)GameConfiguration.ScreenResolution.X; visibleMapBounds.Height = visibleMapBounds.Y + (int)GameConfiguration.ScreenResolution.Y; basicVisibleMapBounds.Width = (int)GameConfiguration.ScreenResolution.X; basicVisibleMapBounds.Height = (int)GameConfiguration.ScreenResolution.Y; float scaleMinBoundX,scaleMinBoundY; scaleMinBoundX = GameConfiguration.ScreenResolution.X / (map.w * 64); scaleMinBoundY = GameConfiguration.ScreenResolution.Y / (map.h * 64); scaleMinBound = scaleMinBoundX > scaleMinBoundY ? scaleMinBoundX : scaleMinBoundY; scaleMinBound = scaleMinBound < GameConfiguration.scaleFullMin ? GameConfiguration.scaleFullMin : scaleMinBound; correctScreen(); }
protected override void Initialize() { GameConfiguration.ScreenBounds = this.Window.ClientBounds; GameConfiguration.ScreenResolution = new Vector2(this.GraphicsDevice.Viewport.Width, this.GraphicsDevice.Viewport.Height); // TODO: Add your initialization logic here base.Initialize(); //graphics.IsFullScreen = true; device = this.GraphicsDevice; mouseManager = new MouseManager(); map = Tools.MaxRes.loadWrl(SystemConfiguration.AppPath + "\\data\\maps\\Snow_5.wrl"); map.mapDraw = new GraphicMap(map); Animator.Instance.AddAObject(map, map.AddFrame, 150.0); GraphicMap.mapShader.Parameters["ViewportSize"].SetValue(GameConfiguration.ScreenResolution); map.clearLoadData(); AIREXPLD = maxres.loadMultiImage("TANK"); camera = new Camera(map); userInterface = new UI.UIManager(Game1.device); CashedTexture2D t2d = ImageCache.Instance.GetImage("ENDGAME6",TextureType.Paletted); UI.UIMenu menu = new UI.UIMenu(new Rectangle(100, 100, 55, 32)); userInterface.maincontrol.AddChild(menu); UI.UIFixedStateButton button = new UI.UIFixedStateButton(new Rectangle(0, 0, 55, 16), menu); button.SetIdleImage(new ImagePart(ImageCache.Instance.GetImage("AMMO_OF", TextureType.Simple), null)); button.SetPressedImage(new ImagePart(ImageCache.Instance.GetImage("AMMO_ON", TextureType.Simple), null)); UI.UIButton button1 = new UI.UIButton(new Rectangle(0, 16, 55, 16), menu); button1.SetIdleImage(new ImagePart(ImageCache.Instance.GetImage("AMMO_OF", TextureType.Simple), null)); button1.SetPressedImage(new ImagePart(ImageCache.Instance.GetImage("AMMO_ON", TextureType.Simple), null)); UI.UILabel label = new UI.UILabel(new Rectangle(52, 33, 100, 100)); label.Font = UI.UIFontHelper.CourierNew12RegularBold; label.Text = "test text"; label.Color = Color.Red; userInterface.maincontrol.AddChild(label); }