When i run this code, it gives me "Object reference not set to an instance of an object." here
clickableArea.Add(temp);
here is the entire class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace ScreenManager
{
class Menu
{
public List<string> MenuItems;
private List<Vector2> Position;
private int iterator;
public string InfoText { get; set; }
public string Title { get; set; }
public List<Rectangle> clickableArea;
public int Iterator
{
get
{
return iterator;
}
set
{
iterator = value;
if (iterator > MenuItems.Count - 1) iterator = MenuItems.Count - 1;
if (iterator < 0) iterator = 0;
}
}
public Menu()
{
Title = "Title";
MenuItems = new List<string>();
MenuItems.Add("New Game");
MenuItems.Add("Options");
MenuItems.Add("Exit Game");
Iterator = 0;
InfoText = string.Empty;
}
public int GetNumberOfOptions()
{
return MenuItems.Count;
}
public string GetItem(int index)
{
return MenuItems[index];
}
public void DrawMenu(SpriteBatch batch, int screenWidth, SpriteFont arial)
{
batch.Begin();
Vector2 FontOrigin = arial.MeasureString(Title) / 2;
batch.DrawString(arial, Title, new Vector2(screenWidth / 2 - arial.MeasureString(Title).X / 2, 20), Color.LightGreen, 0, FontOrigin, 1.0f, SpriteEffects.None, 0.5f);
int yPos = 100;
for (int i = 0; i < GetNumberOfOptions(); i++)
{
Rectangle temp;
Color colour = Color.White;
if (i == Iterator)
{
colour = Color.Gray;
}
batch.DrawString(arial, GetItem(i), new Vector2(screenWidth / 2 - arial.MeasureString(GetItem(i)).X / 2, yPos), colour);
int reclengthX = (int)arial.MeasureString(MenuItems[i]).X;
int reclengthY = (int)arial.MeasureString(MenuItems[i]).Y;
int recposX = (int)(screenWidth / 2 - arial.MeasureString(MenuItems[i]).X / 2);
temp = new Rectangle(reclengthX, reclengthY, recposX, yPos);
clickableArea.Add(temp);
yPos += 50;
}
batch.End();
}
public void DrawEndScreen(SpriteBatch batch, int screenWidth, SpriteFont arial)
{
batch.DrawString(arial, InfoText, new Vector2(screenWidth / 2 - arial.MeasureString(InfoText).X / 2, 300), Color.White);
string prompt = "Press Enter to Continue";
batch.DrawString(arial, prompt, new Vector2(screenWidth / 2 - arial.MeasureString(prompt).X / 2, 400), Color.White);
}
}
}