I am a beginner and i want to make a clicker game with an orange for android, but i get a null reference exception error, i search how to fix but still not working. This is my first question.
Here is my MainActivity.cs Code
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
private AutoOrange AutoOrangeScript;
public int oranges = 0;
int OPC = 1;
int upgradecost = 10;
int blendercost = 50;
public TextView orangestxt;
TextView opctext;
TextView opstext;
ImageButton orangebtn;
Button buyupgrade;
Button buyblender;
Timer Timerr;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
SetContentView(Resource.Layout.activity_main);
orangestxt = FindViewById<TextView>(OrangeClicker.Resource.Id.orangetext);
opctext = FindViewById<TextView>(OrangeClicker.Resource.Id.opctxt);
opstext = FindViewById<TextView>(OrangeClicker.Resource.Id.opstxt);
orangebtn = FindViewById<ImageButton>(OrangeClicker.Resource.Id.orangebtn);
buyupgrade = FindViewById<Button>(OrangeClicker.Resource.Id.buyupgrade);
buyblender = FindViewById<Button>(OrangeClicker.Resource.Id.buyblender);
orangebtn.Click += Orange_Click;
buyupgrade.Click += BuyUpgrade_Click;
buyblender.Click += BuyBlender_Click;
AutoOrangeScript.AutoOrangeTimer.Interval = 1000;
AutoOrangeScript.AutoOrangeTimer.Elapsed += new ElapsedEventHandler(AutoOrangeScript.AutoOrangeTimer_Tick);
Timerr.Elapsed += new ElapsedEventHandler(Timer_Tick);
Timerr.Interval = 100;
Timerr.Enabled = true;
buyupgrade.Text = "Upgrade Orange - " + upgradecost + " Oranges +1 Per Click";
buyblender.Text = "Buy Blender - " + blendercost + " Oranges +1 Per Second";
opctext.Text = "Oranges per click: " + OPC;
opstext.Text = "Oranges per click: " + AutoOrangeScript.OPS;
}
void Orange_Click(object sender, System.EventArgs e)
{
oranges += OPC;
orangestxt.Text = oranges + " Oranges";
}
void Timer_Tick(object source, ElapsedEventArgs e)
{
orangestxt.Text = oranges + " Oranges";
buyupgrade.Text = "Upgrade Orange - " + upgradecost + " Oranges +1 Per Click";
buyblender.Text = "Buy Blender - " + blendercost + " Oranges +1 Per Second";
opctext.Text = "Oranges per click: " + OPC;
opstext.Text = "Oranges per click: " + AutoOrangeScript.OPS;
}
void BuyUpgrade_Click(object sender, System.EventArgs e)
{
if (oranges >= upgradecost)
{
oranges -= upgradecost;
if (OPC > 10)
{
upgradecost += 20;
} else {
upgradecost += 10;
}
OPC += 1;
opctext.Text = "Oranges per click: " + OPC;
buyupgrade.Text = "Upgrade Orange - " + upgradecost + " Oranges +1 Per Click";
}
}
void BuyBlender_Click(object sender, System.EventArgs e)
{
if (oranges >= blendercost)
{
oranges -= blendercost;
AutoOrangeScript.OPS += 1;
AutoOrangeScript.AutoOrangeTimer.Enabled = true;
if (AutoOrangeScript.OPS > 10)
{
upgradecost += 20;
} else
{
upgradecost += 10;
}
opstext.Text = "Oranges per second: " + AutoOrangeScript.OPS;
buyblender.Text = "Upgrade Blender - " + blendercost + " Oranges +1 Per Second";
}
}
}
Here is my second code (AutoOrange.cs)
using System.Timers;
namespace OrangeClicker
{
public class AutoOrange
{
private MainActivity MainActivityScript;
public Timer AutoOrangeTimer;
public int OPS;
public void AutoOrangeTimer_Tick(object sender, System.EventArgs e)
{
MainActivityScript.oranges += OPS;
MainActivityScript.orangestxt.Text = MainActivityScript.oranges + "Oranges";
}
}
}
And here i get the error
AutoOrangeScript.AutoOrangeTimer.Interval = 1000; AutoOrangeScript.AutoOrangeTimer.Elapsed += new ElapsedEventHandler(AutoOrangeScript.AutoOrangeTimer_Tick);
Timerr.Elapsed += new ElapsedEventHandler(Timer_Tick); Timerr.Interval = 100; Timerr.Enabled = true;