در این مطلب، ویدئو آموزش Pygame / Python: ایجاد مکانیک رانندگی به سبک GTA2 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:17:23
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,460
سلام در این آموزش ما قصد داریم این را
2
00:00:02,460 –> 00:00:04,560
ایجاد کنیم این یک
3
00:00:04,560 –> 00:00:06,359
بازی رانندگی از بالا به پایین بسیار ساده است
4
00:00:06,359 –> 00:00:08,519
که در آن می توانیم دکمه فاصله را فشار
5
00:00:08,519 –> 00:00:10,230
دهیم و ماشین را روشن کنیم و در حال رانندگی است و
6
00:00:10,230 –> 00:00:12,120
می توانیم چپ و راست را فشار دهیم تا ماشین را به چپ و راست حرکت
7
00:00:12,120 –> 00:00:14,429
دهیم و ما
8
00:00:14,429 –> 00:00:16,710
مکانیک رانندگی نسبتاً مناسبی برای ماشین
9
00:00:16,710 –> 00:00:18,960
کامل نیست اما برای مکانیک رانندگی اولیه کار می کند
10
00:00:18,960 –> 00:00:22,289
و مهمتر از
11
00:00:22,289 –> 00:00:23,699
همه ما از بردارها برای استخراج
12
00:00:23,699 –> 00:00:26,070
ماشین استفاده می کنیم که یک موضوع کاملاً جدید است و
13
00:00:26,070 –> 00:00:27,510
Piegan که من
14
00:00:27,510 –> 00:00:30,359
کمی در مورد آن صحبت خواهم کرد. مستقیما وارد شوید و
15
00:00:30,359 –> 00:00:32,098
این موضوعی است که کمی
16
00:00:32,098 –> 00:00:34,350
از pygame پیشرفته تر می شود، بنابراین اگر
17
00:00:34,350 –> 00:00:36,270
کاملاً در این برنامه تازه کار هستید،
18
00:00:36,270 –> 00:00:37,739
احتمالاً می خواهید این دو
19
00:00:37,739 –> 00:00:39,600
ویدیو را حداقل یک
20
00:00:39,600 –> 00:00:41,219
مقدمه اولیه برای بازی PI و یک
21
00:00:41,219 –> 00:00:43,530
مقدمه برای بررسی کنید. بازی sprites و PI هر
22
00:00:43,530 –> 00:00:45,329
دو واقعاً برای شما مفید هستند تا بفهمید
23
00:00:45,329 –> 00:00:46,620
در این ویدیو چه خبر است و
24
00:00:46,620 –> 00:00:48,840
علاوه بر آن من یک ویدیو در مورد
25
00:00:48,840 –> 00:00:51,510
چرخش چیزها در بازی PI تهیه کردم که
26
00:00:51,510 –> 00:00:53,340
در این ویدیو نیز از آن استفاده خواهم کرد.
27
00:00:53,340 –> 00:00:54,629
deos در مورد جزئیات بیشتر کمک می کند،
28
00:00:54,629 –> 00:00:57,210
بنابراین در اینجا ما یک
29
00:00:57,210 –> 00:00:59,280
راه اندازی بسیار ساده برای بازی pi داریم و قبلاً
30
00:00:59,280 –> 00:01:01,440
یک کلاس sprite داریم که من آن را ماشین نامیده ام
31
00:01:01,440 –> 00:01:03,809
و این ماشین اصلی ما خواهد بود
32
00:01:03,809 –> 00:01:06,060
و در حال حاضر کار زیادی انجام نمی دهد. فقط
33
00:01:06,060 –> 00:01:08,010
یک سطح دریافت می کند که به آن
34
00:01:08,010 –> 00:01:11,400
تصویر اصلی می گویند که یک PNG صوتی را وارد می کند که
35
00:01:11,400 –> 00:01:13,260
در همان پوشه کد است که
36
00:01:13,260 –> 00:01:15,390
این تصویر اصلی را روی یک تصویر قرار داده اند به طوری که
37
00:01:15,390 –> 00:01:17,610
من سطح را تمرین کردم و چیزی که
38
00:01:17,610 –> 00:01:20,369
فراموش کردم اینجا اضافه کنم خود مستقیم است. این
39
00:01:20,369 –> 00:01:24,840
بعد از اینکه تصویر را rekt و مرکز نمیگیرد،
40
00:01:24,840 –> 00:01:27,990
فکر میکنم آن را در سایز 6 و 40 و
41
00:01:27,990 –> 00:01:30,479
دوست در 60 قرار دادهام، بنابراین اتفاقی که میافتد
42
00:01:30,479 –> 00:01:32,070
این است که ما یک تصویر را وارد میکنیم
43
00:01:32,070 –> 00:01:33,689
و این تصویر را روی صفحه قرار میدهیم و
44
00:01:33,689 –> 00:01:35,100
یک مستطیل در اطراف صفحه
45
00:01:35,100 –> 00:01:36,930
قرار میدهیم. در اصل یک کلاس sprite ساده است
46
00:01:36,930 –> 00:01:39,060
و تنها دلیلی که من این
47
00:01:39,060 –> 00:01:41,280
دو خط را جدا کردم این است که باید
48
00:01:41,280 –> 00:01:43,829
این سطح را بچرخانیم و هر زمان که
49
00:01:43,829 –> 00:01:45,720
چیزی را در بازی PI می چرخانیم کمی کیفیت را از دست می دهد
50
00:01:45,720 –> 00:01:48,149
و برای جلوگیری از افت کیفیت
51
00:01:48,149 –> 00:01:50,250
این دو فایل مختلف را تقسیم می کنیم.
52
00:01:50,250 –> 00:01:52,259
ما می توانیم ro یک و تصویر ایمنی را در
53
00:01:52,259 –> 00:01:53,070
یک سطح دیگر
54
00:01:53,070 –> 00:01:55,049
توضیح دادم که منطق را در یک ویدیوی دیگر توضیح
55
00:01:55,049 –> 00:01:56,640
دادم اگر جزئیات بیشتری در این مورد می خواهید این یکی را بررسی
56
00:01:56,640 –> 00:01:59,040
کنید اما علاوه بر این
57
00:01:59,040 –> 00:02:00,689
کد ما تا کنون هیچ کاری انجام نمی دهد
58
00:02:00,689 –> 00:02:02,520
زیرا در حال حاضر ما از
59
00:02:02,520 –> 00:02:04,020
کلاس استفاده نمی کنیم و ما حتی
60
00:02:04,020 –> 00:02:06,360
یک تصویر پسزمینه نمیکشیم، بیایید
61
00:02:06,360 –> 00:02:08,128
با آن شروع کنیم، در واقع اولین راهی که
62
00:02:08,128 –> 00:02:09,929
میخواهم انجام دهم این است که یک تصویر پسزمینه را وارد
63
00:02:09,929 –> 00:02:11,910
کنیم و این مسیری را
64
00:02:11,910 –> 00:02:13,620
که میخواهیم در آن رانندگی کنیم به ما میدهد و من این
65
00:02:13,620 –> 00:02:14,040
یک
66
00:02:14,040 –> 00:02:19,200
مسیر b:g را دارم. و این بارگذاری تصویر بازی PI است
67
00:02:19,200 –> 00:02:24,060
و من نقطه پیانجی و
68
00:02:24,060 –> 00:02:27,359
این فایل PNG را بهعنوان یک
69
00:02:27,359 –> 00:02:33,019
عکس عقبتر قرار میدهم، بنابراین صفحه BG مسیر را
70
00:02:33,019 –> 00:02:37,709
فراتر از این مسیر کد قرار میدهم و آن را
71
00:02:37,709 –> 00:02:41,840
در بالا سمت چپ قرار میدهم. از صفحه نمایش و
72
00:02:41,840 –> 00:02:44,189
ما در حال حاضر پیست مسابقه خود را داریم،
73
00:02:44,189 –> 00:02:46,170
بدیهی است که اگر
74
00:02:46,170 –> 00:02:47,780
روی آن رانندگی نکنیم هیچ اتفاقی نمی افتد، این فقط یک تصویر است،
75
00:02:47,780 –> 00:02:50,700
اما این بخش مهم نیست،
76
00:02:50,700 –> 00:02:53,609
بخش مهم خود ماشین ما است و
77
00:02:53,609 –> 00:02:56,069
فعلا بیایید فقط ماشین را بسازیم و قرار دهیم. آن را
78
00:02:56,069 –> 00:02:57,720
بر روی صفحه نمایش و سپس ما حدود
79
00:02:57,720 –> 00:03:00,629
نگران جابهجایی آن هستم و اولین کاری
80
00:03:00,629 –> 00:03:03,359
که میخواهم انجام دهم این است که ماشین جدیدمان را بسازم.
81
00:03:03,359 –> 00:03:05,989
من با ماشین به سراغ گریدرها میروم و
82
00:03:05,989 –> 00:03:08,389
در واقع به عرض و ارتفاعی
83
00:03:08,389 –> 00:03:12,030
که باقیمانده بود نیاز ندارد، بنابراین فقط برای
84
00:03:12,030 –> 00:03:14,010
ساخت ماشین است. باید این
85
00:03:14,010 –> 00:03:17,040
ماشین را در یک کلاس قرار دهم و من میخواهم آن را
86
00:03:17,040 –> 00:03:21,000
ماشینها بنامم و این برای هر بازی
87
00:03:21,000 –> 00:03:28,470
گروه تکنقطه اسپرایت است و سپس ماشین را
88
00:03:28,470 –> 00:03:31,889
ذخیره کنید ماشین را اضافه کنید، بنابراین این یک راهاندازی بسیار ابتدایی
89
00:03:31,889 –> 00:03:33,810
برای گروهی است که ابتدا یک اسپرایت ایجاد میکنیم.
90
00:03:33,810 –> 00:03:35,970
شی و یک گروه ایجاد می کنیم و
91
00:03:35,970 –> 00:03:37,829
سپس شی sprite را به گروه اضافه می کنیم
92
00:03:37,829 –> 00:03:41,909
و حالا در حلقه بازی خود به
93
00:03:41,909 –> 00:03:45,569
ماشین هایی نیاز داریم که بکشیم و روی چه سطحی می
94
00:03:45,569 –> 00:03:48,000
خواهید روی صفحه بکشید و با آن
95
00:03:48,000 –> 00:03:50,579
می توانیم ماشین خود را روی صفحه ببینیم.
96
00:03:50,579 –> 00:03:52,139
در حال حاضر بسیار بزرگ در حال حاضر ما
97
00:03:52,139 –> 00:03:53,540
روی آن کار خواهیم کرد
98
00:03:53,540 –> 00:03:55,919
، ابتدا یک چیز دیگر وجود دارد که می توانیم
99
00:03:55,919 –> 00:03:58,409
این مورد را تا حدی ساده کنیم زیرا
100
00:03:58,409 –> 00:04:01,769
من واقعاً نیاز دارم این ماشین را در
101
00:04:01,769 –> 00:04:03,870
این تک گروه قرار دهم زیرا هر چیزی
102
00:04:03,870 –> 00:04:05,849
که در اینجا منتقل می شود به طور خودکار
103
00:04:05,849 –> 00:04:08,280
به این گروه اضافه می شود و پس از
104
00:04:08,280 –> 00:04:09,989
آن می توانیم ge از شر این دو خط خلاص شوید
105
00:04:09,989 –> 00:04:14,579
و با این ماشین و ماشین تماس بگیرید و
106
00:04:14,579 –> 00:04:16,560
این کل کد را تا حدی
107
00:04:16,560 –> 00:04:18,060
ساده می کند و روش نوشتن همه اینها بسیار ساده تر است،
108
00:04:18,060 –> 00:04:20,099
بنابراین اگر اکنون کد را اجرا
109
00:04:20,099 –> 00:04:22,560
کنم همان نتیجه را می گیریم و با انجام آن یکی
110
00:04:22,560 –> 00:04:24,360
بیایید در واقع روی حرکت و چرخش ماشین کار می
111
00:04:24,360 –> 00:04:25,830
112
00:04:25,830 –> 00:04:27,300
کنم و من فقط با
113
00:04:27,300 –> 00:04:30,120
چرخاندن کربوهیدرات شروع می کنم اگر چپ و راست را فشار دهم و
114
00:04:30,120 –> 00:04:32,039
بعد از انجام این کار به
115
00:04:32,039 –> 00:04:32,939
حرکت ماشین می رسیم
116
00:04:32,939 –> 00:04:35,639
پس بیایید ماشین را بچرخانیم و
117
00:04:35,639 –> 00:04:37,500
چند تا دیگر وجود دارد. ویژگی هایی که باید این کار را انجام دهم
118
00:04:37,500 –> 00:04:40,009
، اولی زاویه خودآموز است و
119
00:04:40,009 –> 00:04:43,710
به طور پیش فرض این زاویه صفر خواهد بود بنابراین
120
00:04:43,710 –> 00:04:45,180
این زاویه ای است که ماشین قرار است به آن
121
00:04:45,180 –> 00:04:47,879
نگاه کند و دومی خود
122
00:04:47,879 –> 00:04:52,949
نقطه است که من به این سرعت چرخش می گویم و این
123
00:04:52,949 –> 00:04:54,599
به طور موثری سرعت ماشین می تواند
124
00:04:54,599 –> 00:04:56,460
بچرخد و اجازه دهید من این را با
125
00:04:56,460 –> 00:05:00,270
حروف کوچک بنویسم و من با 1.8 رفتم شم
126
00:05:00,270 –> 00:05:02,099
می توانید با سرعت کمتر یا بالاتر بروید فق
127
00:05:02,099 –> 00:05:04,319
با کد آزمایش کنید و بب
128
00:05:04,319 –> 00:05:06,090
نید چه چیزی خوب به نظر می رسد و این یکی دق
129
00:05:06,090 –> 00:05:07,560
قاً اینجاست که مردم به آن نیاز دارند. جهت خود
130
00:05:07,560 –> 00:05:10,289
نقطه و به طور پیش فرض است این
131
00:05:10,289 –> 00:05:12,659
هیچکدام نیست و این ویژگی است
132
00:05:12,659 –> 00:05:14,310
که ما میخواهیم با ورودی صفحهکلیدمان تحتتاثیر
133
00:05:14,310 –> 00:05:18,810
قرار دهیم که در اینجا
134
00:05:18,810 –> 00:05:21,090
در حلقه رویداد اتفاق میافتد و کاری که من میخواهم انجام دهم این
135
00:05:21,090 –> 00:05:25,949
است که اگر نوع نقطه رویداد برابر با PI بازی
136
00:05:25,949 –> 00:05:28,770
افکار کلید پایین باشد، اگر هر
137
00:05:28,770 –> 00:05:32,270
دکمه ای را به پایین فشار دهید و سپس اگر کلید زوج
138
00:05:32,270 –> 00:05:40,940
برابر با نقطه بازی PI باشد، درست است و
139
00:05:40,940 –> 00:05:47,610
ما نیز یک چهار کلید را به سمت چپ میخواهیم و سپس
140
00:05:47,610 –> 00:05:48,779
میخواهیم همین کار را انجام دهیم وقتی
141
00:05:48,779 –> 00:05:50,339
دوباره کلید را بالا بردیم و من اضافه میکنم.
142
00:05:50,339 –> 00:05:52,199
کد همه اینها را فقط کمی
143
00:05:52,199 –> 00:05:55,830
کلید بزنید، بنابراین اکنون باید کدی را به
144
00:05:55,830 –> 00:05:58,620
این چهار خط مختلف اضافه کنیم تا در
145
00:05:58,620 –> 00:06:00,389
واقع نشان
146
00:06:00,389 –> 00:06:02,039
دهیم که وقتی یک دکمه را فشار میدهیم، ماشین باید چه کاری انجام دهد
147
00:06:02,039 –> 00:06:03,900
و منطقی که من به آن رسیدم اینجاست.
148
00:06:03,900 –> 00:06:05,550
جهت می تواند سه مقدار مختلف داشته
149
00:06:05,550 –> 00:06:10,379
باشد 1 0 و منهای 1 اگر 1
150
00:06:10,379 –> 00:06:12,029
باشد،
151
00:06:12,029 –> 00:06:13,830
خودروها اگر منهای 1 باشد به راست می چرخند
152
00:06:13,830 –> 00:06:15,930
و اگر 0 باشد به هیچ وجه نمی
153
00:06:15,930 –> 00:06:18,419
چرخد و هر زمان که کلید راست را فشار می ده
154
00:06:18,419 –> 00:06:20,520
م صفحه کلید خود را
155
00:06:20,520 –> 00:06:23,279
به جهت خود اضافه می کنیم و زمانی که ما می رویم در بالای
156
00:06:23,279 –> 00:06:24,659
کلید سمت راست
157
00:06:24,659 –> 00:06:26,759
یکی از آن کم می کنیم و سپس منطق مخالف
158
00:06:26,759 –> 00:06:29,190
کلید سمت چپ و دلیل اصلی
159
00:06:29,190 –> 00:06:31,560
آن این است که اگر هر دو سمت چپ و
160
00:06:31,560 –> 00:06:33,750
راست را فشار دهید، 0 می گیرید، بنابراین ماشین ها
161
00:06:33,750 –> 00:06:34,830
در یک مسیر حرکت می کنند. خط مستقیم
162
00:06:34,830 –> 00:06:36,990
و حالا بیایید همه اینها را پیاده سازی کنیم
163
00:06:36,990 –> 00:06:38,729
و یک اشتباهی که من مرتکب می شوم این نباید باشد
164
00:06:38,729 –> 00:06:39,690
هیچ کدام، کشتی
165
00:06:39,690 –> 00:06:42,300
واضح است، بنابراین اکنون بیایید قدم به قدم برویم
166
00:06:42,300 –> 00:06:44,460
اولین کاری که می خواهم انجام دهم این است که
167
00:06:44,460 –> 00:06:46,740
فقط کلید را به سمت راست فشار دهم می خواهم اضافه کنم یکی
168
00:06:46,740 –> 00:06:47,880
به این سمت
169
00:06:47,880 –> 00:06:49,950
و برای رسیدن به این ویژگی ابتدا
170
00:06:49,950 –> 00:06:52,380
باید خود گروه و
171
00:06:52,380 –> 00:06:54,180
سپس اسپرایت داخل این گروه را هدف قرار
172
00:06:54,180 –> 00:06:57,450
دهیم، بنابراین چیزی که ما نیاز داریم car dot sprite است و
173
00:06:57,450 –> 00:06:59,670
این چیزی است که فقط برای
174
00:06:59,670 –> 00:07:01,560
گروههای تکی کار میکند اگر شما یک تکنفره معمولی داشته باشید.
175
00:07:01,560 –> 00:07:03,180
گروه sprite این کار نمی کند
176
00:07:03,180 –> 00:07:04,950
زیرا همه در یک گروه می توانید
177
00:07:04,950 –> 00:07:06,810
اسپرایت را در داخل گروه هدف قرار دهید
178
00:07:06,810 –> 00:07:08,850
اما اکنون ما خود شیء را داریم بنابراین اکنون
179
00:07:08,850 –> 00:07:11,580
می توانیم فقط جهت را برویم و آنچه من می خواهم
180
00:07:11,580 –> 00:07:14,490
یک کلاسیک است و سپس چهار کلید باقی مانده است.
181
00:07:14,490 –> 00:07:17,690
دقیقا برعکسی که منهای می خواهیم داشته باشیم
182
00:07:17,690 –> 00:07:22,290
برابر یک و سپس چهار کلید راست
183
00:07:22,290 –> 00:07:24,960
میخواهیم منهای یک، بنابراین برعکس عمل میکنیم
184
00:07:24,960 –> 00:07:29,460
و سپس چهار کلید چپ میخواهیم به اضافه یک،
185
00:07:29,460 –> 00:07:31,260
بنابراین با این منطق،
186
00:07:31,260 –> 00:07:33,000
اگر کلید راست را فشار دهیم، اساساً چه اتفاقی میافتد
187
00:07:33,000 –> 00:07:35,670
، یک میشود و اگر
188
00:07:35,670 –> 00:07:37,530
Q را بالا بیاوریم. درست دوباره منهای
189
00:07:37,530 –> 00:07:39,270
یک می شود، بنابراین این جهت
190
00:07:39,270 –> 00:07:41,700
دوباره صفر می شود، بنابراین وقتی
191
00:07:41,700 –> 00:07:43,140
کلید را به راست فشار می دهیم، ماشین ها به سمت راست حرکت می کنند
192
00:07:43,140 –> 00:07:45,540
اگر دوباره کلید سمت راست را بالا بیاوریم،
193
00:07:45,540 –> 00:07:46,710
ماشین ها دوباره مستقیم حرکت می کنند
194
00:07:46,710 –> 00:07:49,020
زیرا جهت صفر است و با
195
00:07:49,020 –> 00:07:50,760
در واقع باید منطقی را پیاده سازی
196
00:07:50,760 –> 00:07:52,620
کنیم که اگر این جهت
197
00:07:52,620 –> 00:07:53,730
مقادیر متفاوتی داشته باشد،
198
00:07:53,730 –> 00:07:55,860
جهت های متفاوتی دریافت می کنیم و برای آن باید
199
00:07:55,860 –> 00:07:59,090
یک روش جدید به نام چرخش مجموعه تعریف
200
00:07:59,090 –> 00:08:02,130
کنم که همیشه به عنوان یک
201
00:08:02,130 –> 00:08:04,620
آرگومان عمل می کند و در اینجا می خواهیم
202
00:08:04,620 –> 00:08:06,510
اگر به گزارههای بسیار متفاوت نیاز دارید
203
00:08:06,510 –> 00:08:10,590
و اولین مورد این است که اگر نقطه خود
204
00:08:10,590 –> 00:08:13,170
نعوظ برابر با یک باشد، بنابراین ما
205
00:08:13,170 –> 00:08:16,230
به سمت راست حرکت میکنیم، سپس زاویه خود نقطه
206
00:08:16,230 –> 00:08:18,890
منهای برابر با سرعت چرخش فکری خود خواهد بود
207
00