الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد كود التحريك بواسطة لوحة المفاتيح

مغلق
بدأه eias في 16 سبتمبر 2005 · 10 رد · 810 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم.الحقيقة لم أعرف ماهو الكود الخاص بتحريك عنصر صندوق صورة مثلا مثل Pic باستخدام لوحة المفاتيح بحيث تضغط السهم العلوي تتحرك الصورة للأعلى ..كيف أكتبها

بvb.net كنا نكتبها بالVb6 كــ KeyAscii ماهي الآن ..و إذا هناك طريقة تحريك بالDirect x

تكون بسيطة لا مشكلة بكون أفضل .

#2

يمكنك استخدام إما عنصر الدايركت انبت Direct Input من مكونات الدايركت اكس و هذا ارشحه لك في المستقبل

او استخدام دوال الويندوز لتنفيذ ذلك

using W32 API
if( ::GetAsyncKeyState(VK_DOWN) & 0x8000f )
{
// Events Happen Here
Pic.x+=10; .// advance x by 10
}

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

اظن ان دوال ويندوز ابسط من دوال Direct Input

فمثلا هذه الداله

GetAsyncKeyState

لها برامتر واحد الا وهو مفتاح لوحة المفاتيح واتلذي تريده انت , لنفرض انك تريد ان تحرك الشخصيه للامام فطبعا انت بحاجه للسهم الامامي الا وهو معرف كالتالي VK_UP

if( ::GetAsyncKeyState(VK_UP) & 0x8000f )

وبهذا فان هذه العباره معناها , اذا ضغط مفتاح السهم الامامي فافعل كذا كذا كذا

واظن انك تريد بعض الفيزياء البسيطه او التفكير البسيط , في التحريك

يعني يكفي ان تعطي امر بان احداثيات الجسم تزيد مقدار معين انت تريده

وبهذا كلما ضغط على مقتاح السهم الامامي فسوف تتقدم الشخصيه بالمقدرا الذي زدته انت

اتمنى ان تكون فهمت قصدي كما اظن ان شرحي هو شرح مفصل قليلا لما قاله االمشرف احمد

#4

هي مسألة عملية منطقية بعمل AND مع القيمة 0x8000f بالهكس فإن كانت خارج الضرب 1 ( صحيح ) إذن المفتاح VK_UP تم الضغط عليه و العكس 0 إن لم تضغط عليه .

1 AND 1 = 1

1 AND 0 = 0

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#5

نعم صحيح ,

بصراحه هذه النقطه كنت انساها دائما

شكرا على تذكيري

#6

اخي الكريم احمد صالح الحقيقة يبدو إنك كتبت كود ++C وكان سؤالي عن ال.NET(ليش مستعجل لاتخاف بكرا ما رح تفضا من أسألتي في ++C في الDirect x ^.^) .

أخي الكريم عامر علاء يبدو إنك وقعت بنفس خطأ الأخ أحمد صالح ..

التوبة اللعبة الأولى و الأخيرة بال .net بس خلونا نخلصها ..بقي كم كود فقط

#7

اخي هذه مجرد فكره ويجب ان تنفذها انت بلغة البرمجه التي تريدها

اذا فهمت الفكره التي شرحتها انا وشرحها الاخ احمد فيمكنك تطبيقها على اي لغه تريد

#9

والله اخي انا لا افقه شيئا ب vb.net

اتمنى ان تجد من يساعدك

#11

هههه :D

لا اظن انها محتاجه خبير فانت بهذا تجعلني خبير :D

هذا الموضوع مغلق.

مواضيع مشابهة