user2727653
user2727653

Reputation: 7

This method does not accept null for this parameter

I wanted to make a game for a pet care for windows phone 7 but Im having problem whit this it tell me that I have a null method but I don't know why I have a enum From each State in the game.

here is a picture of the message: http://crystalnix.deviantart.com/art/XNa-Problem-396626207?ga_submit_new=10%253A1377747418

This is the main File.

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Input.Touch;
using Microsoft.Xna.Framework.Media;
using Mochi_Mochi_Pets_Life.Script.Screen;

namespace Mochi_Mochi_Pets_Life
{

public class MainFile : Microsoft.Xna.Framework.Game
{
    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;
    ScreenStates screentState;

    Rectangle TouchS_Y_X;

    Logo logo;
    Menu0 menu;
    Choose_Pets choose_pets;
    ScreenStates.CurrentGameState GameState;

    public MainFile()
    {
        graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";
        Content.RootDirectory = "Script\\Screen";

        choose_pets = new Choose_Pets();

        this.screentState = new ScreenStates();
        this.logo = new Logo(GraphicsDevice);
        this.menu = new Menu0();
        // Frame rate is 30 fps by default for Windows Phone.
        TargetElapsedTime = TimeSpan.FromTicks(333333);

        // Extend battery life under lock.
        InactiveSleepTime = TimeSpan.FromSeconds(1);

        GameState = ScreenStates.CurrentGameState.Logo;


    }


    protected override void Initialize()
    {
        choose_pets.Initialize_choosepets();
        // TODO: Add your initialization logic here
        base.Initialize();
    }


    protected override void LoadContent()
    {
        TouchS_Y_X = new Rectangle(0, 0, 1, 1);
        // Create a new SpriteBatch, which can be used to draw textures.
        spriteBatch = new SpriteBatch(GraphicsDevice);

        if (GameState == ScreenStates.CurrentGameState.Logo)
            this.logo.Load(this.Content, this.GraphicsDevice);

        if (GameState == ScreenStates.CurrentGameState.Menu)
            this.menu.Load_Menu(GraphicsDevice, Content);

        if (logo.FadeOut_logo == true)
            GameState = ScreenStates.CurrentGameState.Menu;

        if (GameState == ScreenStates.CurrentGameState.CharactersChooser)
        this.choose_pets.Load_ChoosePet(this.Content, this.GraphicsDevice);
        // TODO: use this.Content to load your game content here
    }


    protected override void UnloadContent()
    {
        // TODO: Unload any non ContentManager content here
        //this.logo.Unload_logo(Content);
    }


    protected override void Update(GameTime gameTime)
    {

        // Allows the game to exit
        if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            this.Exit();

                    if (GameState == ScreenStates.CurrentGameState.Logo)
                logo.Update_logo(gameTime);


                    if (GameState == ScreenStates.CurrentGameState.CharactersChooser)
                    choose_pets.Update_petchoose(gameTime);

        // TODO: Add your update logic here

        base.Update(gameTime);
    }


    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.Black);

        spriteBatch.Begin();

                    if (GameState == ScreenStates.CurrentGameState.Logo)
                        logo.Draw(spriteBatch);

                    if (logo.FadeOut_logo == true)
                        menu.Draw_Menu(spriteBatch);

                    if (GameState == ScreenStates.CurrentGameState.CharactersChooser)
                        choose_pets.Draw_petChoose(spriteBatch);

        spriteBatch.End();
        base.Draw(gameTime);
    }
}
}

And This one is the Menu that is giving me the problems

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Content;

    namespace Mochi_Mochi_Pets_Life
    {
class Menu0
{
    Texture2D Text2D_Background;
    Rectangle Rec_Background;

    Texture2D ButtonText2DPlay;
    Rectangle ButtonRecPlay;


    public void Load_Menu(GraphicsDevice Graphics_Menu, ContentManager Content_Menu)
    {
        Content_Menu.RootDirectory = "Content"; 

        Text2D_Background = Content_Menu.Load<Texture2D>("UI\\MenuBack");
        Rec_Background = new Rectangle(0, 0, Graphics_Menu.Viewport.Width,                 Graphics_Menu.Viewport.Height);

        ButtonText2DPlay = Content_Menu.Load<Texture2D>("UI\\Buttons\\New Games");
        ButtonRecPlay = new Rectangle(Graphics_Menu.Viewport.Width, 400, 150, 40);
    }


    public void Draw_Menu(SpriteBatch Spritebatch_Menu)
    {
        Spritebatch_Menu.Draw(Text2D_Background, Rec_Background, Color.White);
        Spritebatch_Menu.Draw(ButtonText2DPlay, ButtonRecPlay, Color.White);
    }
}
    }

Ok what this does is that when my logo Fade is == true the Game State Jump to Main Manu but it never happen always error I will appreciate your help..

Upvotes: 0

Views: 321

Answers (2)

pinckerman
pinckerman

Reputation: 4213

I think your Text2D_Background is null, and that's because you never call Load_Menu. You check gameState in LoadContent, and it returns false.

if (GameState == ScreenStates.CurrentGameState.Menu)

LoadContent is called only once, I can't understand why you check gameState value.

Upvotes: 0

Blau
Blau

Reputation: 5762

Loading_Menu is never called, so the texture Text2D_Background is always null

You should realize that LoadContent is called only in game initalization, so comparing gamestate there is useless, because only will load Logo content.

As solution you can load all content at initalization, or you can load it when gamestate changes if needed content was not loaded before

Upvotes: 1

Related Questions