(مقاله اختصاصی برنامه نویس)
سلام عزیزهای دل
امروز می خوام یکی از قابلیت های جالب ویژوال بیسیک را بهتون یاد بدم.
شاید کمتر کسی از شما تا تاحالا با اون کار کرده باشه یا اصلا خبر داشته باشه چنین چیزی هست!
اون هم اینکه ما یک سری فریم های جدولی را به صورت انیمیشن در بیاوریم.
مثلا این تصویر زیر
running-sprite-sheet-png-3.jpg
که بدون کد نویسی خاصی تبدیلش بکنیم به این
ezgif-5-a087cb525e.gif
خب شاید کمی براتون پیچیده باشه . ولی خیالتون راحت. تنها چیزی که نیاز دارید. یک کامپونت هست.
برای شروع اول عکس را دانلود کنید.
و بعد داخل ویژوال بیسیک به دنبال کامپونتت Micrsoft PictureClip Control 6.0
و در آخر اونو به صفحه تون وارد کنید.
حالا روی کامپونت کلیک کنید و بروید در بخش تنظیماتش و روی گزینه Custom کلیک کنید.
در اینجا شما هم باید عکس را وارد برنامه کنید و هم باید مشخص کنید که تصویر شما شامل چند ردیف و ستون هست تا بتواند به درستی جداسازی تصویر را انجام دهد
Untitled.jpg
و در آخر تایید را بزنید و خلاص
حالا یک imagebox بزارید روی صفحه همراه با یک دکمه و بعد این کد را داخل دکمه وارد کنید
Private Sub Command1_Click()
Image1.Picture = PictureClip1.GraphicCell(0)
End Sub
قبل از اجرا برنامه باید بگویم چون ما در تصویرمان 4 ردیف همراه با 6 ستون عکس داشتیم باید اینجا پیش خودمان اعداد را ضرب کنیم که میشه 24.
ولی چون اولین خانه ی نمایشی ما از 0 شروع میشه پس تا اخرین خانه برای ما هم 23 است نه 24
و در اخر برنامه را اجرا کنید و لذت ببرید.
تا اینجا شما فقط می توانید تصاویر را لود کنید ولی برای به حرکت در آوردنش کافیست از یک تایمر استفاده کنید.
خط برای ما برای به حرکت در اوردن عکس فعلا فقط به ردیف اول نیاز داریم و شروع اعداد برای حرکت رو به پایین کاراکتر ما 0 تا 5 است
Untitled.jpg
مقدار interval تایمر خودتون را 70 بزارید.
و بعد داخل تایمر این کد را بنویسید
Private Sub Timer1_Timer()
Timer1.Tag = Val(Timer1.Tag) + 1
Image1.Picture = PictureClip1.GraphicCell(Timer1.Tag)
If Timer1.Tag = 5 Then Timer1.Tag = -1
End Sub
با این کد فقط شخصیت ما فقط رو به پایین میدود و برای حرکات دیگر شما باید اعداد را خودتان تغییر بدهید.
تمام
چند تا عکس هم برای تمرین میزارم که برید حالشو ببرید
800px_COLOURBOX11047181.jpg
create-png-sprite-sheet.jpg
hero_spritesheet.jpg
running-sprite-sheet-png-1.png
blueHorse.jpg
خداییش مرگ من تشکر نداره که دکمه تشکر رو فشار نمیدی؟