در این مطلب، ویدئو آموزش هوش مصنوعی Python Flappy Bird (با NEAT) – Pixel Perfect Collision w/ Pygame با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:19:20
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:01,620
بسیار خوب، پس بیایید یک کلاس ایجاد کنیم، اجازه دهید
2
00:00:01,620 –> 00:00:03,810
این لوله را صدا کنیم و اکنون باید
3
00:00:03,810 –> 00:00:05,460
چیزهای بیشتری را پیاده سازی کنیم، بنابراین
4
00:00:05,460 –> 00:00:07,529
بیایید با متغیرهای کلاسی که به آنها نیاز داریم شروع کنیم،
5
00:00:07,529 –> 00:00:10,050
بسیار شبیه به کلاس پرنده ما که به
6
00:00:10,050 –> 00:00:12,300
آن نیاز داریم، زیرا این فقط
7
00:00:12,300 –> 00:00:15,240
شکافی است که قرار است انجام شود. برابر 200 باشد و
8
00:00:15,240 –> 00:00:16,859
این دقیقاً میزان فاصله بین
9
00:00:16,859 –> 00:00:19,260
لوله ما و همچنین سرعت یا سرعت حرکت
10
00:00:19,260 –> 00:00:21,029
لوله های ما است زیرا
11
00:00:21,029 –> 00:00:23,820
از آنجایی که ما روش کار پرنده فلاپی
12
00:00:23,820 –> 00:00:25,260
را داریم اساساً پرنده ما حرکت نمی کند
13
00:00:25,260 –> 00:00:27,300
اما همه چیز از آنها اشیاء روی
14
00:00:27,300 –> 00:00:29,130
صفحه حرکت میکنند، ما باید لولهها را
15
00:00:29,130 –> 00:00:32,040
به سمت عقب یا به سمت پرنده حرکت دهیم تا به
16
00:00:32,040 –> 00:00:33,360
نظر برسد که در حال حرکت است، بنابراین من میخواهم
17
00:00:33,360 –> 00:00:35,880
سرعت را برابر با 5 در اینجا ذخیره کنم و این
18
00:00:35,880 –> 00:00:38,010
یک تابش ایجاد میکند، بنابراین
19
00:00:38,010 –> 00:00:41,010
زیرخط زیرخط بافت مربع زیر عنکبوت این کار را میکند. خود
20
00:00:41,010 –> 00:00:43,829
و X در حال حاضر دلیل اینکه من X را انجام می دهم و Y را انجام نمی دهم
21
00:00:43,829 –> 00:00:45,930
یا فقط حدس می زنم که هر دوی آنها
22
00:00:45,930 –> 00:00:48,180
نیستند این است که ارتفاع این لوله ها و
23
00:00:48,180 –> 00:00:49,350
جایی که آنها روی صفحه ظاهر
24
00:00:49,350 –> 00:00:51,180
می شوند هر بار کاملاً تصادفی است
25
00:00:51,180 –> 00:00:52,739
و ما در واقع این کار را انجام خواهیم داد. محاسبه کنید که
26
00:00:52,739 –> 00:00:54,539
در اینجا زمانی که w و ابتدا لوله را مقداردهی اولیه کنید،
27
00:00:54,539 –> 00:00:56,340
به آن ارتفاع تصادفی می دهیم،
28
00:00:56,340 –> 00:00:58,350
بنابراین کاری که می خواهم در اینجا انجام دهم این است که بگویم
29
00:00:58,350 –> 00:01:00,539
خود نقطه x برابر x است و سپس می
30
00:01:00,539 –> 00:01:04,290
گویم ارتفاع فکر خود
31
00:01:04,290 –> 00:01:08,369
برابر است با شکاف نقطه صفر برابر با
32
00:01:08,369 –> 00:01:10,740
100 من نمیدانم صبر کنید چرا من این کار را دو بار انجام دادم،
33
00:01:10,740 –> 00:01:13,080
در واقع ممکن است به آن نیازی نداشته باشیم، اما به
34
00:01:13,080 –> 00:01:14,549
هر حال ما این را خواهیم دید، من فقط
35
00:01:14,549 –> 00:01:15,960
در حال حاضر به صفحه دیگرم نگاه
36
00:01:15,960 –> 00:01:18,830
37
00:01:18,830 –> 00:01:21,960
میکنم. دوباره میگویم لولههای خود
38
00:01:21,960 –> 00:01:26,610
نقطهای که قسمت بالایی زیر خط دارند برابر است با
39
00:01:26,610 –> 00:01:33,060
تصویر لوله بازگردانی نقطهای بازی PI و
40
00:01:33,060 –> 00:01:34,320
من در یک ثانیه در مورد آن صحبت میکنم و
41
00:01:34,320 –> 00:01:38,549
سپس درست غلط را انجام میدهیم و
42
00:01:38,549 –> 00:01:41,180
حالا میخواهیم بگوییم
43
00:01:41,180 –> 00:01:44,399
خط زیر خط لوله خود نقطه پایین در پایین تمام حروف بزرگ برابر است با
44
00:01:44,399 –> 00:01:46,920
تصویر زیر خط لوله بسیار درست است، بنابراین کاری که
45
00:01:46,920 –> 00:01:48,840
من اینجا انجام دادم خیلی سریع این بود که در حال
46
00:01:48,840 –> 00:01:50,670
ایجاد چند متغیر برای پیگیری
47
00:01:50,670 –> 00:01:52,229
اینکه قسمت بالای لوله ما
48
00:01:52,229 –> 00:01:54,060
کجا کشیده می شود و قسمت پایین لوله ما
49
00:01:54,060 –> 00:01:55,890
کجا کشیده می شود. من
50
00:01:55,890 –> 00:01:57,990
همین حالا تصاویر لوله بالایی و
51
00:01:57,990 –> 00:02:00,119
لوله پایینی را دریافت میکنم، دلیل این کار من است
52
00:02:00,119 –> 00:02:01,770
این در اینجا به این دلیل است که من باید
53
00:02:01,770 –> 00:02:06,210
تصویر خاص را ردیابی کنم، بنابراین توضیح آن
54
00:02:06,210 –> 00:02:08,068
به نوعی سخت است، اما
55
00:02:08,068 –> 00:02:10,348
من به دسکتاپ خود می روم تا
56
00:02:10,348 –> 00:02:12,209
اساساً تصاویری را که لوله شروع به عمودی رو به رو می کند را به شما نشان دهم،
57
00:02:12,209 –> 00:02:13,530
اما
58
00:02:13,530 –> 00:02:15,180
همچنین به لوله ای نیاز دارم که رو به بالا باشد. به پایین،
59
00:02:15,180 –> 00:02:17,220
بنابراین من فقط باید این لوله را برگردانم
60
00:02:17,220 –> 00:02:20,250
و آن تصویر را در کلاس ذخیره کنم، بنابراین
61
00:02:20,250 –> 00:02:22,200
این کاری است که من در اینجا انجام میدهیم،
62
00:02:22,200 –> 00:02:23,790
لوله را برمیگردانیم و میگوییم که قسمت بالای لوله است و
63
00:02:23,790 –> 00:02:26,160
این قسمت پایین لوله است، اکنون
64
00:02:26,160 –> 00:02:28,740
چیزی که نیاز داریم این است که خود نقطهزنی است.
65
00:02:28,740 –> 00:02:30,060
اکنون برابر با false
66
00:02:30,060 –> 00:02:31,680
خواهد بود، اگر پرنده قبلاً
67
00:02:31,680 –> 00:02:33,959
از این لوله رد شده باشد و این
68
00:02:33,959 –> 00:02:35,550
برای اهداف برخورد و برای هوش مصنوعی است
69
00:02:35,550 –> 00:02:37,230
که بعداً در مورد آن صحبت خواهیم کرد
70
00:02:37,230 –> 00:02:39,480
و سپس من تماس خواهم گرفت روشی که
71
00:02:39,480 –> 00:02:41,400
هنوز ایجاد نکردهایم به نام
72
00:02:41,400 –> 00:02:44,100
ارتفاع زیرخط مجموعه نقطههای خود را با این روش
73
00:02:44,100 –> 00:02:45,720
انجام میدهیم و ما فقط در شرف
74
00:02:45,720 –> 00:02:48,300
کدنویسی هستیم که مشخص میکنیم قسمت بالای
75
00:02:48,300 –> 00:02:49,860
لوله ما کجاست پایین لوله ما
76
00:02:49,860 –> 00:02:52,739
و چگونه قد بلند است یا می دانید
77
00:02:52,739 –> 00:02:54,239
قد بالا در مقابل چقدر است قسمت پایینی
78
00:02:54,239 –> 00:02:56,730
که همه آن شکاف است و
79
00:02:56,730 –> 00:02:58,080
به طور تصادفی تعریف میشود، بنابراین کاری که
80
00:02:58,080 –> 00:03:00,200
من اینجا انجام میدهم میگویم ارتفاع زیرخط را تنظیم
81
00:03:00,200 –> 00:03:03,510
کنید، خودش را نشان میدهد و کاری که در
82
00:03:03,510 –> 00:03:06,000
اینجا انجام میدهیم این است که فقط یک عدد تصادفی برای
83
00:03:06,000 –> 00:03:08,160
جایی که بالای آن انجام میدهیم دریافت کنیم. از لوله ما باید باشد بنابراین
84
00:03:08,160 –> 00:03:09,810
من میخواهم بگویم امتیاز در واقع بله،
85
00:03:09,810 –> 00:03:11,190
حدس میزنم که چهار لوله بالا میگویند
86
00:03:11,190 –> 00:03:15,380
ارتفاع نقطه خود برابر است با نقطه تصادفی R و
87
00:03:15,380 –> 00:03:20,070
محدوده محدوده بین 40 تا 454 را انجام میدهد که
88
00:03:20,070 –> 00:03:21,720
ما میخواهیم بالای لوله ما در واقع
89
00:03:21,720 –> 00:03:23,250
باشد. روی صفحه و سپس میخواهیم
90
00:03:23,250 –> 00:03:26,630
بگوییم خود بالا برابر است با ارتفاع نقطه
91
00:03:26,630 –> 00:03:31,320
خود – فکر میکنم نقطه بالای لوله کمتر از
92
00:03:31,320 –> 00:03:34,380
ارتفاع میشود، اکنون میدانم که به نظر
93
00:03:34,380 –> 00:03:35,880
گیجکننده است، اما اساساً اگر میخواهیم
94
00:03:35,880 –> 00:03:37,560
بفهمیم که بالای لوله ما
95
00:03:37,560 –> 00:03:39,090
باید کجا باشد. اجازه دهید من به تصویر خود برگردم
96
00:03:39,090 –> 00:03:41,880
در اینجا باید
97
00:03:41,880 –> 00:03:43,799
موقعیت بالای سمت چپ تصویر را برای لوله خود مشخص کنیم
98
00:03:43,799 –> 00:03:45,720
زیرا فرض کنید این جایی است که می
99
00:03:45,720 –> 00:03:48,299
خواهیم لوله بالایی مشابه به خوبی قرار گیرد،
100
00:03:48,299 –> 00:03:50,220
ما این عدد را داریم تا بفهمیم کجا به آن
101
00:03:50,220 –> 00:03:52,230
نیاز داریم. برای ترسیم آن روی صفحه باید
102
00:03:52,230 –> 00:03:53,519
ارتفاع را مشخص کنیم از آن تصویر و
103
00:03:53,519 –> 00:03:55,590
تفریق، بنابراین احتمالاً
104
00:03:55,590 –> 00:03:57,540
لوله را در یک مکان منفی می کشیم،
105
00:03:57,540 –> 00:03:59,579
اما از آنجایی که بسیار طولانی است، پس آنچه اتفاق می
106
00:03:59,579 –> 00:04:01,200
افتد این است که از صفحه پایین می رود
107
00:04:01,200 –> 00:04:02,970
و در واقع می خواهیم
108
00:04:02,970 –> 00:04:05,160
بدانید که پایین لوله بالا
109
00:04:05,160 –> 00:04:06,900
be در موقعیت صحیح قرار خواهد گرفت، بنابراین
110
00:04:06,900 –> 00:04:08,190
این همان کاری است که ما اکنون در اینجا برای
111
00:04:08,190 –> 00:04:10,079
این لوله انجام می دهیم، آسان است زیرا گوشه سمت چپ بالا
112
00:04:10,079 –> 00:04:12,420
دقیقاً همان WHI است که
113
00:04:12,420 –> 00:04:14,430
این لوله قرار است در آن قرار گیرد، اما
114
00:04:14,430 –> 00:04:15,989
برای لوله بالایی شما کمی بیشتر می دانید.
115
00:04:15,989 –> 00:04:17,399
دشوار است، بنابراین به هر حال بیایید آن را پاک
116
00:04:17,399 –> 00:04:19,108
کنیم، امیدوارم که منطقی باشد،
117
00:04:19,108 –> 00:04:21,329
بنابراین آسان است یا حدس میزنم
118
00:04:21,329 –> 00:04:22,680
که این قسمت سخت است، اکنون میخواهیم بگوییم که
119
00:04:22,680 –> 00:04:25,530
نقطههای خود به اندازه است در این
120
00:04:25,530 –> 00:04:27,840
مورد ارتفاع نقطه
121
00:04:27,840 –> 00:04:32,200
خود به علاوه شکاف فکری خودم، اکنون از خودم استفاده میکنم
122
00:04:32,200 –> 00:04:33,580
شکاف فکری از این بالا که 200 است،
123
00:04:33,580 –> 00:04:35,320
یعنی می توانم به خوبی از شر این شکاف خلاص شوم،
124
00:04:35,320 –> 00:04:37,330
بنابراین اکنون برای
125
00:04:37,330 –> 00:04:38,950
سخت ترین روش آن ها، روش حرکت
126
00:04:38,950 –> 00:04:41,590
، کاملاً طعنه آمیز هستم،
127
00:04:41,590 –> 00:04:42,730
زیرا تنها کاری که ما برای
128
00:04:42,730 –> 00:04:44,919
جابجایی لوله های خود باید انجام دهیم این است که تغییر تی موقعیت x
129
00:04:44,919 –> 00:04:46,870
بر اساس سرعتی که
130
00:04:46,870 –> 00:04:48,760
لوله باید هر فریم را حرکت دهد، بنابراین در این
131
00:04:48,760 –> 00:04:50,139
مورد تنها کاری که باید انجام دهیم این است که بگوییم خود
132
00:04:50,139 –> 00:04:53,080
فکر می کنم چرا y متاسف نیستیم X منهای
133
00:04:53,080 –> 00:04:55,510
برابر است با خود فکر سقوط کرد زیرا هر
134
00:04:55,510 –> 00:04:57,280
بار که ما این روش حرکت را می نامیم که قرار است انجام
135
00:04:57,280 –> 00:04:58,720
شود. همانطور که
136
00:04:58,720 –> 00:05:00,940
ما حرکت پرنده خود را در داخل حلقه while صدا می
137
00:05:00,940 –> 00:05:03,340
زنیم تنها کاری که می خواهیم انجام دهیم این است که فقط لوله را به
138
00:05:03,340 –> 00:05:05,110
سمت چپ کمی به سمت راست بر اساس
139
00:05:05,110 –> 00:05:07,180
جایی که آن سرعت خوب است حرکت دهیم به اندازه کافی آسان است،
140
00:05:07,180 –> 00:05:10,419
حالا بعدی تعریف شده است این را بکشید. قرار است
141
00:05:10,419 –> 00:05:11,710
لوله ما را بکشد و
142
00:05:11,710 –> 00:05:13,570
ما یک لوله را هم بالا
143
00:05:13,570 –> 00:05:16,180
و هم پایین در نظر می گیریم، بنابراین این بالا و پایین را ترسیم می کند،
144
00:05:16,180 –> 00:05:17,950
اکنون باید به آن
145
00:05:17,950 –> 00:05:20,110
پنجره بدهیم و کاری که در اینجا انجام می دهیم این است که به سادگی
146
00:05:20,110 –> 00:05:23,110
بگوییم win dog blitz و در این مورد ما
147
00:05:23,110 –> 00:05:25,150
در قسمت بالای لوله خودآموز
148
00:05:25,150 –> 00:05:27,300
شما هستیم که لوله بالایی این کار را در
149
00:05:27,300 –> 00:05:30,310
X self dot top این کار را انجام می دهد زیرا
150
00:05:30,310 –> 00:05:31,479
دوباره این اعداد را قبلاً محاسبه کرده ایم
151
00:05:31,479 –> 00:05:33,640
و سپس به لوله پایین اجازه می دهیم
152
00:05:33,640 –> 00:05:35,530
تا این کار را انجام دهد. من فکر می کنم من حدس می زنم که آن
153
00:05:35,530 –> 00:05:38,680
را لوله زیر مربع و سپس
154
00:05:38,680 –> 00:05:41,100
این خواهد شد elf dot X و self dot
155
00:05:41,100 –> 00:05:44,140
bottom اگر میتوانستم درست تایپ کنم
156
00:05:44,140 –> 00:05:46,210
خوب است، بنابراین اکنون داریم که آن را ترسیم میکند
157
00:05:46,210 –> 00:05:48,669
و آخرین روش و
158
00:05:48,669 –> 00:05:50,470
پیچیدهترین احتمالاً از همه
159
00:05:50,470 –> 00:05:53,080
اینها برخورد است، اکنون اینجاست که ما
160
00:05:53,080 –> 00:05:55,930
در مورد برخورد کامل پیکسل صحبت
161
00:05:55,930 –> 00:05:57,820
میکنیم. من قبلاً گفتم و دوباره اینجا را به
162
00:05:57,820 –> 00:05:59,200
من شل کنید زیرا من دارم با موس نقاشی میکنم
163
00:05:59,200 –> 00:06:01,570
کاری که معمولاً انجام میدهیم این است که
164
00:06:01,570 –> 00:06:04,060
جعبههایی را در اطراف همه اشیاء خود میکشیم، بنابراین
165
00:06:04,060 –> 00:06:05,740
فرض کنید جعبهای مانند آن داریم و در
166
00:06:05,740 –> 00:06:07,300
اطراف لولهمان کشیدن یک جعبه بسیار آسان است. جعبه
167
00:06:07,300 –> 00:06:08,860
چون در حال حاضر جعبه ای بسیار شکل است،
168
00:06:08,860 –> 00:06:11,710
حالا یک کادر دیگر می کشیم، کاری که انجام می دهیم این است که بررسی می کنیم
169
00:06:11,710 –> 00:06:14,530
آیا این دو جعبه با یکدیگر برخورد می کنند
170
00:06:14,530 –> 00:06:17,200
یا نه، این گاهی اوقات مشکل ساز است
171
00:06:17,200 –> 00:06:20,740
زیرا این بدان معناست که حتی اگر می دانید
172
00:06:20,740 –> 00:06:22,720
بیایید بگوییم اینها مانند این قسمت از
173
00:06:22,720 –> 00:06:25,060
جعبه با دیگری برخورد می کند. جعبه یا شاید
174
00:06:25,060 –> 00:06:27,460
ما یکی از این موارد را داشته باشیم، میگوییم که
175
00:06:27,460 –> 00:06:30,580
این دو شی با هم برخورد کردهاند، زمانی که کاربر
176
00:06:30,580 –> 00:06:32,710
واقعاً نمیبیند که این urn
177
00:06:32,710 –> 00:06:36,729
به خوبی با این کادر برخورد میکند، زیرا
178
00:06:36,729 –> 00:06:38,320
میدانید پیکسلها در آن مکان نیستند،
179
00:06:38,320 –> 00:06:40,110
اکنون این یکی است.
180
00:06:40,110 –> 00:06:41,310
روشی برای انجام برخورد اما من نمیخواستم این
181
00:06:41,310 –> 00:06:42,690
کار را برای این پروژه انجام دهم، بنابراین
182
00:06:42,690 –> 00:06:45,210
از چیزی به نام ماسک استفاده میکنم که اکنون یک ماسک
183
00:06:45,210 –> 00:06:47,610
اساساً وجود دارد و در واقع
184
00:06:47,610 –> 00:06:49,290
تبلت طراحی خود را بیرون میآورم فقط برای اینکه بدانید
185
00:06:49,290 –> 00:06:51,570
این را کمی تمیزتر کنید.
186
00:06:51,570 –> 00:06:54,060
نوعی آرایه یا لیستی از جایی است که
187
00:06:54,060 –> 00:06:56,640
همه پیکسل ها در داخل یک جعبه قرار دارند، اکنون
188
00:06:56,640 –> 00:06:58,890
تا حدودی پیچیده است، سعی می کنم
189
00:06:58,890 –> 00:07:00,300
آن را ساده کنم، اما اساساً اگر
190
00:07:00,300 –> 00:07:03,030
دو جعبه مانند این داشته باشیم و دو دایره داشته باشیم،
191
00:07:03,030 –> 00:07:06,510
ماسک چه کاری انجام می دهد. به ما میگوید
192
00:07:06,510 –> 00:07:09,210
این دایرهها کجا هستند، بنابراین کاری که میتوانیم
193
00:07:09,210 –> 00:07:11,310
انجام دهیم این است که میتوانیم ببینیم که آیا این دو
194
00:07:11,310 –> 00:07:14,100
جعبه به این شکل با هم برخورد میکنند یا خیر و
195
00:07:14,100 –> 00:07:15,870
شاید یک دایره در اینجا وجود دارد و یک دایره در اینجا وجود دارد
196
00:07:15,870 –> 00:07:18,750
و ما میتوانیم بررسی کنیم که آیا هر یک
197
00:07:18,750 –> 00:07:20,640
از پیکسلهای داخل این جعبهها
198
00:07:20,640 –> 00:07:23,190
واقعاً هستند یا خیر. لمس کردن و در این مورد این
199
00:07:23,190 –> 00:07:25,350
پیکسل ها با هم تماس ندارند، بنابراین می گوییم
200
00:07:25,350 –> 00:07:27,960
که با هم برخورد نمی کند، اما اگر در
201
00:07:27,960 –> 00:07:29,490
جایی که داریم برخوردی داشته باشیم، یک
202
00:07:29,490 –> 00:07:31,740
دایره را می شناسیم و بیایید بگوییم که آن کادر
203
00:07:31,740 –> 00:07:34,080
و این دایره دیگر را داریم، زیرا این پیکسل ها
204
00:07:34,080 –> 00:07:35,700
دقیقاً در اینجا هستند. این منطقه در واقع
205
00:07:35,700 –> 00:07:37,290
ما را لمس می کند ما می گوییم که
206
00:07:37,290 –> 00:07:39,810
این اکنون با هم برخورد می کند، اینجا جایی است که ما از ماسک ها
207
00:07:39,810 –> 00:07:43,080
در بازی PI استفاده کردیم و یک ماسک فقط به
208
00:07:43,080 –> 00:07:44,610
یک تصویر نگاه می کند و متوجه می
209
00:07:44,610 –> 00:07:46,410
شود که در واقع همه پیکسل ها کجا هستند
210
00:07:46,410 –> 00:07:48,180
زیرا این تصاویر
211
00:07:48,180 –> 00:07:50,100
پس زمینه شفاف دارند آنچه که می تواند انجام دهد این است که ببیند
212
00:07:50,100 –> 00:07:52,410
آیا پیکسل شفاف است یا اگر
213
00:07:52,410 –> 00:07:54,300
نیست و سپس کاری که انجام می دهد این است که
214
00:07:54,300 –> 00:07:56,910
یک لیست ایجاد می کند که در
215
00:07:56,910 –> 00:07:59,520
واقع یک لیست 2 بعدی ایجاد می کند و
216
00:07:59,520 –> 00:08:01,860
به تعداد پیکسل
217
00:08:01,860 –> 00:08:03,930
هایی که پایین می آیند سطر و به تعداد پیکسل ها ستون
218
00:08:03,930 –> 00:08:06,270
خواهد داشت. در عرض، فرض
219
00:08:06,270 –> 00:08:09,150
کنید تصویری داریم که 10 در 10 است، خوب
220
00:08:09,150 –> 00:08:10,830
چیزی که میخواهیم دریافت کنیم این است که 10
221
00:08:10,830 –> 00:08:14,310
ورودی در اینجا دریافت میکنیم، بنابراین 1 تا 10 و سپس
222
00:08:14,310 –> 00:08:17,430
10 ردیف پیکسل دریافت میکنیم، بنابراین
223
00:08:17,430 –> 00:08:18,930
بیایید بگوییم که شما این را میدانید. شماره 10
224
00:08:18,930 –> 00:08:21,150
به این صورت است و کاری که ما انجام خواهیم داد این است
225
00:08:21,150 –> 00:08:22,920
که این دو لیست را خواهیم داشت و
226
00:08:22,920 –> 00:08:25,470
برای هر تصویر یکی خواهیم داشت و این
227
00:08:25,470 –> 00:08:27,270
دو لیست را با هم مقایسه می کنیم و خواهیم دید که
228
00:08:27,270 –> 00:08:29,550
آیا در هر لیست پیکسل هایی وجود دارد که
229
00:08:29,550 –> 00:08:31,680
برخورد با یکدیگر و یا که نشستن در
230
00:08:31,680 –> 00:08:33,840
نوع از همان منطقه و سپس آن روشی
231
00:08:33,840 –> 00:08:35,190
که ما می توانیم تعیین کنیم که آیا ما تصادف کامل پیکسل داشتیم یا نه،
232
00:08:35,190 –> 00:08:37,229
233
00:08:37,229 –> 00:08:38,729
تا آنجا که من می خواهم این را توضیح دهم
234
00:08:38,729 –> 00:08:40,530
اگر متوجه نشدید دوباره عذرخواهی می کنم،
235
00:08:40,530 –> 00:08:43,169
اما به نوعی با
236
00:08:43,169 –> 00:08:44,430
ویدیوی خودش به تنهایی توضیح می دهد که من میخواهیم
237
00:08:44,430 –> 00:08:46,170
با عمق زیاد به عمق برویم،
238
00:08:46,170 –> 00:08:48,510
اما pygame عملکردهایی دارد که
239
00:08:48,510 –> 00:08:51,510
به ما کمک میکند این کار را انجام دهیم که فقط
240
00:08:51,510 –> 00:08:53,820
برخورد ماسک است، به همین دلیل است
241
00:08:53,820 –> 00:08:57,420
که باید get masks را روی این فراخوانی
242
00:08:57,420 –> 00:08:58,920
کنیم یا باید این روش را ایجاد کنیم get masks.
243
00:08:58,920 –> 00:09:01,200
بر اساس تصویر می تواند ماسک را برای ما دریافت کند
244
00:09:01,200 –> 00:09:03,120
که فقط یک لیست دو بعدی است و
245
00:09:03,120 –> 00:09:05,040
سپس می توانیم آن ماسک را با
246
00:09:05,040 –> 00:09:06,780
ماسک های دیگر خود مقایسه کنیم، بنابراین به هر حال بیایید
247
00:09:06,780 –> 00:09:09,630
این روش به نام برخورد ایجاد کنیم، بیایید
248
00:09:09,630 –> 00:09:11,550
خود را در اینجا قرار دهیم و سپس کاری که می
249
00:09:11,550 –> 00:09:14,010
خواهیم انجام دهیم در واقع این است که پرنده و
250
00:09:14,010 –> 00:09:17,880
پنجره به ما داده شود، من
251
00:09:17,880 –> 00:09:20,700
در واقع یادم نیست که چرا از پنجره عبور می
252
00:09:20,700 –> 00:09:22,800
کنم، فکر می کنم ممکن است از آن برای چیزی استفاده کنم یا
253
00:09:22,800 –> 00:09:24,900
نه، من فقط می خواهم از شر
254
00:09:24,900 –> 00:09:26,010
آن خلاص شوم زیرا من این کار را نمی کنم فکر می کنم ما
255
00:09:26,010 –> 00:09:28,560
به آن نیاز داریم، اما کاری که من می خواهم انجام دهم این است که
256
00:09:28,560 –> 00:09:31,050
اول از همه بگم ماسک زیر خط ird برابر است با
257
00:09:31,050 –> 00:09:33,540
پرنده ای که از اینجا عبور
258
00:09:33,540 –> 00:09:35,220
می کرد، یعنی شی پرنده
259
00:09:35,220 –> 00:09