|
آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic تهیه و آموزش نرم افزار دارک بیسیک |
|||
|
شنبه 31 فروردین 1392 :: 00:00 :: نويسنده : darkbasic
دستور SYNC
این دستور باعث بهبود روند اجرای بازی خواهد شد . یعنی می تواند محتویات صحنه را تحت زمان های مشخص شده ای ، از نو ترسیم و محاسبه کند . ابتدا با استفاده از دستور Sync On دستور را فعال و با دستور Sync Rate سرعت فریم ها را در هر ثانیه تنظیم و با دستور Sync محاسبات را انجام می دهیم . مانند مثال زیر :
SYNC ON
SYNC RATE 30
DO
"PRINT "keep to approximately 30 frames per second
SYNC
LOOP
Sync Off
در این مثال ، ابتدا دستور در خط اول فعال شد . و در خط دوم سرعت 30 فریم در ثانیه را تنظیم کردیم و در حلقه ی Do … Loop سرعت ترسیم و محاسبات ، هر ثانیه 30 بار توسط دستور Sync به روز رسانی می شوند .
در واقع این دستور یکی از مهم ترین دستورات DarkBasic می باشد . چون اگر دقت کرده باشید ، هر سیستمی سرعت خاص خود را دارد . مثلا کامپیوتری با CPU پنتیوم 3000 و یا AMD 4000 و یا هر سیستم دیگری قدرت و سرعت خود را دارد . یعنی بازی نوشته شده ، در هر کامپیوتری با یک سرعت خاص اجرا خواهد شد . یعنی در یک کامپیوتر ضعیف بازی ما ضعیف و کند حرکت و اجرا می شود و در کامپیوتر قوی تر ، خیلی تیز و سریع اجراء خواهد شد . با استفاده از دستور Sync ، بازی در تمامی کامپیوتر ها با یک سرعت ثابت اجرا خواهد شد . یعنی اگر ما Sync Rate را بر روی 30 تنظیم کرده باشیم . دستورات بین حلقه ی Do و Loop در هر ثانیه تنها 30 بار اجرا خواهند شد .
دستور IF
این دستور با استفاده از عملگرها ( + و – و And و Or و > و ... که قبلا راجع به آنها گفتیم ) به بررسی و مقایسه ی مقادیر اعداد و متغیرها و روابط بین آنها در برنامه می پردازد ، تا مسیر اجرای برنامه را تحت کنترل ما در بیاورد . یعنی در برابر شرایط ایجاد شده تصمیم بگیرد و در پی آن اقدامی انجام دهد . در واقع این دستور جزء دستورات شرطی برنامه ی DarkBasic است که بصورت های مختلفی می توان از آن استفاده کرد . از جمله دستورالعمل زیر :
If Condition Then Statement
طبق این دستورالعمل ابتدا دستور کلیدی If را تایپ می کنیم و به جای Condition شرط مورد نظرمان را قرار می دهیم . سپس بعد از تایپ کلمه ی کلیدی Then به جای Statement فرمان مورد نیازمان را قرار می دهیم . یعنی اگر شرط Condition درست و منطقی بود ، فرمان Statement اجرا شود . همانند مثال زیر :
A = 20
"If A > 10 Then Print "A Is > 10
Wait Key
با اجرای این مثال ، ابتدا عدد 20 در متغیر A ذخیره می شود و در خط دوم دستور If عبارت A > 10 را بررسی می کند . اگر درست و منطقی بود ، فرمان نوشته شده بعد از Then انجام می شود . یعنی عبارت A Is > 10 چاپ خواهد شد . اگر متغیر A از 10 کوچکتر باشد دستور نوشته شده بعد از Then اجرا نخواهد شد و DarkBasic آن را رها خواهد کرد و به اجرای خطوط بعدی برنامه خواهد پرداخت .
در مثال بالا بعد از کلمه ی کلیدی Then تنها یک دستور تایپ و اجرا شد . در برخی مواقع نیاز داریم چندین خط بعد از بررسی اجرا شود . در این صورت مانند دستورالعمل زیر عمل می کنیم :
If Condition
Statement
EndIf
طبق این دستورالعمل ، بعد از دستور If به جای Condition شروط مورد نظرمان را تایپ می کنید و در خط بعد به جای Statement فرمان های مورد نظرمان را قرار می دهیم . عبارت EndIf جزئی از دستور If بحساب می آید که پایان شرط را مشخص می کند . یعنی ما می توانیم هر تعداد دستوری را که نیاز داشتیم ، بین If Condition و EndIf قرار دهیم . مانند مثال زیر :
$Input Character
"If Character$ = "a
" ---------- " Print
$Print "Character Is ";Character
"Print "Thank You
EndIf
Wait Key
در این مثال بین خط دوم و ششم سه خط دستور قرار دادیم که می توان آن را کم و زیاد کرد . تا الان با استفاده از دستور If به بررسی درستی عبارات پرداختیم تا در قبال آن فرامینی را اجرا کنیم . دستور If را می توان به صورتی استفاده کرد که پس از بررسی عبارات به درستی و نادرستی عبارات بپردازد تا در قبال هر کدام فرامینی مربوط به هر حالت را بطور جداگانه ، اجرا کند . مانند دستورالعمل زیر :
If Condition
Statement1
Else
Statement2
EndIf
طبق این دستورالعمل شرط Condition بررسی می شود . اگر درست و منطقی بود ، دستور Statement1 انجام می شود ، و اگر ( شرط Condition ) نادرست و غیرمنطقی بود ، دستور Statement2 انجام می شود . مانند مثال زیر :
Input "Input Number ?" ; Number
If Number = 1
"Print "True
Else
"Print "False
EndIf
Wait Key
با اجرای این مثال ، یک عدد از کاربر گرفته شده و داخل متغیر Number ذخیره می شود . سپس دستور If مقدار آن متغیر را بررسی می کند . اگر مقدار متغیر Number برابر 1 بود ، عبارت True و اگر هر مقدار دیگری به غیر از 1 باشد ، عبارت False چاپ خواهد شد . یعنی اگر شرط نوشته شده روبروی دستور If یعنی Number = 1 درست باشد ، دستورات نوشته شده بین دستور If و Else اجرا می شود و در غیر اینصورت دستورات نوشته شده بین Else و EndIf اجرا خواهند شد .
دستور If می تواند چندین عبارت را ( با هم در یک خط ) بررسی کند . مانند مثال زیر :
Number = 100
"strName$ = "Sam
Age = 20
If Number=100 And strName$<>"Jone" Or Age>=10
"Print "Ok
EndIf
Wait Kay
دستور SELECT
در دستور If تنها دو حالت قابل بررسی بود ( یکی حالت درست و دیگری حالت نادرست ) . اما در دستور Select حالت های زیادی قابل بررسی و پیش بینی هستند . برای استفاده از دستور Select طبق دستورالعمل زیر عمل می کنیم :
Select Expression
Case Value
Statement
EndCase
EndSelect
طبق این دستورالعمل عبارت Expression مورد بررسی قرار می گیرد . اگر عبارت Expression دقیقا برابر Value بود . دستور Statement انجام می شود . مانند مثال زیر :
Number = 2
Select Number
Case 2
"Print "Two
EndCase
EndSelect
Wait Key
در این مثال مقدار داخل متغیر Number که روبروی دستور Select تایپ شده ، بررسی می شود ، اگر مقدار داخل آن برابر 2 باشد ، دستورات نوشته شده بین Case 2 و EndCase همگی اجرا خواهند شد . یعنی در این مثال عبارت Two چاپ می شود . ما می توانیم موارد زیادی را نیز بررسی کنیم . مانند مثال زیر :
numDay = 4
Select numDay
Case 0
"Print "Sat
EndCase
Case 1
"Print "Sun
EndCase
Case 2
"Print "Mon
EndCase
Case 3
"Print "Tue
EndCase
Case 4
"Print "Wed
EndCase
Case 5
"Print "Tur
EndCase
Case 6
"Print "Fri
EndCase
EndSelect
Wait Key
در این مثال پیش بینی شده ، که اگر متغیر numDay عددی در محدوده ی 0 تا 6 باشد ، نام آن روز طبق شماره اش چاپ شود . در این مثال چون مقدار داخل متغیر numDay برابر 4 است ، دستورات تایپ شده بین Case 4 و EndCase ( دو خط بعدی اش ) اجرا خواهد شد . یعنی عبارت Wed چاپ می شود . ولی اگر متغیر numDay مقداری خارج از محدوده ی 0 تا 6 در خود داشته باشد ، و ما بخواهیم آن حالت خاص را هم مورد بررسی قرار دهیم ، باید گزینه ی Case Default را به دستورمان اضافه کنیم . مانند مثال زیر :
$Input Character
$Select Character
"Case "A
Print 1
EndCase
"Case "B
Print 2
EndCase
Case Default
"Print "Input 1 Or 2
EndCase
EndSelect
Wait Key
با اجرای این مثال یک عبارت از کاربر دریافت و داخل متغیر $Character ذخیره می شود . اگر مقدار آن برابر عبارت A باشد ، عدد 1 و اگر مقدار آن برابر عبارت B باشد ، عدد 2 چاپ می شود . درغیر اینصورت هر عبارت دیگری وارد متغیر $Character شود ، عبارت Input 1 Or 2 چاپ خواهد شد .
دستور WAIT
این دستور اجرای برنامه را به اندازه ی عددی که به آن اختصاص می دهیم ، به تاخیر می اندازد . مانند دستورالعمل زیر :
Wait Delay
طبق این دستورالعمل دستور Wait اجرای برنامه را به مقدار Delay میلی ثانیه به تاخیر می اندازد . Delay یک عدد از نوع Integer است که اگر مقدار آن را 1 بدهیم یک هزارم ثانیه و اگر 1000 قرار دهیم برنامه را بمدت یک ثانیه نگه می دارد . سپس دستورات بعدی اجرا می شوند . مانند مثال زیر :
"Print "Wait For 5 Seconds
Wait 5000
End
دستور SLEEP
این دستور دقیقا مانند دستور گذشته عمل می کند و به مقدار عدد اختصاصی به آن برنامه را متوقف می کند . مانند مثال زیر :
".Print "Please Wait Five Second
Sleep 5000
دستور WAIT KEY
این دستور برنامه را آن قدر نگه می دارد تا کلیدی از کیبورد فشرده شود . مانند مثال زیر :
"PRINT "press any key to end
WAIT KEY
END
با اجرای این مثال ابتدا عبارت press any key to end چاپ شده ، سپس برنامه توسط دستور WAIT KEY در خط دوم نگه داشته می شود . در این هنگام با زدن یکی از دکمه های کیبورد اجرای برنامه ادامه پیدا می کند و با اجرای دستور END برنامه به پایان می رسد .
دستور SUSPEND FOR KEY
این دستور دقیقا همان دستور WAIT KEY را انجام می دهد و برنامه را تا زمان فشرده شدن یک کلید از کیبورد متوقف می کند . مانند مثال زیر :
"PRINT "press any key to end
SUSPEND FOR KEY
END
دستور WAIT MOUSE
این دستور مانند دستور قبلی ( Wait Key ) اجرای برنامه را متوقف می کند . منتهی تا زمانی که یکی از دکمه های موس زده شود ! مانند مثال زیر :
"PRINT "press any mouse button
WAIT MOUSE
دستور SUSPEND FOR MOUSE
این دستور مانند دستور قبلی ( Wait Mouse ) اجرای برنامه را تا زمان فشرده شدن یکی از دکمه های موس متوقف می کند . مانند مثال زیر :
"PRINT "click mouse to end
SUSPEND FOR MOUSE
END
دستور INC
این دستور مقدار مشخصی عدد را به یک متغیر از نوع عدد اضافه می کند . مانند دستورالعمل زیر :
Inc Variable,Value
طبق این دستورالعمل ، هر بار به مقدار Value به متغیر Variable اضافه می شود . مانند مثال زیر :
A# = -2
Do
Inc A#,0.5
#Print A
wait 500
Loop
دستور DEC
این دستور شباهت زیادی به دستور قبلی ( Inc ) دارد . با این تفاوت که به جای افزایش به مقدار متغیر ، مقداری را هر بار از آن کم می کند . مانند مثال زیر :
myNumber = 10
Do
Dec myNumber,1
Print myNumber
wait 500
Loop
زمان استفاده از دستور Inc و Dec اگر بخواهیم تنها یک واحد از متغیرها زیاد یا کم شود ، میتوانیم تنها از نام Inc و Dec و نام متغیر بعد از آن استفاده کنیم . مانند مثال زیر :
A = 10
B = 10
Inc A
Dec B
Print "A = ";A;" B = ";B
Wait Key
دستور DATA
با این دستور می توان مقادیری داده ( شامل عدد یا کاراکتر ) را بطور متوالی در خطوط برنامه یادداشت کنیم ، تا بعد ها از آن داده ها استفاده کنیم . مانند مثال زیر :
DATA 17,"NINE",9.0
DATA 0,"Yes",300
DATA -100,"I Am A Boy",200.05
دستور READ
در دستور گذشته مقادیری را در خطوط برنامه یادداشت کردیم . با استفاده از این دستور ، می توانیم آن مقادیر را ، با استفاده از متغیر ها ، استفاده کنیم . مانند مثال زیر :
DATA 17,"NINE",9.0
DATA 0,"Yes",300
DATA -100,"I Am A Boy",200.05
#Read a,s$,b
Print a
$Print s
#Print b
Wait Key
با اجرای این مثال عدد 17 و عبارت NINE و عدد 9.0 چاپ می شوند . با توجه به مثال برای فراخوانی داده ها از متغیری همنوع همان داده استفاده کردیم . برای خواندن داده های خوط بعدی باید دستور Read را تکرار کنیم مانند مثال زیر :
DATA 17,"NINE",9.0
DATA 0,"Yes",300
DATA -100,"I Am A Boy",200.05
#Read a,s$,b
#Print a;s$;b
#Read a,s$,b
#Print a;s$;b
#Read a,s$,b
#Print a;s$;b
Wait Key
دستور RESTORE
می توانیم با ایجاد برچسب ، داده ها را نامگذاری و بعد با دستور Restore از قسمت فراخوانی نام برچسب ، از داده ها دوباره استفاده کنیم . مانند مثال زیر :
:Lotterydata
DATA 12,23,34,45,56,67
DATA 23,34,45,56,67,11
DATA 34,45,56,67,33,22
:Ticketdata
DATA 01,02,03,04,05,06
DATA 21,32,43,24,13,22
RESTORE lotterydata
READ a,b,c,d,e,f
PRINT "LOTTERY ",a,b,c,d,e,f
RESTORE ticketdata
READ a,b,c,d,e,f
PRINT "TICKET ",a,b,c,d,e,f
Wait Key
درباره وبلاگ به وبلاگ من خوش آمدید موضوعات آخرین مطالب آرشيو وبلاگ پيوندها نويسندگان |
|||
|
|