Fórum Sharpgames
 
 
  Forum  Criação de Jogo...  Gráficos 2D/3D  duas imagens iguais
Anterior Anterior
 
Próximo Próximo
Nova Entrada 6/6/2008 20:37
Não-resolvido
  joqus
57 tópicos
6th Level Poster




duas imagens iguais 
olah, tenho uma dúvida, como faço pra poder mostrar duas imagens q saum iguais ao mesmo tempo e tem a mesma fonte, 

quando eu repinto uma, a outra desaparece!

ehehehehehhehehehehe

tipo assim: tenho uma arma, ai disparo um tiro,
enquanto a bala ainda naum atingiu o alvo
eu disparo de novo, mas ai aquela imagem q
estava indo desaparece e uma nova eh 
desenhada na tela!

como faço pra mostrar as duas?/

vlew!

as coisas acontecem de um jeito próprio a cada iteração, por mais identicas q pareçam!!!
 
Nova Entrada 6/6/2008 23:33
  lucianoJose
194 tópicos
Iniciante


Re: duas imagens iguais 
Eu construi um simples exemplo que faz isso que você tá tentando fazer. Se você nao entendeu o código, você avisa o que não entendeu:

Este exemplo pode mostrar duas imagens, que são iguais, ao mesmo tempo. E também, tem a mesma fonte de imagem.

public class Sprite
    {
        public SpriteBatch SpriteBatch;
 
        public Rectangle Rectangle;
        public Texture2D Texture;
        public Color Color;
 
        public void Draw(GameTime gameTime)
        {
            this.SpriteBatch.Draw(this.Texture, this.Rectangle, this.Color);
        }
    }
 
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        private GraphicsDeviceManager graphics;
 
        private SpriteBatch spriteBatch;
 
       private Sprite minhaBala1;
       private Sprite minhaBala2;
 
        ///<summary>
        /// Essa será a mesma imagem utilizada, e os objetos minhaBala1 e minhaBala2,
        /// terão como fonte de imagem, este objeto.
        ///</summary>
        private Texture2D imagemDaBala;
 
        public Game1()
        {
            this.graphics = new GraphicsDeviceManager(this);
            this.Content.RootDirectory = "Content";
        }
 
        protected override void Initialize()
        {
            base.Initialize();
        }
 
        protected override void LoadContent()
        {
            this.spriteBatch = new SpriteBatch(GraphicsDevice);          
 
            this.imagemDaBala = this.Content.Load<Texture2D>("bala");
 
            this.minhaBala1.SpriteBatch = this.spriteBatch;
            this.minhaBala2.SpriteBatch = this.spriteBatch;
 
            this.minhaBala1.Texture = this.imagemDaBala;
            this.minhaBala2.Texture = this.imagemDaBala;
        }
 
        protected override void Update(GameTime gameTime)
        {
            //atualizações da bala1
 
            //atualizações da bala2
 
            base.Update(gameTime);
        }
 
        protected override void Draw(GameTime gameTime)
        {
            this.graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
 
            this.spriteBatch.Begin();
 
            this.minhaBala1.Draw(gameTime);
            this.minhaBala2.Draw(gameTime);
 
            this.spriteBatch.End();
 
            base.Draw(gameTime);
        }
    }

Administrador do SharpGames.
 
Nova Entrada 9/6/2008 16:26
  joqus
57 tópicos
6th Level Poster




Re: duas imagens iguais 
ok, eu entendi o seu exemlo,
mas e se eu quiser desenhar um
número indefinido de imagens?
Eu poderia fazer uma lista dinâmica de 
"Sprite" e a cada ação q necessite 
desenhar uma nova bala eu criaria uma nova 
instância dela.
Será q funcionaria?

vlew pelo exemplo, mt bom!!

as coisas acontecem de um jeito próprio a cada iteração, por mais identicas q pareçam!!!
 
Nova Entrada 9/6/2008 22:29
  lucianoJose
194 tópicos
Iniciante


Re: duas imagens iguais 
 joqus escreveu
ok, eu entendi o seu exemlo,
mas e se eu quiser desenhar um
número indefinido de imagens?
Eu poderia fazer uma lista dinâmica de 
"Sprite" e a cada ação q necessite 
desenhar uma nova bala eu criaria uma nova 
instância dela.
Será q funcionaria?

vlew pelo exemplo, mt bom!!


Por exemplo, você quer que a imagem que vai ser representada por este objeto abaixo, seja a mesma para cada nova bala adicionada à lista de Sprites.

private Texture2D imagemDaBala;

Supondo que você tenha algum  Manager para gerenciamento das balas. Então, possivelmente haverá um metodo do tipo: AddBala

Esse metodo AddBala adiciona uma bala para a lista de Sprites, por exemplo.

Dai é só quando vc chamar o método AddBala, você adicionar a textura imagemDaBala para a nova bala.

Administrador do SharpGames.
 
Anterior Anterior
 
Próximo Próximo
  Forum  Criação de Jogo...  Gráficos 2D/3D  duas imagens iguais
Novatec
Promoção Novatec
Logos do XBox 360, XNA e Games For Windows
Copyright 2010 por SharpgamesPolítica de Privacidade  |  Termos de Uso