c# - parse - Enteros del tamaño de la pantalla. DO#
random.next c# (0)
Resize.cs
una clase Resize.cs
y toma una imagen de la clase Images.cs
y encuentra el ancho y el alto de la imagen creando un nuevo entero para cada uno de los cuales tiene ancho y alto. También hago un cambio de tamaño para cambiar el tamaño de la imagen para que se ajuste a la pantalla.
public static int resize = 1;
public static int backgroundWidth = resize * Images.Background.Width;
public static int backgroundHeight = resize * Images.Background.Height;
Luego tomo el ancho y la altura y lo muevo a Game1.cs
(la clase principal) y en el public Game1()
. Cambio el ancho y el alto de la pantalla, eso funciona:
public static int 768;
public static int screenWidth = 1024;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
graphics.PreferredBackBufferHeight = screenHeight;
graphics.PreferredBackBufferWidth = screenWidth;
graphics.IsFullScreen = false;
graphics.ApplyChanges();
StartUp.Images.Content = Content;
}
A:
public static int screenHeight = StartUp.Resize.BackgroundHeight;
public static int screenWidth = StartUp.Resize.BackgroundWidth;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
graphics.PreferredBackBufferHeight = screenHeight;
graphics.PreferredBackBufferWidth = screenWidth;
graphics.IsFullScreen = false;
graphics.ApplyChanges();
StartUp.Images.Content = Content;
}
Pero no importa lo que haga, el Program.cs (que nunca toco) aparece con un error: (Esto solo sucede cuando inicio el programa, dirá que está listo antes y después de que el programa se inicie y finalice)
TypeInitializationException no se manejó El tipo de inicializador para ''Love__Regret.Game1'' lanzó una excepción.
using System;
namespace **
{
#if WINDOWS || XBOX
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main(string[] args)
{
using (Game1 game = new Game1())
{
game.Run();
}
}
}
#endif
}
Al final, mi objetivo es cambiar el tamaño de la pantalla a voluntad dentro del programa. (porque si 2 computadoras con diferentes tamaños de pantalla usan el programa, debería quedar bien en ambas)
Inserté los números regulares alto = 100 y ancho = 157, funcionaron bien y cambiaron el tamaño de la pantalla como debería.
Images.cs
:
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 **.StartUp
{
class Images
{
#region Define
public static ContentManager Content;
//TitleScreen
public static Texture2D Background;
public static Texture2D Continue;
public static Texture2D Credits;
public static Texture2D Exit;
public static Texture2D Logo;
public static Texture2D Options;
public static Texture2D Play;
public static Texture2D Version;
//End
//Options
public static Texture2D OptionsLogo;
public static Texture2D OffNotSelected;
public static Texture2D OffSelected;
public static Texture2D OnNotSelected;
public static Texture2D OnSelected;
public static Texture2D FullScreen;
public static Texture2D Menu;
public static Texture2D Music;
public static Texture2D SliderBackground;
public static Texture2D Slider;
public static Texture2D SoundFX;
//End
#endregion
#region Load
public static void Load()
{
Background = Content.Load<Texture2D>(@"Images/StartUp/Background");
Continue = Content.Load<Texture2D>(@"Images/StartUp/Continue");
Credits = Content.Load<Texture2D>(@"Images/StartUp/Credits");
Exit = Content.Load<Texture2D>(@"Images/StartUp/Exit");
FullScreen = Content.Load<Texture2D>(@"Images/StartUp/FullScreen");
Logo = Content.Load<Texture2D>(@"Images/StartUp/Logo");
Menu = Content.Load<Texture2D>(@"Images/StartUp/Menu");
Music = Content.Load<Texture2D>(@"Images/StartUp/Music");
OffNotSelected = Content.Load<Texture2D>(@"Images/StartUp/OffNotSelected");
OffSelected = Content.Load<Texture2D>(@"Images/StartUp/OffSelected");
OnNotSelected = Content.Load<Texture2D>(@"Images/StartUp/OnNotSelected");
OnSelected = Content.Load<Texture2D>(@"Images/StartUp/OnSelected");
Options = Content.Load<Texture2D>(@"Images/StartUp/Options");
OptionsLogo = Content.Load<Texture2D>(@"Images/StartUp/OptionsLogo");
Play = Content.Load<Texture2D>(@"Images/StartUp/Play");
Slider = Content.Load<Texture2D>(@"Images/StartUp/Slider");
SliderBackground = Content.Load<Texture2D>(@"Images/StartUp/SliderBackground");
SoundFX = Content.Load<Texture2D>(@"Images/StartUp/SoundFX");
Version = Content.Load<Texture2D>(@"Images/StartUp/Version");
}
#endregion
#region Method
#endregion
}
}
Game1.cs
las imágenes aquí (en Game1.cs
):
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
StartUp.Images.Load();
font1 = Content.Load<SpriteFont>(@"Fonts/Font1");
}