Как решить следующее исключение ? (Наследование, WinForms, C#)

В данный момент разрабатываю проект по проекту 2d Side Scrolling Game или проще говоря, что-то похожее на игру Марио. Проект обязательно должен был быть выполнен в Windows Form Application. Поэтому в архитектуре проекта было решено совершить следующее. Создать две формы. Один для механик, а другой для уровня. Форма с механиками наследует от Form, а форма Level_1 (в данном конкретном случае рассмотрим для первого уровня лишь) наследует от формы с механиками, назовём его Mechanics. Так вот, вся идея этого заключается в том, что когда создается форма Level_1 по умолчанию создается его родитель Mechanics. А это как бы шаблонный форм, то есть все его параметры изначально не проинициализированы, а инициализируются уже в конструкторе класса предка, то есть Level_1, объектами их второго. То есть рассмотрим объект игрока, это PictureBox, в форме Mechanics создаётся пустой PixtureBox, а в форме Mechanics этот же объект получает значение объекта из Level_1, который будет соответствовать игроку в Level_1.

Теперь сама проблема. Получаю следующее исключение, которое появляется когда пытаюсь посмотреть окно дизайна формы Level_1. Подскажите что не так и как исправить.

System.NullReferenceException: Object reference not set to an instance of an object. at My_Mario_Beta_v1.Mechanics.Gametime_Tick(Object sender, EventArgs e) at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)

Оставлю код на всякий случай тут. Уточнено: Код в целом большой, я конкретно не знаю какая часть для решения проблемы будет нужна, поэтому добавлю при надобности.

    public partial class Mechanics : Form
    {
        bool isLeft = false, isRight = false, isJumping = false, gotKey = false;
        int jumpSpeed = 14;
        int force = 10;
        int score = 0;
        const int playerSpeed = 8;
        const int backgroundSpeed = 10;
       public int lifeNum;
        bool hasImmune = false;
        const int ghostSpeed = 4;
        bool returned = false; // false is left, true is right
        const int NS = 70; //NS is number of steps
        int count = NS;
        int timerTicks = 0;
        public PictureBox player;
        Label txtScore;
        PictureBox background;
        PictureBox key;
        PictureBox door_closed;
        PictureBox heart1, heart2, heart3;
        public Mechanics()
        {
            Gametime.Start();
            
            InitializeComponent();
        }
        //body

    }
 public partial class Level_1 : Mechanics
    {
        public Level_1(int heartnum = 3)
        {
            this.player = this.Player1;
            this.lifeNum = heartnum;
            InitializeComponent();
        }
        // body
     }


Ответы (0 шт):