مساعدة حول تحكم بالاعب
صفحة 1 من اصل 2 • شاطر
صفحة 1 من اصل 2 • 1, 2
مساعدة حول تحكم بالاعب
السلام عليكم ورحمة الله تعالى وبركاته
أريد مساعدة بخصوص حركة لاعب فأنا أريد إذا كان الضغط على الفأرة من يمين اللاعب سيلتفت ويتحرك لليمين
وإذا ضغط من يسار اللاعب سيلتفت ويتحرك إلى اليسار
ونفس الأمر مع الجهات الأخرى
حيث وضعت الكوت التالي
Create Event
- الكود:
myspeed = 5;
xtarget = 0;
ytarget = 0;
dir = point_direction(x,y,xtarget,ytarget);
dis = point_distance(x,y,xtarget,ytarget);
وفي Step Event
- الكود:
if mouse_check_button_pressed(mb_left) {
xtarget = mouse_x;
ytarget = mouse_y;
dir = point_direction(x,y,xtarget,ytarget);
move_towards_point(xtarget,ytarget,myspeed);
}
dis = point_distance(x,y,xtarget,ytarget);
if place_meeting(x+lengthdir_x(myspeed,dir),y+lengthdir_y(myspeed,dir),solid) or dis <= (myspeed-1) {
speed = 0;
}
لكن لم يعطني النتيجة المطلوبة :/
وإن كان بإمكان صنع مربهات وهمية للسير عليها هي فقط مثل هذه الصورة
إن كنتم تريدون فيديو أطلبو منو وأضع في التعليق
أتمنى أنكم تساعدونني
آسف على الموضوع السابق كان هناك أخطاء في التنسيق
وشكرا
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
مادام مافي رد رد أحاول لحالي
مثل ما يقول الأدمن إتخيل الكود فراسك وحطو
أنا بدي لما يكون يتجه لزاوية مثلا الزاوية 90 يكون متجه لفوق
كيف أكتبو هيك ؟
if (player = 90)
}
sprait_add(m_a_h,5,0,0,x,y)
ّ{
أكيد هيك موب صحيح بس كيف أخليه صحيح بليز الرد
مثل ما يقول الأدمن إتخيل الكود فراسك وحطو
أنا بدي لما يكون يتجه لزاوية مثلا الزاوية 90 يكون متجه لفوق
كيف أكتبو هيك ؟
if (player = 90)
}
sprait_add(m_a_h,5,0,0,x,y)
ّ{
أكيد هيك موب صحيح بس كيف أخليه صحيح بليز الرد
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
لو قصدك ان اول ضغطة مبتظبطش .. ده لان اكواد البرمجة في أي برنامج بتتنفذ من فوق لتحت فآخر dis متسجلة مش هي المظبوطة فبيحصل الـerror ده .. الحل بسيط وهو انك تشقلب الكود يعني تخليه كده :
- الكود:
dis = point_distance(x,y,xtarget,ytarget);
if place_meeting(x+lengthdir_x(myspeed,dir),y+lengthdir_y(myspeed,dir),solid) or dis <= (myspeed-1) {
speed = 0;
}
if mouse_check_button_pressed(mb_left) {
xtarget = mouse_x;
ytarget = mouse_y;
dir = point_direction(x,y,xtarget,ytarget);
move_towards_point(xtarget,ytarget,myspeed);
}
وبالنسبة لتغيير صورة الـinstance ده ممكن من خلال تغيير المتغير sprite_index
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
لما بيكون بدي أستدعي سبرايت متحرك يعني مش نفس السبرايت ما أستعمل sprite_index
جربت أستعمل
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig)
وحطيت المتغير بس ماصار يتغير لما يغير الإتجاه شو الحل ؟
جربت أستعمل
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig)
وحطيت المتغير بس ماصار يتغير لما يغير الإتجاه شو الحل ؟
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
akram_zaitout كتب:لما بيكون بدي أستدعي سبرايت متحرك يعني مش نفس السبرايت ما أستعمل sprite_index
جربت أستعمل
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig)
وحطيت المتغير بس ماصار يتغير لما يغير الإتجاه شو الحل ؟
الكود ده بيحمل sprite من الresources برة اللعبة يعني من ملف برة ويدخلها جوة الجيم ميكر .. مش عشان تغيير صورة الـinstance .. زي ما قلت لك sprite_index و image_index هم المسئولين عن تغيير الصورة تبع الأوبجكت على سبيل المثال
- الكود:
sprite_index = spr_player_walk;
انما image_index هي انهو صورة من الصور جوة الـsprite
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
اها طيب سويت هاذا الكود
لكن لما أنقط للاعب -x ما يسوي ذاك السيرايت
- الكود:
if ( dir = point_direction(-x,y,xtarget,ytarget) )
{
sprite_index = m_A_2 ;
}
لكن لما أنقط للاعب -x ما يسوي ذاك السيرايت
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
akram_zaitout كتب:اها طيب سويت هاذا الكود
- الكود:
if ( dir = point_direction(-x,y,xtarget,ytarget) )
{
sprite_index = m_A_2 ;
}
لكن لما أنقط للاعب -x ما يسوي ذاك السيرايت
الخطأ في الشرط جرب شرط آخر وشوف لو ظبط
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
أنصحك تعمل draw لكل متغيراتك في الشاشة .. فمتغير مثل dir الذي يأخذ قيمته من point_direction ... هو متغير عددي من المفترض أن تكون قيمته من 0 إلى 360 وهي الدرجات .. لذلك أظن أنك اذا اردت اختبار ما اذا كان ينظر إلى الأعلى مباشرة فتكون dir = 90 و اذا كان للاسفل تكون dir = 270 وهكذا
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
akram_zaitout كتب:كيف أكتب أنو يكون من 0 إلى 360 ؟
هو بالاساس بيكون بين القيمتين :
http://docs.yoyogames.com/source/dadiospice/002_reference/maths/vector%20functions/point_direction.html
زي ما مكتوب :
Returns the direction, in degrees, of a vector comprised.
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
كيف أكتب شرط غذا نقص -x ؟ طلعت وهبطت كتير وما عرفت كيف ؟
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
akram_zaitout كتب:كيف أكتب شرط غذا نقص -x ؟ طلعت وهبطت كتير وما عرفت كيف ؟
وضح أكتر معلش
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
المرة الأولى أخلي البلير يتمركز في إحداثيات الروم هاذي :
x : 600
y : 400
والأكواد يلي شفتها تبع الماوس ذيك تخليك تنتقل بس بدون سبرايت
أنا بدي لما ينقص من الإكس مهمات كانت القيمة يصير متجه لليسار
لما يزيد يصير لليمين
لما يزيد للواي لأسفل
لما ينقص لفوق
هيك ويكون على شكل كود
x : 600
y : 400
والأكواد يلي شفتها تبع الماوس ذيك تخليك تنتقل بس بدون سبرايت
أنا بدي لما ينقص من الإكس مهمات كانت القيمة يصير متجه لليسار
لما يزيد يصير لليمين
لما يزيد للواي لأسفل
لما ينقص لفوق
هيك ويكون على شكل كود
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
المرة الأولى أخلي البلير يتمركز في إحداثيات الروم هاذي :Abdullah Alsayed كتب:akram_zaitout كتب:كيف أكتب شرط غذا نقص -x ؟ طلعت وهبطت كتير وما عرفت كيف ؟
وضح أكتر معلش
x : 600
y : 400
والأكواد يلي شفتها تبع الماوس ذيك تخليك تنتقل بس بدون سبرايت
أنا بدي لما ينقص من الإكس مهمات كانت القيمة يصير متجه لليسار
لما يزيد يصير لليمين
لما يزيد للواي لأسفل
لما ينقص لفوق
هيك ويكون على شكل كود
فهمت ؟
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
طيب.. الجيم ميكر بيديك متغيرات بتسحل الحكاية دي .. على سبيل المثال متغيرات xprevious و yprevious بتمثل آخر نقطتين للاوبجكت قبل النقطتين الحاليتين وبكده ممكن تعمل اللي انت عايزه وهو انك تشوف هل الـx بتنقص ولا بتزيد ونفس الكلام مع الـy .. مثال
نفس الكلام الـy
ونفس الكلام عكس الإتجاه
- الكود:
if x>xprevious { //Walking right x++
sprite_index = spr_player_right;
}
نفس الكلام الـy
- الكود:
if y<yprevious { //Walking Up y--
sprite_index = spr_player_up;
}
ونفس الكلام عكس الإتجاه
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
حطيت الاكواد بس ما ضبط معي
حمل المشروع بهاذا الرابط http://up.top4top.net/downloadf-top4top_36f1b1e48a1-rar.html
يمكن أنا خليت هفوات
وشكرا لك على الرد
أعذرني إذا أطلت عليك
حمل المشروع بهاذا الرابط http://up.top4top.net/downloadf-top4top_36f1b1e48a1-rar.html
يمكن أنا خليت هفوات
وشكرا لك على الرد
أعذرني إذا أطلت عليك
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
akram_zaitout كتب:حطيت الاكواد بس ما ضبط معي
حمل المشروع بهاذا الرابط http://up.top4top.net/downloadf-top4top_36f1b1e48a1-rar.html
يمكن أنا خليت هفوات
وشكرا لك على الرد
أعذرني إذا أطلت عليك
لا اعرف لماذا لا تظبط معك الامور xD .. أنا الآن على الموبايل فلا استطيع تحميله ولكن يمكنك ان تتحق من المتغيرين hspeed و vspeed حيث الاول يعبر عن السرعة الافقية والاخر الرئسية ويمكنك عمل اختبار لكل منها فاذا كان يتحرك إلى الأعلى مثلا إذا vspeed تكون سالبة لذلك يمكن اختبار الحركة لاعلى بانها عند vspeed<0 .. وهكذا مع البقية
ارجو منك ان تعطليني وصف لما فعلته واين وضعت الكود وماذا حدث بعدها حتى نتوصل الى الحل في وقت أسرع
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
حطيتو هيك :c_e:crate
وفي
وهيك صار يجيني code error
- الكود:
myspeed = 5;
xtarget = 0;
ytarget = 416;
sprite = m_A_2;
dir = point_direction(x,y,xtarget,ytarget);
dis = point_distance(x,y,xtarget,ytarget);
وفي
- الكود:
dis = point_distance(x,y,xtarget,ytarget);
if place_meeting(x+lengthdir_x(myspeed,dir),y+lengthdir_y(myspeed,dir),-4) or dis <= (myspeed-1) {
speed = 0;
}
if mouse_check_button_pressed(mb_left) {
xtarget = mouse_x;
ytarget = mouse_y;
dir = point_direction(x,y,xtarget,ytarget);
move_towards_point(xtarget,ytarget,myspeed);
}
//Walking right x++
if x>xpreviou
{
sprite_index = m_A_2;
}
//Walking Up y--
if y<yprevious
{
sprite_index = f_A_2;
}
وهيك صار يجيني code error
- الكود:
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Step Event0
for object object7:
Push :: Execution Error - Variable Get -1.xpreviou(100009, -2147483648)
at gml_Object_object7_StepNormalEvent_1 (line 13) - if x>xpreviou
############################################################################################
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
اوووف عرفت ايه المشكل المشكل في المتغيرات إنت لما أعطيتني الكود حطيتو مثل ماهو ما راقبت المتغيرات متطابقا مع تبعي
سوري لأني عذبتك معي بسبب غبائي ههه
وهلء ضبط معي شكرا كتير لك
سوري لأني عذبتك معي بسبب غبائي ههه
وهلء ضبط معي شكرا كتير لك
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
طيب سؤال أخير كيف أختار فريم معين من السبرايت يعني ما يجيني متحرك
akram_zaitout-
- الجنس :
عدد المساهمات : 25
رد: مساعدة حول تحكم بالاعب
akram_zaitout كتب:طيب سؤال أخير كيف أختار فريم معين من السبرايت يعني ما يجيني متحرك
بتثبت سرعة التنقل بين الصور جوة الـsprite على 0 .. وده اللي بيقوم بيه متغير image_speed (ممكن تحطه في Create event) .. وتحتار الصورة اللي انت عايزها من الـframes من خلال image_index وهي من 0 لعدد الصور زي ما موجود في الصورة اللي وضعتها مسبقاً
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
في create event :
في الكود الخاص بتغيير الصورة sprite
- الكود:
image_speed = 0
في الكود الخاص بتغيير الصورة sprite
- الكود:
sprite_index = new_sprite_name
image_index = image_number
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: مساعدة حول تحكم بالاعب
ما ظبط أضن إنو لأني حطيت دراو هيك
- الكود:
///m
//body
draw_sprite(m_B_2,22,x+2,y+20)
draw_sprite(m_C_2,22,x+6,y+37)
//face
draw_sprite_ext(sprite_index,3,x,y,1,1,0,global.face_spr,1)
akram_zaitout-
- الجنس :
عدد المساهمات : 25
صفحة 1 من اصل 2 • 1, 2
مواضيع مماثلة
» ضروري الان مساعدة بخصوص ارتجاج الكاميرا عند الاطلاق..مساعدة
» عصا تحكم مزدوج gmz
» عمل زر تحكم بالشخصية
» عمل أزرار تحكم لألعاب الأندرويد
» كيفيه فعل قائمه تحكم متغيره
» عصا تحكم مزدوج gmz
» عمل زر تحكم بالشخصية
» عمل أزرار تحكم لألعاب الأندرويد
» كيفيه فعل قائمه تحكم متغيره
صفحة 1 من اصل 2
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
السبت فبراير 03, 2018 7:40 pm من طرف ZAHRANI BLACK
» مساعدة ضروورية
الإثنين يناير 29, 2018 10:32 pm من طرف king_of_fun
» شارك رابط تطبيقك من تطبيقك على الاندرويد على وسائل التواصل الاجتماعي
الإثنين يناير 29, 2018 12:45 pm من طرف ibraheem2d
» ازاي اصنع لعبه علي Android
الأحد يناير 28, 2018 4:31 pm من طرف ibraheem2d
» درس صناعة 2D بلاتفورم بسيط باستخدام مكتبة Simple Platform LIB حصريا !
الخميس يناير 11, 2018 2:44 am من طرف Abdullah Alsayed
» اخر مساعدة منكم لي في الجيم ماكر
الأربعاء يناير 03, 2018 2:18 am من طرف king_of_fun
» ادعوكم اصدقائي لتجريب لعبتي الاولي Am Head Soccer
الثلاثاء ديسمبر 26, 2017 2:41 pm من طرف nexusrex
» طلب مساعدة بخصوص لعبة pinball.
الأحد ديسمبر 03, 2017 8:52 pm من طرف moummi.mouh@gmail.com