PDA

View Full Version : بارش برف در picture box



mahdivita
پنج شنبه 05 اردیبهشت 1392, 20:44 عصر
سلام
من این کد رو نوشتم که برف قرمز در picture box میباره و یک مشکل باهاش دارم اون هم این هستش که میخوام بارش برفش دائمی باشه چی باشد بکنم؟؟؟؟

Dim x(1 To 100) As Integer
Dim y(1 To 100) As Integer
Dim z(1 To 100) As Integer
Private Sub Form_Load()
Timer1.Interval = 100
End Sub


Private Sub Form_Activate()
Dim i As Integer
Randomize Timer
Form1.FillStyle = 0
Form1.FillColor = vbRed
For i = 1 To 100
x(i) = Int(Rnd * Picture1.ScaleWidth + 1)
y(i) = Int(Rnd * Picture1.ScaleHeight + 1)
z(i) = Int(Rnd * 10) + 10
Picture1.Circle (x(i), y(i)), z(i), vbRed
Next i

End Sub



Private Sub Timer1_Timer()
Picture1.Cls
For i = 1 To 100
y(i) = y(i) + 20
Picture1.Circle (x(i), y(i)), z(i), vbRed
Next i
End Sub

omidparkour
جمعه 06 اردیبهشت 1392, 08:13 صبح
کسی مشکل رو نمیدونه؟؟؟؟؟؟؟!!!!!!!

SlowCode
جمعه 06 اردیبهشت 1392, 09:08 صبح
سلام
این خط رو داخل حلقه تایمر بنویس:
If y(i) > Picture1.ScaleHeight Then y(i) = 1
یعنی اگه ارتفاع برف از اندازه عرض picture1 زیاد بشه بیارش اول. به عبارتی وقتی که برف از حاشیه میزنه بیرون دوباره میاد اول.

omidparkour
جمعه 06 اردیبهشت 1392, 09:23 صبح
ممنون اما یک مشکل که وقتی اجرا میکنم ارور subscript out of range میده

مشکل کجاست؟؟؟

SlowCode
جمعه 06 اردیبهشت 1392, 13:19 عصر
علتش اینه که آرایه های y,x,z از 1 تا 100 ظرفیت داره، ولی این دوستمون تو حلقه با 20 جمع میکنه و قرار میده تو y.
در واقع علتش ضعیف بودن الگوریتم دوستمون هست.

mahdivita
جمعه 06 اردیبهشت 1392, 14:45 عصر
خب چی باید کرد؟؟؟؟؟

mahdivita
شنبه 07 اردیبهشت 1392, 14:31 عصر
باید چی کنم
تورو خدا کسی میدونه بگه

mahdivita
شنبه 07 اردیبهشت 1392, 20:09 عصر
اگه کسی علت رو میدونه راهنمایی کنه ؟؟؟؟

:افسرده::افسرده::افسرده::افس ده:

SlowCode
شنبه 07 اردیبهشت 1392, 21:52 عصر
علت رو که گفتم، واسه سرپوش گذاشتن روی مشکل کافیه خط زیر رو به اول تایمر اضافه کنی.
On Error Resume Next

mahdivita
شنبه 07 اردیبهشت 1392, 22:03 عصر
ممنون
برای اینکه رنگ های مختلف نمایش بده باید این کد(QBColor(15)) رو به جای vbred بنویسم؟

setroyd
شنبه 07 اردیبهشت 1392, 22:27 عصر
دوست عزیز این کد کاملی هست میتونی استفاده کنی

mahdivita
شنبه 07 اردیبهشت 1392, 22:52 عصر
ممنون اما من این سورس رو دارم و مشکل من در حال حاضر یک چیز دیگه هست

setroyd
یک شنبه 08 اردیبهشت 1392, 00:33 صبح
مشکل شما چه چیزیه ؟! اگه کد بالا رو شما نوشته باشی خوب 100% تا تهش هم میری ولی اگه سورس کسی دیگه باشه یکم درست کردنش برات سخته چون هر نرم افزاری که خود شخص مینویسه درکش براش راهت تر از نرم افزاری هست که شخص دیگری نوشته باشه .

mahdivita
یک شنبه 08 اردیبهشت 1392, 15:25 عصر
من میخوام به جای نمایش برف ها به رنگ قرمز در برنامه ی خودم که کدش در این تایپیک هست رنگ برف ها مختلف باشه چطوری میشه؟؟؟
من قبلا با دستورqbcolor(15) توی برنامه های دیگه امتحان میکردم میشد اما اینجا نشد

SlowCode
یک شنبه 08 اردیبهشت 1392, 19:29 عصر
به جای qb از rgb استفاده کن، اینطوری:

randomize
Form1.FillColor=rgb(rnd*255,rnd*255,rnd*255)

mahdivita
یک شنبه 08 اردیبهشت 1392, 19:46 عصر
ممنون:قلب::قلب::قلب::تشویق::ت ویق::تشویق: