29 Nisan 2009 Çarşamba

XNA DE MODELIN RENGINI DEGISTIRMEK

Modelleri herhangi bir programdan Xna e aldigimiz zaman model tipki tasarladigimiz renklerdedir.Cunku herhangi bir renk degisimi vermedik ve DiffuseColoru default olarak White dir.

Bir modeli cizim aninda rengini degistirmemiz icin

effect.DiffuseColor=Red; kod parcasini modeli cizdirdigimiz koda ekloemeliyiz.Ornegin bir bina diger binayla kesisiyorsa rengini kirmizi yapip bunu kullaniciya belirtmek istiyoruz.

 

Ana kod ekraninda

 

If(building.Kesisiyormu(AllBuildings))

                                                             

Building.color=Color.Red;

else

                                                             

Building.color=Color.White;

 

public void DrawBuilding(Building b, Vector3 pos)

        {

            

 

            foreach (ModelMesh mesh in b.model.Meshes)

            {

 

                foreach (BasicEffect effect in mesh.Effects)

                {

                    effect.EnableDefaultLighting();

                   

effect.PreferPerPixelLighting = true;

                   

effect.DiffuseColor = b.buildingcolor;

                  

 effect.World = Matrix.CreateScale(b.scale)*Matrix.CreateFromYawPitchRoll(b.rotation.X, b.rotation.Y,b.rotation.Z) * Matrix.CreateTranslation(pos)  ;

                    

effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), aspect, 1, 10000.0f);

                  

 effect.View = Matrix.CreateLookAt(cameraview, lookAt, Vector3.Up);

                }

               

mesh.Draw();

            }

        }

Hiç yorum yok:

Yorum Gönder