Fórum Sharpgames
 
 
  Forum  Criação de Jogo...  Algoritmos  Retângulo!
Anterior Anterior
 
Próximo Próximo
Nova Entrada 25/3/2009 17:33
  zora
29 tópicos
9th Level Poster


Re: Retângulo! 

Cara, XNA tem 2 classes bases prontas para serem herdadas e extender elas como Componentes do teu jogo :

GameComponent e DrawableGameComponent : Estas Classes  se comportam como  pedaços de lógica que extendem o Game, no caso o Game1.

-GameComponent : assim como o Game, GameComponent possui métodos de Update , Initialize ,etc..., que funcionam exatamente como os mesmos do Game.

-DrawableGameComponent : exatamente como o GameComponent, porém extende o método Draw.

No construtor das duas classes, ela pede uma referência do teu Game, e tem uma propriedade chamada Game que retorna esta referência.

(Portanto, a não ser que tu esteja criando uma classe  completamente Nova, como o setherK , tu não precisa criar outra referência do Game nos atributos de classe... )

Para fazer um component funcionar ( gamecomponent e DrawableGameComponent ) , teu Game deve adicionar estes componentes' na Lista de Componentes dele, p/ fazer a chamada dos métodos Draw, Update, etc...

para fazer isso , no construtor da classe Game, tu instancia o teu GameComponent , e logo em seguida utiliza o método:

this.Components.Add(teuComponente); //Assim  o Update, Draw, initialize, será chamado exatamente como acontece na Ordem do XNA.

Caso o problema seja quanto à herança, sugiro tu dar uma lida sobre OOP , e as características da linguagem C#.

 
Nova Entrada 25/3/2009 18:01
  setherK
85 tópicos
3rd Level Poster


Re: Retângulo! 
Ótimo complemento do zora, ou seja, se for um gameComponent, use o Game.

Mas se for uma nova classe, use o meu método =)

FLW E VLW!

Meu site com Video-Aulas de Tutoriais: www.devtuts.com.br
 
Nova Entrada 25/3/2009 21:30
  Cloudwsy
31 tópicos
8th Level Poster


Re: Retângulo! 
Modificado Por Cloudwsy  em 25/3/2009 18:54:57)
Eu herdei a classe como drawableGameComponent!
fiz os métodos de update, load e draw, e na classe game coloquei o this.Components.Add(player);

No entanto, nada aparece na tela o_O
 
Nova Entrada 25/3/2009 22:32
  Cloudwsy
31 tópicos
8th Level Poster


Re: Retângulo! 

Eu descobri que tem algo errado com o método Draw, mas eu não sei o que está errado!

No método LoadContent da classe herdada do DrawableGameComponent , eu deixei assim:

protected override void LoadContent()
        {
            textura = jogo.Content.Load<Texture2D>("Person");
            spriteBatch = new SpriteBatch(GraphicsDevice);

            base.LoadContent();
        }

e no método Draw eu deixei assim:

public override void  Draw(GameTime gameTime)
        {
            spriteBatch.Begin();
            spriteBatch.Draw(this.textura, this.playerRect, Color.White);
            spriteBatch.End();

            base.Draw(gameTime);
        }

mas não da certo, quando eu dou o Debug nada aparece na tela, o Metodo Update funciona, pois eu fecho a janela como Escape, apenas esse está dando erro!
Quando eu faço o Draw na classe principal game, tudo funciona!
Agora minha cabeça travou!
Alguem me ajudeee!

 
Nova Entrada 26/3/2009 2:06
  lucianoJose
195 tópicos
Iniciante


Re: Retângulo! 
 Cloudwsy escreveu

Eu descobri que tem algo errado com o método Draw, mas eu não sei o que está errado!

No método LoadContent da classe herdada do DrawableGameComponent , eu deixei assim:

protected override void LoadContent()
        {
            textura = jogo.Content.Load("Person");
            spriteBatch = new SpriteBatch(GraphicsDevice);

            base.LoadContent();
        }

e no método Draw eu deixei assim:

public override void  Draw(GameTime gameTime)
        {
            spriteBatch.Begin();
            spriteBatch.Draw(this.textura, this.playerRect, Color.White);
            spriteBatch.End();

            base.Draw(gameTime);
        }

mas não da certo, quando eu dou o Debug nada aparece na tela, o Metodo Update funciona, pois eu fecho a janela como Escape, apenas esse está dando erro!
Quando eu faço o Draw na classe principal game, tudo funciona!
Agora minha cabeça travou!
Alguem me ajudeee!



Você tomou alguns cuidados como estes:

Adicionar o seu DrawableGameComponent na coleção de componentes do jogo, antes de chamar base.Initialize() ?

A propriedade Visible de seu DrawableGameComponent está 'setada' para true?

@lucianoJoseBr My Blog: http://lucjose.wordpress.com
 
Anterior Anterior
 
Próximo Próximo
  Forum  Criação de Jogo...  Algoritmos  Retângulo!
Logos do XBox 360, XNA e Games For Windows
Copyright 2006-2012 por SharpgamesPolítica de Privacidade  |  Termos de Uso