سؤال

ومرحبا أواجه صعوبة في تقديم بشكل صحيح العفريت مع SlimDX. ويلفت قليلا تحجيمها تماما مثل صافي الرسم DrawImageUnscaled يفعل. أنا لا تستخدم أي التحولات.

والتهيئة:

Vector2 position;
Sprite sprite;
Size size;
Texture texture;
sprite = new Sprite(Device);
string filename = /*some bitmap*/;
using (Image b = Bitmap.FromFile(filename))
  size = b.Size;

position = new Vector2(550, 230);
texture = Texture.FromFile(Device, filename);

والتقديم:

Device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0);
Device.BeginScene();
sprite.Begin(SpriteFlags.None);
sprite.Draw(texture, new Vector3(size.Width / 2, size.Height / 2, 0), new Vector3(position, 0), Color.White);
sprite.End();
Device.EndScene();

وتحرير: إذا كنت لا تعرف كيفية تصور تقديم الخطأ، وهنا هو ما أحصل على المقدمة والأدب (تجاهل أن اللون الأبيض، وانها مجرد شفافية PNG). لاحظ كيف يتم تحجيم الصورة الأولى خطأ تصحيح

هل كانت مفيدة؟

المحلول

هل من الممكن أن بطاقة الرسومات الخاصة بك لديه مشاكل رسم NPOT-القوام (عدم القدرة من اثنين). إذا كان الأمر كذلك، وزيادة حجم الملمس لPOT المقبل. هذا حل العديد من المشكلات الرسم بالنسبة لي (باستخدام SlimDX جدا).

وراجع للشغل ... أود أيضا أن تستخدم SlimDX ل2D بالعرض، ولكن لم الاستفادة من العفاريت، ولكن رسم كل الأشياء بأنها "البدائيون" واستخدام منطقة عازلة قمة الرأس. ربما هذا ويمكن أيضا أن يكون خيارا

نصائح أخرى

إضافة مزيج ألفا عند تهيئة والعفريت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top