در این مطلب، ویدئو ساخت مدل های بازی و شروع بازی سیارک ها در Pygame با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:29:28
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,480 –> 00:00:02,240
به ساخت یک بازی سیارکی در بازی pi خوش آمدید
2
00:00:02,240 –> 00:00:04,240
نام من کریس است و راهنمای شما خواهم بود
3
00:00:04,240 –> 00:00:06,799
4
00:00:06,799 –> 00:00:08,800
pygame یک کتابخانه عالی پایتون است که
5
00:00:08,800 –> 00:00:10,800
به شما امکان می دهد تا به سرعت بازی های دو بعدی خود را بنویسید
6
00:00:10,800 –> 00:00:12,080
7
00:00:12,080 –> 00:00:13,759
این دوره به شما نحوه ساختار بازی ها
8
00:00:13,759 –> 00:00:15,280
و اصول اولیه کار
9
00:00:15,280 –> 00:00:16,880
با آن ها را نشان می دهد.
10
00:00:16,880 –> 00:00:19,920
انیمیشن های گرافیکی و
11
00:00:19,920 –> 00:00:21,680
بازی های نوشتن صدا راهی سرگرم کننده برای
12
00:00:21,680 –> 00:00:23,439
تقویت مهارت های خود به عنوان یک کدنویس و ایجاد چیزی است که
13
00:00:23,439 –> 00:00:26,960
می خواهید به دوستان خود نشان دهید
14
00:00:26,960 –> 00:00:29,119
در این دوره شما با
15
00:00:29,119 –> 00:00:31,039
نوشتن یک بازی با بازی پای
16
00:00:31,039 –> 00:00:32,800
با استفاده از حلقه های بازی
17
00:00:32,800 –> 00:00:35,600
از جمله دارایی های تصویر و صدا
18
00:00:35,600 –> 00:00:36,960
و کنترل آشنا خواهید شد. بازی شما از طریق
19
00:00:36,960 –> 00:00:39,920
ورودی صفحه کلید
20
00:00:40,000 –> 00:00:42,480
هشدار اسپویلر این هدف نهایی شماست. یک
21
00:00:42,480 –> 00:00:44,480
کلون از بازی های بازی های قدیمی به
22
00:00:44,480 –> 00:00:46,960
سیارک
23
00:00:46,960 –> 00:00:48,960
24
00:00:48,960 –> 00:00:50,719
ها برخورد
25
00:00:50,719 –> 00:00:52,879
26
00:00:52,879 –> 00:00:54,960
کند. شما
27
00:00:54,960 –> 00:00:56,559
ممکن است در نوشتن آنها مهارت داشته باشید به این
28
00:00:56,559 –> 00:00:58,960
معنی نیست که نمی توانید آنها را بازی کنید این
29
00:00:58,960 –> 00:01:00,559
دوره پر از خنده خواهد بود زیرا مشاهده می کنید
30
00:01:00,559 –> 00:01:03,199
که رفلکس های پیری من چقدر بد هستند.
31
00:01:03,199 –> 00:01:06,239
خوب
32
00:01:06,320 –> 00:01:08,400
قبل از اینکه کد را به شما نشان دهم، یک یادداشت سریع بنویسید،
33
00:01:08,400 –> 00:01:09,840
همه نمونههای اینجا در
34
00:01:09,840 –> 00:01:14,080
برابر python39 و pygame 2.0.1
35
00:01:14,080 –> 00:01:15,759
نسخههای قبلی پایتون آزمایش شدهاند،
36
00:01:15,759 –> 00:01:17,600
تا زمانی که توسط pygame پشتیبانی میشوند، مشکلی ندارند،
37
00:01:17,600 –> 00:01:20,159
اما pygame
38
00:01:20,159 –> 00:01:22,320
در نسخه 2.0 به میزان قابل توجهی تغییر کرده است. مطمئن شوید که
39
00:01:22,320 –> 00:01:25,600
از همان نسخه اصلی استفاده میکنید
40
00:01:25,680 –> 00:01:27,360
، بسیاری از کدنویسهایی که من با علاقهشان به
41
00:01:27,360 –> 00:01:29,040
رایانهها از طریق عشق به
42
00:01:29,040 –> 00:01:30,159
43
00:01:30,159 –> 00:01:32,000
بازیهای ویدیویی در زمان دایناسورها که
44
00:01:32,000 –> 00:01:34,079
در آن زمان
45
00:01:34,079 –> 00:01:36,079
من و دوستانم به آنها مینفریم میگفتند، مجلات دریافت میکردم. به
46
00:01:36,079 –> 00:01:38,560
نوعی مانند ایمیل، اما روی کاغذ براق با
47
00:01:38,560 –> 00:01:40,720
فهرست کد بازیها، لیستها را تایپ میکردیم در حالی
48
00:01:40,720 –> 00:01:42,880
که اغلب متوجه
49
00:01:42,880 –> 00:01:44,560
نمیشدیم کد چه کار میکند، اما
50
00:01:44,560 –> 00:01:46,720
نتیجه نهایی یک الاغ بود که
51
00:01:46,720 –> 00:01:48,320
اگر به اندازه کافی سریع نبودید
52
00:01:48,320 –> 00:01:50,240
با ماشینها برخورد میکرد. تغییر کرده است
53
00:01:50,240 –> 00:01:51,920
برادرزاده جوان من در حال یادگیری کدنویسی
54
00:01:51,920 –> 00:01:53,840
است زیرا می خواهد یک کلاهبردار بسازد
55
00:01:53,840 –> 00:01:55,680
56
00:01:55,680 –> 00:01:57,280
57
00:01:57,280 –> 00:01:59,360
58
00:01:59,360 –> 00:02:01,200
59
00:02:01,200 –> 00:02:02,640
60
00:02:02,640 –> 00:02:04,799
. یک کتابخانه بازی دوبعدی که
61
00:02:04,799 –> 00:02:07,200
برخی از این مشکلات را انتزاعی میکند،
62
00:02:07,200 –> 00:02:09,038
شما
63
00:02:09,038 –> 00:02:11,520
ضربه بعدی شگفتانگیز aaa را با pygame نمینویسید، اما این یک
64
00:02:11,520 –> 00:02:13,200
راه عالی برای یادگیری نحوه کدنویسی بازیها
65
00:02:13,200 –> 00:02:16,080
با منحنی یادگیری بسیار قابل قبول است،
66
00:02:16,080 –> 00:02:18,000
در واقع میتوانید به سادگی به آن دست پیدا کنید. بازیها
67
00:02:18,000 –> 00:02:19,680
به سرعت اجرا میشوند و
68
00:02:19,680 –> 00:02:21,280
با کمی تمرین میتوانید یک
69
00:02:21,280 –> 00:02:25,440
بازی جدید را در یک بعد از ظهر یا یک آخر هفته
70
00:02:25,520 –> 00:02:26,959
در درس بعدی
71
00:02:26,959 –> 00:02:29,120
72
00:02:29,120 –> 00:02:31,840
73
00:02:31,840 –> 00:02:33,280
74
00:02:33,280 –> 00:02:35,360
بنویسید. از دوره در این درس
75
00:02:35,360 –> 00:02:36,959
، قصد دارم به شما نشان دهم که چگونه با pygame شروع کنید
76
00:02:36,959 –> 00:02:39,200
و اشکال ساده را
77
00:02:39,200 –> 00:02:42,480
روی صفحه بکشید و آنها را متحرک
78
00:02:42,480 –> 00:02:44,720
79
00:02:44,720 –> 00:02:47,040
80
00:02:47,040 –> 00:02:48,560
81
00:02:48,560 –> 00:02:51,280
کنید. از یک محیط مجازی استفاده کنید
82
00:02:51,280 –> 00:02:52,959
، لینک هایی در یادداشت های زیر وجود دارد که
83
00:02:52,959 –> 00:02:54,560
می تواند به شما نشان دهد که چگونه این کار را انجام دهید، اگر
84
00:02:54,560 –> 00:02:56,800
قبلاً با محیط مجازی خود این کار را انجام نداده اید،
85
00:02:56,800 –> 00:02:59,280
86
00:02:59,280 –> 00:03:02,159
دستور نصب pip را برای دانلود
87
00:03:02,159 –> 00:03:05,599
و نصب pygame اجرا کنید.
88
00:03:05,599 –> 00:03:07,200
بازیهای ویدیویی حول یک
89
00:03:07,200 –> 00:03:09,360
حلقه بازی مرکزی
90
00:03:09,360 –> 00:03:11,360
در داخل هر تکرار از حلقه بازی ساخته شدهاند
91
00:03:11,360 –> 00:03:12,480
که
92
00:03:12,480 –> 00:03:14,480
هر ورودی از کاربر را مدیریت میکنید یا
93
00:03:14,480 –> 00:03:16,959
رویدادهای بیرونی مانند شبکه
94
00:03:16,959 –> 00:03:18,879
تعیین میکند که قطعات متحرک شما در بازی کجا هستند
95
00:03:18,879 –> 00:03:20,000
96
00:03:20,000 –> 00:03:22,080
و همه چیزهایی که برای کاربر قابل مشاهده است را روی آن ترسیم میکنند.
97
00:03:22,080 –> 00:03:24,959
نمایشگر که یک
98
00:03:24,959 –> 00:03:27,280
فریم از بازی
99
00:03:27,280 –> 00:03:29,440
را رندر میکند، بازیهای فیلم از یک
100
00:03:29,440 –> 00:03:31,840
سری فریم به صورت متوالی روی صفحه نمایش داده
101
00:03:31,840 –> 00:03:33,519
102
00:03:33,519 –> 00:03:35,440
میشوند تا ظاهر حرکت سیالی
103
00:03:35,440 –> 00:03:38,319
که میخواهید حداقل 25 فریم در ثانیه را به دست آورید که اغلب
104
00:03:38,319 –> 00:03:41,519
به عنوان سختافزار بازی مدرن فریم بر ثانیه نیز شناخته میشود.
105
00:03:41,519 –> 00:03:43,519
106
00:03:43,519 –> 00:03:45,519
با بازی های با کیفیت بالا که
107
00:03:45,519 –> 00:03:47,760
به طور معمول از سرعت 60 فریم در
108
00:03:47,760 –> 00:03:50,080
ثانیه استفاده
109
00:03:50,159 –> 00:03:52,720
می کنند، برای رسیدن به هدف 25 فریم در ثانیه
110
00:03:52,720 –> 00:03:55,040
، ابتدا باید یک فریم بکشید،
111
00:03:55,040 –> 00:03:56,720
فریم فقط تصویری است که به صفحه نمایش داده می شود،
112
00:03:56,720 –> 00:03:59,840
البته برای مدت کوتاهی
113
00:03:59,840 –> 00:04:01,760
گرافیکی. سیستمها از یک
114
00:04:01,760 –> 00:04:03,680
سیستم مختصات دکارتی برای توصیف جایی که
115
00:04:03,680 –> 00:04:05,760
اشیا در
116
00:04:05,760 –> 00:04:07,920
قاب هستند استفاده میکنند.
117
00:04:07,920 –> 00:04:10,560
118
00:04:10,560 –> 00:04:13,360
119
00:04:13,360 –> 00:04:16,720
d یک نقطه
120
00:04:16,720 –> 00:04:18,399
کتابخانههای گرافیکی
121
00:04:18,399 –> 00:04:20,399
مختلف به جای
122
00:04:20,399 –> 00:04:22,079
استفاده از مبدأ در مرکز
123
00:04:22,079 –> 00:04:24,479
صفحه، مانند بازی کلاس جبر pi،
124
00:04:24,479 –> 00:04:28,320
از گوشه بالا سمت چپ به عنوان 0 صفر استفاده
125
00:04:28,320 –> 00:04:30,400
میکند تا این دایره را
126
00:04:30,400 –> 00:04:32,639
در نیمه و یک چهارم راه بکشد. در
127
00:04:32,639 –> 00:04:34,240
پایین آن را به صورت
128
00:04:34,240 –> 00:04:36,560
200 در محور x
129
00:04:36,560 –> 00:04:39,680
و 75 در محور y توصیف میکنید،
130
00:04:39,680 –> 00:04:41,840
پارامتر r تابع دایره
131
00:04:41,840 –> 00:04:43,919
شعاع r را مشخص میکند.
132
00:04:43,919 –> 00:04:46,400
133
00:04:46,400 –> 00:04:49,680
134
00:04:49,680 –> 00:04:52,160
پهن
135
00:04:52,160 –> 00:04:55,840
و 300 بلند 200 کاما 75
136
00:04:55,840 –> 00:04:58,160
دایره ای را که در اینجا می بینید به شما می دهد
137
00:04:58,160 –> 00:05:00,400
همه سیستم های گرافیکی از گوشه سمت چپ بالا
138
00:05:00,400 –> 00:05:02,160
به عنوان مبدأ استفاده نمی کنند،
139
00:05:02,160 –> 00:05:04,240
این بدان معنی است که هنگام بارگذاری تصاویر در شما
140
00:05:04,240 –> 00:05:07,600
ممکن است مجبور به ترجمه سیستم های مختصات شوید
141
00:05:07,600 –> 00:05:09,360
یکی دیگر از عوارض جانبی عجیب این
142
00:05:09,360 –> 00:05:11,840
منشاء این است که حرکت به سمت بالا است. روی
143
00:05:11,840 –> 00:05:13,680
صفحه یک جهت منفی است
144
00:05:13,680 –> 00:05:16,800
، بعداً در این مورد بیشتر خواهید دید،
145
00:05:16,800 –> 00:05:18,400
حالا که جهتگیری کردهاید
146
00:05:18,400 –> 00:05:22,400
و دایرهای را دیدهاید، بیایید بریم کدی بنویسیم
147
00:05:22,720 –> 00:05:25,600
این کد برای اولین بازی
148
00:05:25,600 –> 00:05:27,120
شماست آیا نقل قول هوا را شنیدید
149
00:05:27,120 –> 00:05:28,320
150
00:05:28,320 –> 00:05:30,080
برای شروع باید
151
00:05:30,080 –> 00:05:32,560
کتابخانه بازی pi را وارد کنید و آن را مقداردهی اولیه کنید.
152
00:05:32,560 –> 00:05:36,400
تماس init در خط 5 pygame
153
00:05:36,400 –> 00:05:38,479
در خط شش راه اندازی می شود، عنوان صفحه را تنظیم می کنم
154
00:05:38,479 –> 00:05:41,280
و در خط هفت به pygame می گویم
155
00:05:41,280 –> 00:05:44,240
صفحه چقدر بزرگ است.
156
00:05:44,240 –> 00:05:46,960
در این حالت من عرض 800 پیکسل
157
00:05:46,960 –> 00:05:49,360
و ارتفاع 600 پیکسل را انتخاب کردهام،
158
00:05:49,360 –> 00:05:51,840
توجه داشته باشید که روش حالت تنظیم
159
00:05:51,840 –> 00:05:54,160
به جای دو پارامتر، یک تاپلی میگیرد که ابعاد را مشخص میکند،
160
00:05:54,160 –> 00:05:56,880
161
00:05:56,880 –> 00:05:59,680
روش حالت تنظیم یک سطح را برمیگرداند.
162
00:05:59,680 –> 00:06:02,000
163
00:06:02,000 –> 00:06:04,000
سطح
164
00:06:04,000 –> 00:06:05,680
صفحه اصلی برنامه است
165
00:06:05,680 –> 00:06:07,360
که من آن را در متغیری
166
00:06:07,360 –> 00:06:09,520
به نام screen ذخیره می کنم تا بتوانم به این
167
00:06:09,520 –> 00:06:12,400
سطح بکشم
168
00:06:12,400 –> 00:06:14,479
بعداً اشاره کردم که بازی ها یک حلقه بازی دارند
169
00:06:14,479 –> 00:06:16,639
و اینجا مال شماست
170
00:06:16,639 –> 00:06:19,520
این در حالی که حلقه حلقه برای همیشه یا تا زمانی
171
00:06:19,520 –> 00:06:22,400
که کسی آن را باز کند. شرط خروج
172
00:06:22,400 –> 00:06:24,560
در این حلقه معمولاً هر گونه
173
00:06:24,560 –> 00:06:26,160
تعامل کاربر را انجام می دهید
174
00:06:26,160 –> 00:06:27,840
، محاسبه موقعیت
175
00:06:27,840 –> 00:06:31,039
اشیا و ارائه یک فریم
176
00:06:31,039 –> 00:06:33,120
پس از انجام تمام کارها، حلقه بعدی را
177
00:06:33,120 –> 00:06:35,199
178
00:06:35,199 –> 00:06:37,199
در این اولین برنامه که تنها کاربر بین کاربر است، شروع می کنید.
179
00:06:37,199 –> 00:06:39,840
اقدام مدیریت رویداد خروج است،
180
00:06:39,840 –> 00:06:42,560
این حلقه داخلی در خط 10 از
181
00:06:42,560 –> 00:06:44,000
تمام رویدادهایی که
182
00:06:44,000 –> 00:06:45,919
از آخرین تکرار حلقه بازی
183
00:06:45,919 –> 00:06:46,880
184
00:06:46,880 –> 00:06:49,120
برای این برنامه ساده
185
00:06:49,120 –> 00:06:50,960
رخ داده است، می گذرد.
186
00:06:50,960 –> 00:06:54,639
با فشار دادن
187
00:06:54,639 –> 00:06:57,120
خط 14، پسزمینه
188
00:06:57,120 –> 00:06:59,520
صفحه را با فراخوانی روش Fill پر میکند. پر کردن
189
00:06:59,520 –> 00:07:01,360
سطح صفحه
190
00:07:01,360 –> 00:07:04,319
یک تاپل rgb میگیرد
191
00:07:04,319 –> 00:07:06,160
که رنگی را که باید با آن پر شود را مشخص میکند،
192
00:07:06,160 –> 00:07:08,880
در این حالت اگر در برنامهای به نام آبی
193
00:07:08,880 –> 00:07:10,319
انتظار چیز متفاوتی را داشتید، سایه
194
00:07:10,319 –> 00:07:13,599
آبی است.
195
00:07:13,759 –> 00:07:15,919
خطوط 15 تا 17 در مورد
196
00:07:15,919 –> 00:07:18,160
موقعیت اشیایی است که باید ترسیم شوند در
197
00:07:18,160 –> 00:07:19,599
این مورد تنها چیزی که
198
00:07:19,599 –> 00:07:21,840
قرار می گیرد یک دایره است
199
00:07:21,840 –> 00:07:24,960
من به طور تصادفی یک مقدار x y و
200
00:07:24,960 –> 00:07:26,880
شعاع برای دایره
201
00:07:26,880 –> 00:07:28,960
را انتخاب می
202
00:07:28,960 –> 00:07:31,120
203
00:07:31,120 –> 00:07:32,960
کنم. شعاع دایره همیشه
204
00:07:32,960 –> 00:07:35,919
بین 2 تا 10 است، بنابراین محدوده های x و
205
00:07:35,919 –> 00:07:38,319
y طوری انتخاب می شوند که دایره همیشه
206
00:07:38,319 –> 00:07:40,880
207
00:07:40,880 –> 00:07:42,960
با مقادیر تصادفی مناسب روی صفحه ظاهر شود.
208
00:07:42,960 –> 00:07:46,400
خط 18 دایره واقعی را ترسیم می کند.
209
00:07:46,400 –> 00:07:48,720
ماژول ترسیم بازی pi شامل
210
00:07:48,720 –> 00:07:51,039
توابع زیادی برای رسم خطوط و شکل ها
211
00:07:51,039 –> 00:07:52,879
است. تابع دایره چند پارامتر را می گیرد
212
00:07:52,879 –> 00:07:54,319
213
00:07:54,319 –> 00:07:56,960
، اول سطحی است که روی آن ترسیم می
214
00:07:56,960 –> 00:07:59,680
شود، صفحه پس زمینه است
215
00:07:59,680 –> 00:08:02,000
و دوم رنگی برای ترسیم با یک بار
216
00:08:02,000 –> 00:08:04,319
دیگر مقدار rgb برای سایه های مختلف
217
00:08:04,319 –> 00:08:07,520
خوب چه آبی دیگری
218
00:08:07,520 –> 00:08:10,080
سومین تاپل xy است که نشان
219
00:08:10,080 –> 00:08:12,400
دهنده نقطه رسم دایره است
220
00:08:12,400 –> 00:08:14,639
و در نهایت شعاع دایره ای
221
00:08:14,639 –> 00:08:17,360
که باید رسم شود
222
00:08:17,360 –> 00:08:20,479
آخرین خط در اینجا صفحه نمایش تلنگر را می نامد.
223
00:08:20,479 –> 00:08:22,000
نقاشی که تا
224
00:08:22,000 –> 00:08:23,759
کنون انجام شده است در واقع انجام نشده است. به سمت صفحه نمایش کشیده می شود،
225
00:08:23,759 –> 00:08:26,479
اما به یک بافر می خواهید
226
00:08:26,479 –> 00:08:28,240
کارها را به این ترتیب انجام دهید تا همه
227
00:08:28,240 –> 00:08:30,800
چیز در همان زمان روی صفحه نمایش داده شود،
228
00:08:30,800 –> 00:08:32,479
اگر تعداد زیادی از اشیاء را می کشید
229
00:08:32,479 –> 00:08:34,320
، نمی خواهید هنگام ایجاد هر کدام به داخل و خارج چشمک بزنند
230
00:08:34,320 –> 00:08:35,919
.
231
00:08:35,919 –> 00:08:38,559
این روش تلنگر همه چیز را در
232
00:08:38,559 –> 00:08:40,719
بافر سطحی می گیرد و صفحه را
233
00:08:40,719 –> 00:08:44,480
با یک کپی از بافر به یکباره
234
00:08:44,480 –> 00:08:48,320
به روز می کند، بیایید همه اینها را در عمل
235
00:08:52,160 –> 00:08:54,560
236
00:08:54,560 –> 00:08:57,120
237
00:08:57,120 –> 00:08:59,040
ببینیم. این آبی
238
00:08:59,040 –> 00:09:01,360
در صفحه پر می شود و سپس یک دایره آبی سرمه
239
00:09:01,360 –> 00:09:04,000
ای به طور تصادفی
240
00:09:04,000 –> 00:09:06,560
رسم می شود. حلقه بازی این کار را
241
00:09:06,560 –> 00:09:09,600
بارها و
242
00:09:09,600 –> 00:09:11,360
بارها انجام می دهد.
243
00:09:11,360 –> 00:09:13,200
244
00:09:13,200 –> 00:09:14,320
245
00:09:14,320 –> 00:09:15,920
به شما نشان میدهد که چگونه نرخ فریم را کنترل کنید،
246
00:09:15,920 –> 00:09:17,920
اما در حال حاضر میتوانید با
247
00:09:17,920 –> 00:09:19,120
248
00:09:19,120 –> 00:09:21,519
تغییر دایرهها در اسناد بازی pi بازی
249
00:09:21,519 –> 00:09:23,279
کنید و ببینید که آیا میتوانید یک
250
00:09:23,279 –> 00:09:24,640
251
00:09:24,640 –> 00:09:26,959
call of duty مستطیلی اضافه کنید، اینطور نیست، اما همه باید
252
00:09:26,959 –> 00:09:30,080
از جایی بعدی شروع کنند.
253
00:09:30,399 –> 00:09:32,959
254
00:09:32,959 –> 00:09:34,720
255
00:09:34,720 –> 00:09:36,160
256
00:09:36,160 –> 00:09:40,080
257
00:09:40,080 –> 00:09:41,680
در درس قبلی به شما نشان دادم که چگونه
258
00:09:41,680 –> 00:09:43,920
لکه های آبی بسیار سریع را در یک
259
00:09:43,920 –> 00:09:46,240
نمایش خیره کننده تصادفی
260
00:09:46,240 –> 00:09:47,600
در این درس بنویسید که چگونه برای برنامه های بزرگتر آماده شوید درسی به شما نشان خواهم داد که چگونه
261
00:09:47,600 –> 00:09:49,279
فایل های کد خود را ساختار دهید تا
262
00:09:49,279 –> 00:09:52,399
برای برنامه های بزرگتر آماده شوید
263
00:09:52,399 –> 00:09:54,000
، روش معمول اجرای یک
264
00:09:54,000 –> 00:09:56,080
اسکریپت پایتون استفاده از دستور پایتون و
265
00:09:56,080 –> 00:09:58,320
ارسال آن به فایل اسکریپت است یا اگر از
266
00:09:58,320 –> 00:10:00,480
یک سیستم مبتنی بر یونیکس استفاده می کنید. کنترل هش بانگ
267
00:10:00,480 –> 00:10:02,480
در بالای فایل که در
268
00:10:02,480 –> 00:10:04,000
واقع فقط یک میانبر برای انجام
269
00:10:04,000 –> 00:10:06,079
همان
270
00:10:06,079 –> 00:10:07,600
کار است، روش دیگری برای انجام کارها وجود دارد،
271
00:10:07,600 –> 00:10:09,680
اگرچه می توانید به
272
00:10:09,680 –> 00:10:11,600
جای اجرای یک فایل، یک دایرکتوری را اجرا کنید،
273
00:10:11,600 –> 00:10:13,040
این می تواند زمانی مفید باشد که می خواهید
274
00:10:13,040 –> 00:10:14,959
کد خود را به چندین فایل تقسیم کنید
275
00:10:14,959 –> 00:10:16,480
و شما نمیخواهید که کاربر شما مجبور باشد
276
00:10:16,480 –> 00:10:20,000
277
00:10:20,000 –> 00:10:21,760
برای استفاده از این مکانیسم راهاندازی دایرکتوری، بفهمد که کدام یک را اجرا میکند،
278
00:10:21,760 –> 00:10:23,760
شما به فایلی به نام دو خط زیر خط
279
00:10:23,760 –> 00:10:26,240
اصلی، نقطه pi،
280
00:10:26,240 –> 00:10:29,440
که به نام dunder main نیز شناخته میشود، نیاز دارید.
281
00:10:29,440 –> 00:10:31,839
نام بسیار هوشمندانه برای سیارکهای ما
282
00:10:31,839 –> 00:10:34,560
clone یک سنگ فضایی است زیرا
283
00:10:34,560 –> 00:10:36,480
چندین فایل برای کد وجود دارد که
284
00:10:36,480 –> 00:10:38,160
میتوانید یک دایرکتوری به نام space
285
00:10:38,160 –> 00:10:40,560
underscore rocks ایجاد کنید و یک فایل اصلی dunder
286
00:10:40,560 –> 00:10:42,000
را درون
287
00:10:42,000 –> 00:10:43,519
آن قرار دهید، فایلهای دیگری
288
00:10:43,519 –> 00:10:45,680
مانند game.pi که بسیاری از بازیها را در آن قرار میدهند، در آنجا وجود خواهد داشت.
289
00:10:45,680 –> 00:10:48,240
منطق
290
00:10:48,240 –> 00:10:50,160
با این ساختار در جای خود زندگی می کند و با فراخوانی
291
00:10:50,160 –> 00:10:52,079
مفسر پایتون با دایرکتوری سنگ های فضایی
292
00:10:52,079 –> 00:10:54,560
به عنوان پارامتر،
293
00:10:54,560 –> 00:10:57,600
بازی شما به
294
00:10:57,600 –> 00:10:59,120
زودی اجرا می شود،
295
00:10:59,120 –> 00:11:01,600
اولین کد را برای صخره های فضایی به شما نشان خواهم داد. هر چند
296
00:11:01,600 –> 00:11:02,959
مطمئن شوید که یک دایرکتوری ایجاد کنید که
297
00:11:02,959 –> 00:11:04,800
فایل های شما در آن زندگی می کنند، می توانید این کار را
298
00:11:04,800 –> 00:11:08,079
با دستور make dur انجام دهید
299
00:11:08,320 –> 00:11:10,079
همانطور که قبلاً ذکر کردم اولین فایلی
300
00:11:10,079 –> 00:11:12,079
که به آن نیاز دارید dunder main است
301
00:11:12,079 –> 00:11:13,760
. محتویات dunder maine
302
00:11:13,760 –> 00:11:16,079
بسیار ساده خواهد بود که وارد می کند و ایجاد
303
00:11:16,079 –> 00:11:18,399
فضا را از فایل بازی خارج می کند
304
00:11:18,399 –> 00:11:22,000
و سپس روش حلقه اصلی خود را اجرا می کند،
305
00:11:22,000 –> 00:11:23,920
همه این کارها در داخل یک
306
00:11:23,920 –> 00:11:26,560
چک نام dunder در خط 4
307
00:11:26,560 –> 00:11:28,640
انجام می شود.
308
00:11:28,640 –> 00:11:30,720
309
00:11:30,720 –> 00:11:32,959
برخلاف
310
00:11:32,959 –> 00:11:35,519
لود شدن به عنوان یک ماژول
311
00:11:35,519 –> 00:11:37,680
در داخل یک فایل اصلی dunder، این
312
00:11:37,680 –> 00:11:39,920
احتمالاً اضافی است، احتمالاً هرگز
313
00:11:39,920 –> 00:11:42,000
این فایل را به عنوان یک ماژول بارگیری نخواهید کرد، اما
314
00:11:42,000 –> 00:11:44,000
انجام این کار بهترین تمرین است و
315
00:11:44,000 –> 00:11:45,680
به توسعه دهندگان دیگر سیگنال می دهد که این
316
00:11:45,680 –> 00:11:49,040
نقطه ورود برنامه است.
317
00:11:51,360 –> 00:11:54,399
فایل بعدی که میسازید
318
00:11:54,399 –> 00:11:55,920
game.pi است، اینجا جایی است که حلقه اصلی بازی را نگه میدارید
319
00:11:55,920 –> 00:11:58,240
و منطق اصلی
320
00:11:58,240 –> 00:11:59,920
، محتویات اینجا با
321
00:11:59,920 –> 00:12:02,240
نقطه آبی آبی در درس قبلی تفاوت چندانی
322
00:12:02,240 –> 00:12:05,440
ندارد، فقط به شکل متفاوتی سازماندهی شده است.
323
00:12:05,440 –> 00:12:07,519
راه اولیه izer برای جسم فضایی سنگهای فضایی
324
00:12:07,519 –> 00:12:10,480
حاوی شرح مجموعه اولیه بازی pi
325
00:12:10,480 –> 00:12:13,120
و تماسهای اندازه صفحه است که
326
00:12:13,120 –> 00:12:14,959
شما را به
327
00:12:14,959 –> 00:12:16,959
سمت سطح از تماس حالت تنظیم هدایت
328
00:12:16,959 –> 00:12:19,360
میکند برای استفاده بعدی در داخل
329
00:12:19,360 –> 00:12:23,600
شی سنگ فضایی در self.screen
330
00:12:23,600 –> 00:12:26,160
خط 12 بازی اصلی را تعریف میکند. حلقه
331
00:12:26,160 –> 00:12:28,079
درون اینجا را پیدا خواهید کرد که
332
00:12:28,079 –> 00:12:29,600
حلقه
333
00:12:29,600 –> 00:12:32,480
while را بررسی میکند که هر منطق بازی را انجام میدهد
334
00:12:32,480 –> 00:12:34,880
و فریمی را ترسیم میکند که
335
00:12:34,880 –> 00:12:36,800
تفاوتی با نقطه آبی آبی ندارد که تازه
336
00:12:36,800 –> 00:12:40,160
سازماندهی شده است تا
337
00:12:40,160 –> 00:12:41,680
در هر تکرار حلقهای
338
00:12:41,680 –> 00:12:43,040
که میخواهید بررسی کنید کمی واضحتر باشد. رویدادهایی که نیاز به
339
00:12:43,040 –> 00:12:44,480
مدیریت
340
00:12:44,480 –> 00:12:47,040
دارند، روش ورودی دسته است،
341
00:12:47,040 –> 00:12:49,120
درست مانند blue.pi. من از
342
00:12:49,120 –> 00:12:51,360
اینجا شروع میکنم و فقط بررسی میکنم که آیا
343
00:12:51,360 –> 00:12:53,920
ترک شده یا نه،
344
00:12:53,920 –> 00:12:55,600
قسمت دوم حلقه بازی
345
00:12:55,600 –> 00:12:57,839
که منطق بازی را انجام میدهد در
346
00:12:57,839 –> 00:12:59,440
خط 23 تعریف شده است.
347
00:12:59,440 –> 00:13:01,600
فقط یک مکان نگهدار است در حال حاضر
348
00:13:01,600 –> 00:13:03,360
هیچ منطقی وجود ندارد، اما اینجا
349
00:13:03,360 –> 00:13:06,000
جایی است که می توان اجسام را به اطراف جابجا کرد،
350
00:13:06,000 –> 00:13:08,079
انتظار می رود در آینده منطق موقعیت سفینه فضایی و صخره ای عالی
351
00:13:08,079 –> 00:13:10,800
در اینجا وجود داشته
352
00:13:10,800 –> 00:13:13,360
353
00:13:13,360 –> 00:13:15,200
باشد.
354
00:13:15,200 –> 00:13:16,160
355
00:13:16,160 –> 00:13:17,920
این اولین نسخه از سنگهای فضایی
356
00:13:17,920 –> 00:13:20,399
کاری انجام نمیدهد جز ترسیم پسزمینه آبی
357
00:13:20,399 –> 00:13:22,079
نه چندان هیجانانگیز، اما تصور کنید
358
00:13:22,079 –> 00:13:23,519
نرخ فریمی را که قرار است با اتفاقات بسیار کم در هر حلقه به دست آورید،
359
00:13:23,519 –> 00:13:26,560
360
00:13:26,880 –> 00:13:28,800
اجازه دهید پایتون را با دایرکتوری سنگهای فضایی صدا کنم
361
00:13:28,800 –> 00:13:31,360
362
00:13:32,839 –> 00:13:35,680
و آیا این هیجانانگیز نیست.
363
00:13:35,680 –> 00:13:37,839
دقیقا ساده ترین بازی برای برنده شدن نیست، اما
364
00:13:37,839 –> 00:13:39,760
شما
365
00:13:39,760 –> 00:13:41,839
با این بودجه چند میلیون دلاری
366
00:13:41,839 –> 00:13:43,360
و چند صد توسعه دهنده آماده هستید که می
367
00:13:43,360 –> 00:13:45,920
توانید در کوتاه ترین زمان و با مراجعات ندای وظیفه بنویسید،
368
00:13:45,920 –> 00:13:47,600
369
00:13:47,600 –> 00:13:49,519
قول می دهم بازی بعدی این کار را انجام دهد.
370
00:13:49,519 –> 00:13:52,639
همه چیز در مورد سرقت بزرگ خودکار
371
00:13:52,639 –> 00:13:54,560
باشید به بیل گیت نگویید من این را گفتم، اما
372
00:13:54,560 –> 00:13:57,120
صفحه های آبی بسیار بالا هستند، من به شما نشان خواهم داد
373
00:13:57,120 –> 00:13:59,040
که چگونه گرافیک های
374
00:13:59,040 –> 00:14:00,720
فوق العاده خشونت را وارد کنید و با تیراندازی رانندگی
375
00:14:00,720 –> 00:14:03,279
کنید اینجا که آمدید به شما گفتیم که یک مرجع gta وجود دارد
376
00:14:03,279 –> 00:14:05,519
377
00:14:05,519 –> 00:14:07,120
در درس قبلی
378
00:14:07,120 –> 00:14:08,959
ساختار فایلی را به شما نشان دادم که میخواهید از آن برای
379
00:14:08,959 –> 00:14:11,440
سازماندهی کردن کد بازی خود استفاده کنید، در این
380
00:14:11,440 –> 00:14:13,360
درس شما را با مفهوم
381
00:14:13,360 –> 00:14:17,360
داراییها و نحوه وارد کردن گرافیک
382
00:14:17,360 –> 00:14:18,959
هنگام رندر کردن گرافیک به صفحه نمایش آشنا
383
00:14:18,959 –> 00:14:20,639
میکنم. انتخابهایی که برای
384
00:14:20,639 –> 00:14:22,480
ترسیم موارد اولیه مانند دایرههایی که
385
00:14:22,480 –> 00:14:24,320
با blue.pie کشیدهاید
386
00:14:24,320 –> 00:14:26,959
یا استفاده از فایلهای تصویری که
387
00:14:26,959 –> 00:14:29,199
در یک برنامه گرافیکی ساختهاید،
388
00:14:29,199 –> 00:14:31,120
تصاویری در بازی خود، چه از یک فایل بارگذاری شده باشند و چه
389
00:14:31,120 –> 00:14:32,959
با موارد اولیه به یک بافر کشیده شده
390
00:14:32,959 –> 00:14:35,120
باشند، sprite نامیده میشوند.
391
00:14:35,120 –> 00:14:37,040
392
00:14:37,040 –> 00: