PDA

View Full Version : سوال: استفاده از تصاویر متحرک



peyman.kh
چهارشنبه 27 شهریور 1398, 13:01 عصر
سلام بچه ها , من ی بازی دوبعدی درست کردم که باید بک گراند ایمج فرم متحرک باشه , برام فرقی نداره که بخوام گیفت بزارم یا نه فقط تحرکش برام مهمه.
در مرحله اول که نمیدونم چرا فرمت های گیفت در بک گراند هیچ تحرکی ندارند .
اگر راهی برای این ماجرا وجود داره که اوکی ...
اگر نه من ی ایده دارم که نمیدونم چجوری پیادش کنم , اگر من 11 تا تصویر رو به عنوان بک گراند ایمج فرم با فاصله زمانی 200 میلی ثانیه نشون بدم مثل گیفت عمل میکنه , اما نمیدونم چطوری این کارو بکنم.
ممنون میشم که سوال منو بدون پاسخ نزارید...تشکر.

Mahmoud.Afrad
چهارشنبه 27 شهریور 1398, 13:26 عصر
راه ساده استفاده از پیکچرباکس هست.

در مورد راه دوم فقط میتونم بگم کار با تایمر را یاد بگیرید.

peyman.kh
چهارشنبه 27 شهریور 1398, 13:45 عصر
اخه روی صفحه پیکچرباکس زیاد دارم و نمیخام قاطی پاتی بشه , کار با تایمر رو بلدم اما نمیدونم چطوری کاری کنم که بین تصاویر فاصله زمانی ایجاد بشه و پخش پشت سر هم انها محدودیتی نداشته باشه
ممنون میشم راهنمایی کنید

peyman.kh
چهارشنبه 27 شهریور 1398, 14:17 عصر
من از این روش برای دوتا تصویر استفاده کردم اما برای یازده تا نمیدونم
private void timer3_Tick(object sender, EventArgs e) {


dC++‎‎‎;
if (dc%2==1)
{
air.BackgroundImage = global::Game.Properties.Resources._1__1_;
}

else
{
air.BackgroundImage = global::Game.Properties.Resources._1__3_;
}


}


ممنون میشم راهنماییم کنید , خیلی برام مهمه...تشکر

Mahmoud.Afrad
چهارشنبه 27 شهریور 1398, 15:01 عصر
عکسها رو از ریسورس حذف کنید.
یک imageList به فرم اضافه کنید. عکسها رو به خصوصیت Images از همین کنترل اضافه کنید.
در تیک تایمر ، از طریق اندیس Images میتونید به تصاویر دسترسی داشته باشید.

peyman.kh
پنج شنبه 28 شهریور 1398, 01:05 صبح
منظورتون اینه که مثل یک ارایه باهاش کارکنم؟
اما چطوری بین هر دو عکس ی وقفه زمانی تا پخششون ایجاد کنم؟
امکانش هست یکم مبحثو بازش کنید , من تصاویرو در ایمیج لیست ادد کردم , کد فراخوانی و وقفه زمانی بینشون رو چطوری بزنم؟

Mahmoud.Afrad
پنج شنبه 28 شهریور 1398, 02:46 صبح
منظورتون اینه که مثل یک ارایه باهاش کارکنم؟
اما چطوری بین هر دو عکس ی وقفه زمانی تا پخششون ایجاد کنم؟
امکانش هست یکم مبحثو بازش کنید , من تصاویرو در ایمیج لیست ادد کردم , کد فراخوانی و وقفه زمانی بینشون رو چطوری بزنم؟

بله، این دیگه الگوریتم هست و ربطی به زبان cشارپ نداره؛
یک شمارنده(اندیس) که از 0 شروع میشه تعریف کنید که در سطح کلاس تعریف شده باشه.
در تیک تایمر عکس با اندیس را نمایش دهید.
یکی به این اندیس اضافه کنید
اگر اندیس فراتر از حد مجاز شد، مقدارش رو مجددا 0 کنید.

peyman.kh
پنج شنبه 28 شهریور 1398, 15:31 عصر
من اشنایی خیلی زیادی با ایمیج لیست ندارم , امکانش هست بگین با چه کدی اندیس ایمیج لیست رو فراخوانی کنم , داخل اینترنت چیزی ازش ندیدم,تشکر فراوون.

peyman.kh
جمعه 29 شهریور 1398, 12:35 عصر
private void timer1_Tick(object sender, EventArgs e) {
a++;
if (a == 1)
{
this.BackgroundImage = global::test.Properties.Resources._1;
}
else if (a == 2)
{
this.BackgroundImage = global::test.Properties.Resources._2;
}
else if (a == 3)
{
this.BackgroundImage = global::test.Properties.Resources._3;
}
else if (a == 4)
{
this.BackgroundImage = global::test.Properties.Resources._4;
}
else if (a == 5)
{
this.BackgroundImage = global::test.Properties.Resources._5;
}
else if (a == 6)
{
this.BackgroundImage = global::test.Properties.Resources._6;
}
else if (a == 7)
{
this.BackgroundImage = global::test.Properties.Resources._7;
}
else if (a == 8)
{
this.BackgroundImage = global::test.Properties.Resources._8;
}
else if (a == 9)
{
this.BackgroundImage = global::test.Properties.Resources._9;
}
else if (a == 10)
{
this.BackgroundImage = global::test.Properties.Resources._10;
}
else if (a == 11)
{
this.BackgroundImage = global::test.Properties.Resources._11;
a = 0;
}

ASHKANLAEI
جمعه 29 شهریور 1398, 15:38 عصر
سلام من یک آموزش ویدئویی ساختم که شاید کمک کنه.
http://uupload.ir/view/evx3_imagelist.rar/
(http://uupload.ir/view/evx3_imagelist.rar/)راستی ببخشید من حواسم نبود که مسیر حرکت رو غیرفعال کنم، یکم ویدئو بد شده:اشتباه: