תכנות לילדים באמצעות Game Maker/אפשרויות נוספות בתלת מימד/גוף שלישי שזז עם העכבר

תבנית:Game Maker/Game Maker 3D


שקלו לדלג על נושא זה

מומלץ לשקול לדלג על נושא זה בפעם הראשונה בה נתקלים בו, ולחזור אליו רק לאחר מעבר כללי על כל הספר.



כדאי לשקול לדלג על הפרק הזה כרגע, אם אין לכם צורך בשינוי זווית בעזרת העכבר, כמובן שאחרי הכנת הפרק מומלץ למחוק את שינוי הזווית הקודם.


בצעד הזה נכין את שינוי הזווית, אבל הפעם, בעזרת העכבר! נתחיל בשינוי של משהו שכתבנו בצעד STEP, שהיה הקוד הבא:

player.camdir+=change_x

ונשנה אותו, לקוד הבא:

change_x=(display_mouse_get_x()-640)/16


player.camdir+=change_x

display_mouse_set(display_mouse_get_x()-change_x*4,mouse_y)

הסבר:
אז, מה שקורה, זה שכתוב בשורה הראשונה שמיקום העכבר פחות 640 (החדר..) חלק שש עשרה, שווה ה CHANGE_X שלנו, ואז מה שכבר כתבנו, כדי שישפיע על המצלמה, ולבסוף התזוזה של העכבר שתשנה את זה.



אתם יכולים להזיז עם העכבר שמאלה וימינה




למי שלא עובד, יכול להשתמש בקוד הבא:(*זכרו שהקוד צריך להיכנס ב STEP)

direction-=(display_mouse_get_x()-display_get_width()/2)/8;
zdirection-=(display_mouse_get_y()-display_get_height()/2)/8;
if display_mouse_set(display_get_width()/2,display_get_height()/2);


{if zdirection > 89 then zdriection = 89;}
{if zdirection <-89 then zdirection = -89;}

לאחר מכן נוסיף את הקוד הבא לאירוע הCREATE שלנו:

zdirection = 0;
z = 0;

ולבסוף,נכניס את הקוד הבא באירוע ה DRAW שלנו:

d3d_transform_add_rotation_y(zdirection);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x+0.05,y+0.05, 13+0.05);
d3d_transform_set_identity();



אתם יכולים להזיז עם העכבר שמאלה וימינה



עכשיו, כדי שנוכל לשנות את זווית גם ע"י העכבר, ניצור אובייקט שיקרא CAMCO ובאירועים STEP, STEP BEGIN ו END STEP הכניסו את הקוד הבא:

z=terrain_get_z(x,y)-5;

אוקי, עכשיו נחזור אל הדמות שלנו, ונכתוב את הקוד הבא באירוע STEP :

zcam = camco.z-player.z+362
if mouse_y-400 >= camco.z-50
{
change_y = mouse_y-400+zcam
}
else
{
change_y = mouse_y-400+zcam
}
הסבר:
 אכתוב מאוחר יותר...

עכשיו אפשר גם למעלה ולמטה.