آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic
تهیه و آموزش نرم افزار دارک بیسیک
 
 
چهارشنبه 11 اردیبهشت 1392 :: 02:02 ::  نويسنده : darkbasic

 این فصل شامل دستوراتی برای پخش فیلم با فرمت هایی چون AVI ، MPEG ، Quick Time ، WAV ، AIFF ، AU یا SND می باشد . همچنین می توانیم انیمیشن مورد نظرمان را بر روی اشیاء سه بعدی نمایش دهیم .

 
دستور LOAD ANIMATION
این دستور انیمیشنی را بر روی حافظه فراخوانی می کند . مانند دستورالعمل زیر :
 
LOAD ANIMATION Filename,AnimationNumber
 
طبق این دستورالعمل به جای Filename مسیر و نام فایل حاوی انیمیشن و به جای AnimationNumber شماره ای بین یک تا 32 به انیمیشن فراخوانده شده اختصاص می دهیم ، تا آن را کنترل کنیم . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",1
Wait Key
 
در این مثال انیمیشنی با شماره ی 1 به روی حافظه خوانده شد .
 
دستور DELETE ANIMATION
این دستور انیمیشن فراخوانده شده به حافظه را حذف می کند . مانند دستورالعمل زیر :
 
DELETE ANIMATION AnimationNumber
 
طبق این دستورالعمل به جای AnimationNumber شماره ی انیمیش فراخوانده شده را قرار می دهیم تا حذف شود . ( تنها از روی حافظه ی RAM حذف میشود . فایل بر روی HARD باقی خواهد ماند ) مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",1
DELETE ANIMATION 1
 
تابع ANIMATION EXIST
این تابع بررسی می کند که آیا انیمیشن مورد نظر بر روی حافظه فراخوانی شده یا نه . اگر انیمیشن مورد نظر بر روی حافظه موجود باشد ، تابع ()Animation Exist عدد یک و اگر موجود نباشد عدد صفر برگردانده خواهد شد . مانند دستورالعمل زیر :
 
(var = ANIMATION EXIST(AnimationNumber
 
طبق این دستورالعمل اگر انیمیشن مورد نظر با شماره ی AnimationNumber بر روی حافظه فراخوانی شده باشد ، تابع ()ANIMATION EXIST عدد یک را در متغیر var ذخیره خواهد کرد و اگر فراخوانی نشده باشد ، عدد صفر در متغیر var ذخیره خواهد شد . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",1
"If ANIMATION EXIST(1)=1 Then Print "Animation 1 Exist
"If ANIMATION EXIST(1)=0 Then Print "Animation 1 Not Exist
(Var= ANIMATION EXIST(2
"If Var=1 Then Print "Animation 2 Exist
"If Var=0 Then Print "Animation 2 Not Exist
Wait Key
 
در این مثال چون انیمیشن با شماره ی 1 وجود داشت ، عبارت Animation 1 Exist چاپ و چون انیمیشنی با شماره ی 2 وجود نداشت عبارت Animation 2 Not Exist چاپ شد .
 
دستور PLAY ANIMATION
این دستور انیمیشن خوانده شده بر روی حافظه را بر روی صفحه ی نمایش یا بر روی Bitmap ( برای آشنایی با Bitmap به فصل نهم رجوع کنید ) نمایش خواهد داد . مانند دستورالعمل زیر :
 
PLAY ANIMATION AnimationNumber
 
طبق این دستورالعمل به جای AnimationNumber شماره ی انمیمیشن فراخوانده شده بر روی حافظه را قرار می دهیم تا پخش شود . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",3
PLAY ANIMATION 3
WAIT KEY
 
در این مثال انیمیشنی با شماره ی 3 فراخوانی و بر روی صفحه ی نمایش پخش خواهد شد . با اضافه کردن دو عدد دیگر به ادامه ی این دستورالعمل ، می توانیم فاصله کادر نمایش انیمیشن از بالا و چپ صفحه نمایش را تنظیم کنیم . مانند دستورالعمل زیر :
 
PLAY ANIMATION AnimationNumber,X,Y
 
طبق این دستورالعمل به جای AnimationNumber شماره ی انمیمیشن مورد نظر و به جای X فاصله ی کادر نمایش انیمیشن تا سمت چپ صفحه نمایشگر و به جای Y فاصله ی کادر نمایش انیمیشن تا بالای صفحه ی نمایشگر را قرار می دهیم . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",3
PLAY ANIMATION 3
WAIT 5000
PLAY ANIMATION 3,200,100
Wait Key
 
در این مثال انیمیشنی با شماره ی 3 فراخوانی و بر روی صفحه ی نمایش پخش می شود . و بعد از 5 ثانیه دوباره به فاصله ی 200 و 100 از چپ و بالای صفحه ی نمایشگر دوباره پخش خواهد شد . با اضافه کردن دو عدد دیگر به این دستورالعمل ، می توانیم طول و ارتفاع کادر نمایش انیمیشن را هم تنظیم کنیم . مانند دستورالعمل زیر :
 
PLAY ANIMATION AnimationNumber,X,Y,WIDTH,HEIGHT
 
طبق این دستورالعمل به جای AnimationNumber شماره ی انمیمیشن فراخوانده شده بر روی حافظه و به جای X فاصله ی کادر نمایش انیمیشن تا سمت چپ صفحه نمایشگر و به جای Y فاصله ی کادر نمایش انیمیشن تا بالای صفحه ی نمایشگر و به جای WIDTH طول کادر نمایش انیمیشن و به جای HEIGHT ارتفاع کادر نمایش انیمیشن را قرار می دهیم . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",3
PLAY ANIMATION 3
WAIT 5000
PLAY ANIMATION 3,200,100
Wait 5000
()PLAY ANIMATION 3,0,0,SCREEN WIDTH(),SCREEN HEIGHT
Wait Key
 
در این مثال انیمیشن شماره 3 سه بار پخش خواهد شد و در سومن بار تمام صفحه نمایش را دربر خواهد گرفت .
 
تابع ANIMATION PLAYING
این تابع بررسی می کند ، که آیا انیمیشن مورد نظرمان ( که بر روی حافظه فراخوانده شده ) در حال پخش است یا خیر . اگر در حال پخش باشد . تابع ()Animation Playing عدد یک و اگر در حال پخش نباشد ( مثلا متوقف شده باشد ) ، عدد صفر را برمی گرداند . مانند دستورالعمل زیر :
 
(Var = ANIMATION PLAYING(AnimationNumber
 
طبق این دستورالعمل اگر انیمیشن فراخوانده شده به حافظه با شماره ی AnimationNumber در حال پخش باشد تابع ()ANIMATION PLAYING مقدار یک و اگر در حال پخش نباشد ، عدد صفر را در متغیر Var ذخیره خواهد کرد . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",3
PLAY ANIMATION 3
Sync On : Sync Rate 30
Do
(Select Animation Playing(3
   Case 1
            "Text 10,10,"Animation 3 Playing
      EndCase
      Case 0
            "Text 10,10,"Animation 3 No Playing
      EndCase
EndSelect
Sync
Loop
 
تابع ANIMATION POSITION X و تابع ANIMATION POSITION Y
تابع ANIMATION POSITION X فاصله ی کادر نمایش انیمشن از چپ صفحه ی نمایشگر و تا بع ANIMATION POSITION Y فاصله ی کادر نمایش انیمیشن تا بالای صفحه ی نمایشگر را برمی گردانند . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",3
PLAY ANIMATION 3,200,100
" = Text 10,400,"Animation Position X
((Text 120,400,Str$(Animation Position X(3
" = Text 10,415,"Animation Position Y
((Text 120,415,Str$(Animation Position Y(3
Wait Key
 
دستور LOOP ANIMATION
این دستور انیمیشن فراخوانده شده به حافظه را دائما از اول تا آخر ، پخش خواهد کرد . یعنی تا زمانی که دستور توقف داده نشده باشد ، پخش آن بطور متوالی تا ابد ادامه خواهد داشت . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",3
LOOP ANIMATION 3
Wait Key
 
تابع ANIMATION LOOPING
این تابع بررسی می کند که آیا انیمیشن مورد نظر بصورت دائمی در حال پخش است یا خیر .
یعنی آیا از دستور Loop Animation برای پخش انیمیشن استفاده شده یا نه . اگر بصورت دائما پخش باشد ، تابع ()ANIMATION LOOPING مقدار یک و اگر دائما پخش نباشد ، تابع مقدار صفر را برمی گرداند . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",3
LOOP ANIMATION 3
((Text 300,300,Str$(Animation Looping(3
Wait Key
 
دستور PAUSE ANIMATION
این دستور انیمیش در حال پخش ( توسط دستور PLAY ANIMATION یا LOOP ANIMATION ) را موقتا متوق می کند . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",4
Play ANIMATION 4
Wait 2000
Pause Animation 4
Wait Key
 
تابع ANIMATION PAUSED
این تابع بررسی می کند که آیا انیمیشن مورد نظر با دستور Pause Animation متوقف شده یا نه . اگر متوق شده باشد تابع ()Animation Paused مقدار یک و اگر متوق نشده باشد ، تابع مقدار صفر را برمی گرداند . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",2
Play ANIMATION 2
"If Animation Paused(2)=1 Then Text 10,450,"Animation Paused
Wait 2000
Pause Animation 2
If Animation Paused(2)=1
   Cls
   "Text 10,450,"Animation Paused
EndIf
Wait Key
 
دستور RESUME ANIMATION
اگر انیمیشن قبلا توسط دستور PAUSE ANIMATION متوفق شده باشد . می توانیم با این دستور پخش آن را از همان فریم متوفق شده دوباره شروع کنیم . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",4
Loop ANIMATION 4
Do
If Inkey$()="P" Or Inkey$()="p" Then Pause ANIMATION 4
If Returnkey()=1 Then Resume ANIMATION 4
Loop
 
با اجرای این مثال با زدن دکمه ی P انیمیشن شماره 4 موقتا متوقف می شود ، و با زدن دکمه ی Enter پخش آن از همان زمان توقف ( همان فریمی که بر روی آن توقف شده بود ) ، پخش خواهد شد .
 
دستور STOP ANIMATION
این دستور انیمیش در حال پخش را متوفق خواهد کرد . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",4
Play ANIMATION 4
Wait 2000
Stop ANIMATION 4
Wait Key
 
دستور SET ANIMATION SPEED
با این دستور سرعت پخش انیمیشن را تنظیم می کنیم . مانند دستورالعمل زیر :
 
SET ANIMATION SPEED AnimationNumber,Speed
 
طبق این دستورالعمل به جای AnimationNumber شماره ی انیمیشن مورد نظر و به جای Speed سرعت پخش انیمیشن را بصورت عددی بین صفر تا 100 که صفر کمترین سرعت و 100 بالا ترین سرعت پخش انیمیشن می باشد . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",4
Play Animation 4
Set Animation Speed 4,50
Wait 2000
Set Animation Speed 4,100
Wait Key
 
با اجرای این مثال دو ثانیه از پخش انیمیشن با نصف سرعت ( 50 از 100 ) و بقیه ی انیمیشن با سرعت عادی پخش خواهد شد .
 
تابع ANIMATION WIDTH و تابع ANIMATION HEIGHT
تابع ()ANIMATION WIDTH طول انیمیشن و تابع ()ANIMATION HEIGHT ارتفاع انیمیشن را برمی گرداند . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",7
(Print "Animation Width = "; Animation Width(7
(Print "Animation Height = "; Animation Height(7
Wait Key
 
با اجرای این مثال طول و ارتفاع انیمیشن شماره ی 7 چاپ خواهد شد .
 
دستور PLAY ANIMATION TO IMAGE
با این دستور انیمیشن مورد نظر را بر روی شیئی از نوع Image پخش می کنیم . سپس Image مورد نظر را بر روی اشیاء سه بعدی می چسبانیم . با این کار انیمیشن مورد نظرمان بر روی اشیاء سه بعدی پخش خواهد شد . مانند دستورالعمل زیر :
 
PLAY ANIMATION TO IMAGE AnimationNumber,Image,Left,Top,Right,Bottom
 
طبق این دستورالعمل به جای AnimationNumber شماره ی انیمیشن مورد نظر بین 1 تا 32 و به جای Image شماره ی تصویر بین 1 تا 32 به جای Left فاصله ی انیمیشن تا سمت چپ تصویر و به جای Top فاصله ی انیمیشن تا بالای تصویر و به جای Right فاصله ی انیمیشن تا سمت راست تصویر و به جای Bottom فاصله ی انیمیشن تا پائین تصویر را قرار می دهیم . مانند مثال زیر :
 
LOAD ANIMATION "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\examples\animation\mpg\DbIntro.mpg",7
Sync On:Sync Rate 30
Make Object Box 4,200,120,100 : Position Object 4,-150,0,0
Make Object Sphere 5,200 : Position Object 5,100,0,0
(Play Animation To Image 7,1,0,0,Animation Width(7),Animation Height(7
Loop Animation 7
Texture Object 4,1 : Texture Object 5,1
Position Camera -100,100,-600:Point Camera 0,0,0
Do:For I=1 To 369:YRotate Object 4,I
Sync:Next I:Loop
 
در این مثال تصویری با شماره ی 1 بطور خودکار ایجاد شد .
 



 
 
 

ورود کاربران

خوش آمدید! لطفا وارد حساب خود شوید

رمز عبور را فراموش کرده‌اید؟
حساب کاربری ندارید؟

فراموشی رمز عبور

نام کاربری یا ایمیل خود را وارد کنید

یا

ثبت نام کاربران

در چند ثانیه حساب کاربری خود را بسازید

قبلا ثبت نام کرده‌اید؟

نظرات کاربران

دیدگاه خود را با ما در میان بگذارید