Creating an update method in a different class
- by Sweta Dwivedi
I have created a class called 3D model which will animate my 3D model by changing the model position according to the values based in a .txt file through a list... Since i'm using a foreach loop to read the point values when it reaches the end of the file.. XNA throws an out of bounds exception .. (which is obvious) but if i add the same code in my Game.cs update(gameTime) method.. then i dont have this problem..Any idea how to make my 3D model update work same as the update in game.cs ..
Here is the code for some idea:
public void patterns(GameTime gameTime)
{
motion_z = new List<Point3D>();
if (pattern == 1)
{
f = "E:/Motion_Track-output/Output1.txt";
}
if (pattern == 2)
{
f = "E:/Motion_Track-output/cruse.txt";
}
// TODO: Add your update logic here
using (StreamReader r = new StreamReader(f))
{
string line;
//Viewport view = graphics.GraphicsDevice.Viewport;
int maxWidth = view.Width;
int maxHeight = view.Height;
while ((line = r.ReadLine()) != null)
{
string[] temp = line.Split(',');
int x = (int)Math.Floor(((float.Parse(temp[0]) * 0.5f) + 0.5f) * maxWidth);
int y = (int)Math.Floor(((float.Parse(temp[1]) * -0.5f) + 0.5f) * maxHeight);
int z = (int)Math.Floor(((float.Parse(temp[2]) / 4 * 20000)));
motion_z.Add(new Point3D(x, y, z));
}
modelPosition.X = (float)(motion_z[i].X);
modelPosition.Y = (float)(motion_z[i].Y);
modelPosition.Z = (float)(motion_z[i].Z);
i++;
}
//Console.WriteLine("modelposX:" + modelPosition.X + "," + "motionzX:" + motion_z[i].X);
}