Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do I fix this infinite loop / StackOverFlow error?
    primarykey
    data
    text
    <p>I need to get a method from Form1, but when I call it, I get an infinite loop error. I am getting this because I am making a new GameManager class at the begining of Form1 and I am makeing a new Form1 in GameManager. How can I get a method from form1 into GameManager without getting this infinite loop error?</p> <p>Form1:</p> <pre><code>using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace CatAndMouse { public partial class Form1 : Form { GameManager myGM = new GameManager(); int dir = 0; public Form1() { InitializeComponent(); newGame(); } private void pictureBox1_Paint(object sender, PaintEventArgs e) { if (this.myGM != null) this.myGM.paint(e.Graphics); //e.Graphics.DrawImage(imgMouse.Images[0], pointXMouse, pointYMouse); //e.Graphics.DrawImage(imgCat.Images[0], 50, 100); //e.Graphics.DrawImage(imgCheese.Images[0], 75, 100); } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Up) { dir = 0; } if (e.KeyCode == Keys.Right) { dir = 1; } if (e.KeyCode == Keys.Down) { dir = 2; } if (e.KeyCode == Keys.Left) { dir = 3; } } public void newGame() { timer1.Start(); myGM.newGame(imgCat, imgMouse, imgCheese); } private void timer1_Tick(object sender, EventArgs e) { pictureBox1.Refresh(); } public int getDir() { return dir; } } } </code></pre> <p>GameManager:</p> <pre><code>using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace CatAndMouse { class GameManager { Form1 myForm = new Form1(); Cat ca1 = new Cat(); Mouse m = new Mouse(); Cheese ch = new Cheese(); int amount = 5; int catdir = 0; Timer time = new Timer(); public ImageList imgCat = new ImageList(); public ImageList imgMouse = new ImageList(); public ImageList imgCheese = new ImageList(); public void newGame(ImageList cat, ImageList mouse, ImageList cheese) { imgCat = cat; imgMouse = mouse; imgCheese = cheese; time.Start(); } public void move() { ca1.Move(amount); m.Move(amount); } public void paint(Graphics g) { g.DrawImage(imgCat.Images[0], ca1.getLocation()); } private void time_Tick(object sender, EventArgs e) { move(); getDir(); } public void getDir() { catdir = myForm.getDir(); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload