در این مطلب، ویدئو چگونه با استفاده از PyGame Doodle Jump را در پایتون ایجاد کنیم! آموزش کامل ساخت بازی Infinite Jumping Game! با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 1:24:44
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:01,599
چه خبر است بچه ها
2
00:00:01,599 –> 00:00:03,360
به کانال و ویدیوی امروز بازگردید، خوش آمدید، ما می
3
00:00:03,360 –> 00:00:06,240
خواهیم یاد بگیریم که
4
00:00:06,240 –> 00:00:09,920
برنامه کلاسیک ios doodle jump را در پایتون با استفاده از
5
00:00:09,920 –> 00:00:11,970
pygame
6
00:00:11,970 –> 00:00:17,689
[Music] بازسازی
7
00:00:19,439 –> 00:00:22,080
8
00:00:22,080 –> 00:00:24,400
کنیم. اوه بیش
9
00:00:24,400 –> 00:00:27,599
از هشت سال سن دارید و اگر بیش از هشت سال ندارید هیچ سایه ای ندارید،
10
00:00:27,599 –> 00:00:29,359
اما این
11
00:00:29,359 –> 00:00:32,960
مانند یکی از اولین برنامه های ویروسی آیفون بود
12
00:00:32,960 –> 00:00:35,120
و اساساً فقط یک جامپر بی پایان
13
00:00:35,120 –> 00:00:37,440
است که در آن شخصیت شما
14
00:00:37,440 –> 00:00:39,120
مدام از پلتفرمی به
15
00:00:39,120 –> 00:00:41,200
پلتفرم دیگر می پرد. 10 میلیون
16
00:00:41,200 –> 00:00:44,239
نسخه از این بازی در
17
00:00:44,239 –> 00:00:46,719
طول سالهای بعد ساخته شده است، اما
18
00:00:46,719 –> 00:00:48,480
این واقعاً خوب بود
19
00:00:48,480 –> 00:00:51,120
و اگر میخواهید یک بازی به این سبک بسازید،
20
00:00:51,120 –> 00:00:53,440
اما به نوعی پرش doodle را پاره نکنید،
21
00:00:53,440 –> 00:00:54,879
زیرا نمیتوانید
22
00:00:54,879 –> 00:00:58,399
این را به هر روش تجاری به اشتراک بگذارید.
23
00:00:58,399 –> 00:01:01,120
من تصویر کوچکی از آن مرد را از
24
00:01:01,120 –> 00:01:03,440
برنامه اصلی واقعی در اینترنت
25
00:01:03,440 –> 00:01:05,360
گرفتم، می توانید
26
00:01:05,360 –> 00:01:07,680
هر تصویری را بگیرید یا تصویری را که
27
00:01:07,680 –> 00:01:11,360
حق نسخه برداری را نقض نکرده است بسازید و از آن برای ساختن
28
00:01:11,360 –> 00:01:13,439
شما استفاده کنید، اما من فقط این کار را انجام می دهم. برای یک
29
00:01:13,439 –> 00:01:14,799
معلم خصوصی بنابراین،
30
00:01:14,799 –> 00:01:16,479
بیایید وارد آن شویم
31
00:01:16,479 –> 00:01:19,920
، اولین چیزی که برای هر بازی پای بازی
32
00:01:19,920 –> 00:01:21,280
است این است که شما می خواهید
33
00:01:21,280 –> 00:01:23,200
ماژول بازی پای را وارد کنید و سپس
34
00:01:23,200 –> 00:01:25,360
می خواهید نقطه بازی پای را در آن انجام دهید،
35
00:01:25,360 –> 00:01:27,119
اینها مانند دو مرحله اول هستند. اگر
36
00:01:27,119 –> 00:01:29,119
شما در حال ساخت یک بازی مقداردهی اولیه بازی pi
37
00:01:29,119 –> 00:01:30,880
هستید، زیرا اوه،
38
00:01:30,880 –> 00:01:33,840
اساساً از تمام قابلیت های بازی
39
00:01:33,840 –> 00:01:36,320
که با آن ماژول ارائه می شود استفاده می کنید، بنابراین اولین
40
00:01:36,320 –> 00:01:38,000
کاری که می خواهیم انجام دهیم این است که
41
00:01:38,000 –> 00:01:40,799
بازیکن را روی صفحه نمایش بکشیم و آن را
42
00:01:40,799 –> 00:01:43,040
ایجاد کنیم. صفحه نمایش و سپس
43
00:01:43,040 –> 00:01:45,040
برخی از پلتفرم هایی که
44
00:01:45,040 –> 00:01:47,119
روی آنها پرش می کنید بسازید و سپس ما شروع
45
00:01:47,119 –> 00:01:49,200
به کار با مکانیک بازی و به روز رسانی و
46
00:01:49,200 –> 00:01:51,280
مواردی از این دست می کنیم، بنابراین برای انجام این کار شما می
47
00:01:51,280 –> 00:01:53,280
خواهید بازی pi do pi بازی dot را
48
00:01:53,280 –> 00:01:54,960
در آن وارد کنید
49
00:01:54,960 –> 00:01:57,600
. نوعی کتابخانه از
50
00:01:57,600 –> 00:01:59,680
ثابت های بازی
51
00:01:59,680 –> 00:02:01,920
تقریباً برای هر بازی ایجاد کنید زیرا
52
00:02:01,920 –> 00:02:05,520
همه رنگ ها در بازی پای به
53
00:02:05,520 –> 00:02:08,239
سبک rgb هستند و بسیاری از مواقع که
54
00:02:08,239 –> 00:02:10,160
زمان تعریف رنگی است که دوست دارم فقط
55
00:02:10,160 –> 00:02:12,959
سفید یا سیاه بنویسم.
56
00:02:12,959 –> 00:02:14,720
اگر کمی کد نویسی انجام داده اید،
57
00:02:14,720 –> 00:02:17,120
احتمالاً مانند برخی از این موارد را می دانید اصولی است
58
00:02:17,120 –> 00:02:20,879
اما من دوست دارم در ابتدا چند مورد
59
00:02:20,879 –> 00:02:23,440
را در اینجا تعریف کنم،
60
00:02:23,440 –> 00:02:25,280
پس خوب است و سپس در واقع
61
00:02:25,280 –> 00:02:27,680
خاکستری را نیز پایین می اندازم
62
00:02:27,680 –> 00:02:29,920
زیرا می خواهم پلتفرم ها
63
00:02:29,920 –> 00:02:32,640
لزوما سفید یا سیاه نباشند
64
00:02:32,640 –> 00:02:34,160
و
65
00:02:34,160 –> 00:02:35,920
سپس ما. عرض و
66
00:02:35,920 –> 00:02:37,840
ارتفاع صفحه را در اینجا انجام می دهیم فقط به
67
00:02:37,840 –> 00:02:39,760
این دلیل که
68
00:02:39,760 –> 00:02:41,920
اگر بخواهم بعداً به راحتی آن را تغییر دهم،
69
00:02:41,920 –> 00:02:44,959
استفاده از
70
00:02:44,959 –> 00:02:47,200
عرض و ارتفاع به عنوان یک ثابت قابل تنظیم
71
00:02:47,200 –> 00:02:49,200
در اینجا کمی آسان تر است، سپس بروید و
72
00:02:49,200 –> 00:02:51,840
هر مکانی را که ممکن است وجود داشته باشد ردیابی کنید. بنابراین 400
73
00:02:51,840 –> 00:02:54,560
در 500 بسیار خوب به نظر می رسد، اما بدیهی است که
74
00:02:54,560 –> 00:02:56,000
شما نسخه خود را از این
75
00:02:56,000 –> 00:02:58,319
بازی می سازید، آن را در هر اندازه ای که دوست دارید
76
00:02:58,319 –> 00:03:00,239
در
77
00:03:00,239 –> 00:03:03,120
نظر بگیرید و فکر می کنم فقط برای ساختن صفحه نمایش،
78
00:03:03,120 –> 00:03:04,959
این تنها کاری است که ما باید در اینجا انجام دهیم چند
79
00:03:04,959 –> 00:03:06,959
کار که می خواهم انجام دهیم زیرا ما پخش کننده
80
00:03:06,959 –> 00:03:08,640
یک تصویر است
81
00:03:08,640 –> 00:03:10,239
اگر تصویری دارید که می خواهید
82
00:03:10,239 –> 00:03:12,239
برای پخش کننده خود نیز
83
00:03:12,239 –> 00:03:14,400
داشته باشید، اگر
84
00:03:14,400 –> 00:03:16,879
یک فایل png یا jpeg باشد که دارای
85
00:03:16,879 –> 00:03:19,200
پس زمینه باشد، وب سایتی وجود دارد که
86
00:03:19,200 –> 00:03:21,200
پس زمینه تصاویر را حذف می کند، چند نکته در این مورد می گویم. برای شما
87
00:03:21,200 –> 00:03:24,080
به صورت رایگان این جو است مانند حذف نقطه bg
88
00:03:24,080 –> 00:03:25,920
و اگر حذف
89
00:03:25,920 –> 00:03:28,000
پسزمینه از تصویر را در گوگل تایپ کنید،
90
00:03:28,000 –> 00:03:29,599
احتمالاً اولین نتیجهای است که ظاهر میشود،
91
00:03:29,599 –> 00:03:31,760
بنابراین اگر یک مستطیل سفید آزاردهنده
92
00:03:31,760 –> 00:03:33,920
در اطراف پسزمینه کاراکتر خود دارید،
93
00:03:33,920 –> 00:03:35,920
کافی است به آن وبسایت بروید و
94
00:03:35,920 –> 00:03:37,680
آنها میتوانند پسزمینه را حذف کنند. برای شما
95
00:03:37,680 –> 00:03:39,920
و سپس دانلود رایگان است و فقط
96
00:03:39,920 –> 00:03:41,760
مطمئن شوید که تصویر را
97
00:03:41,760 –> 00:03:44,560
در پوشه بازی uh خود دریافت کرده اید، بنابراین
98
00:03:44,560 –> 00:03:46,720
ارجاع دادن به آن واقعا آسان است، در غیر این صورت
99
00:03:46,720 –> 00:03:49,680
باید مانند مسیر پیوستن به یک فایل os عمل کنید و
100
00:03:49,680 –> 00:03:51,760
این یک جورهایی آزاردهنده است،
101
00:03:51,760 –> 00:03:52,480
بنابراین
102
00:03:52,480 –> 00:03:54,080
کاری که من می خواهم انجام دهم برای اینکه بگویم از آنجایی که ما هنوز
103
00:03:54,080 –> 00:03:56,319
در بازی هستیم، من ثابت ها را به درستی املا نکردم
104
00:03:56,319 –> 00:03:57,360
105
00:03:57,360 –> 00:03:58,879
زیرا ما هنوز در
106
00:03:58,879 –> 00:04:01,040
ثابت های بازی هستیم، بازیکن را تعریف می کنم
107
00:04:01,040 –> 00:04:03,599
و اگر می خواهید تصویری را وارد
108
00:04:03,599 –> 00:04:06,560
کنید، pygame.image.load و را انجام دهید.
109
00:04:06,560 –> 00:04:08,799
سپس
110
00:04:08,799 –> 00:04:12,400
بارگذاری میکنید و سپس در نقلقولها
111
00:04:12,400 –> 00:04:14,400
نام تصویر را قرار
112
00:04:14,400 –> 00:04:16,160
میدهید و در واقع میتوانید ببینید که آیا در
113
00:04:16,160 –> 00:04:18,959
پوشه شما قرار دارد و از یک ایده خوب
114
00:04:18,959 –> 00:04:20,720
مانند pycharm استفاده میکنید،
115
00:04:20,720 –> 00:04:23,120
سپس به صورت خودکار با
116
00:04:23,120 –> 00:04:24,400
فایلهای تصویری که در آن هستند، پر
117
00:04:24,400 –> 00:04:26,639
میشود. وجود دارد پس فقط شروع به تایپ
118
00:04:26,639 –> 00:04:28,880
t کنید نام فایل شما باید نمایش داده شود
119
00:04:28,880 –> 00:04:30,880
و برخی از شناسهها حتی اگر
120
00:04:30,880 –> 00:04:32,639
مانند این ماوس را روی آنها نگه دارید، پیشنمایش کوچکی از شکل ظاهری آن به شما نشان میدهد
121
00:04:32,639 –> 00:04:34,320
122
00:04:34,320 –> 00:04:35,360
123
00:04:35,360 –> 00:04:37,759
و حالا من آن را در این اندازه نگه میدارم
124
00:04:37,759 –> 00:04:39,520
من هنوز قصد ندارم آن را تغییر
125
00:04:39,520 –> 00:04:41,280
دهم، فقط می خواهم آن را در هر اندازه ای که باشد نگه
126
00:04:41,280 –> 00:04:43,120
دارم، اما زمانی که آن را روی
127
00:04:43,120 –> 00:04:44,720
صفحه نمایش بکشیم، خواهید دید که در واقع
128
00:04:44,720 –> 00:04:46,400
بزرگ خواهد شد، ما به این باز خواهیم گشت
129
00:04:46,400 –> 00:04:48,479
و بعداً آن را مقیاس کنید
130
00:04:48,479 –> 00:04:50,240
و سپس چند ثابت دیگر که
131
00:04:50,240 –> 00:04:52,800
باید تعریف کنیم، اجازه دهید نرخ فریم را تعریف کنیم
132
00:04:52,800 –> 00:04:54,080
و زمانی که آن را در حلقه بازی قرار دادم در مورد آن صحبت خواهم کرد،
133
00:04:54,080 –> 00:04:56,240
اما شما
134
00:04:56,240 –> 00:04:59,040
می خواهید مطمئن شوید که این بازی با سرعت ثابت اجرا می شود.
135
00:04:59,040 –> 00:05:00,880
مهم است که
136
00:05:00,880 –> 00:05:02,639
آن را روی چه دستگاهی اجرا میکنید، زیرا اگر
137
00:05:02,639 –> 00:05:04,240
مانند یک کامپیوتر پیشرفته دارید که میتواند
138
00:05:04,240 –> 00:05:07,039
130 فریم در ثانیه را برای شما به ارمغان بیاورد،
139
00:05:07,039 –> 00:05:08,639
ممکن است این دستگاه واقعاً سریع اجرا شود و اگر
140
00:05:08,639 –> 00:05:10,160
در دستگاه قدیمیتری بازی میکنید و دچار مشکل
141
00:05:10,160 –> 00:05:12,479
هستید مانند 30 فریم،
142
00:05:12,479 –> 00:05:13,919
این بازی می تواند واقعاً آسان شود
143
00:05:13,919 –> 00:05:15,759
زیرا آنقدر کند است که می خواهید از یک بازی منصفانه اطمینان حاصل کنید.
144
00:05:15,759 –> 00:05:17,360
145
00:05:17,360 –> 00:05:20,720
فریم بر ثانیه را 60
146
00:05:20,720 –> 00:05:22,560
تعریف کنید. ما در ابتدا یک فونت را در اینجا تعریف می کنیم،
147
00:05:22,560 –> 00:05:24,320
بنابراین هر زمان که بخواهیم
148
00:05:24,320 –> 00:05:26,880
متنی را در بازی قرار دهیم، قبلاً
149
00:05:26,880 –> 00:05:29,440
چیزی تعریف شده است زیرا pygame فقط
150
00:05:29,440 –> 00:05:32,080
انداختن متن در آن در واقع خیلی
151
00:05:32,080 –> 00:05:34,560
آسان نیست که باید آن را دوست داشته باشید. متن را تعریف
152
00:05:34,560 –> 00:05:36,320
کنید و سپس باید آن را
153
00:05:36,320 –> 00:05:38,639
روی صفحه بکشید که
154
00:05:38,639 –> 00:05:40,720
من دوست دارم از freesands bold فقط به عنوان
155
00:05:40,720 –> 00:05:44,000
پیشفرض استفاده کنید، اگر این کار برای
156
00:05:44,000 –> 00:05:45,759
پروژههای پرشور است یا واقعاً میخواهید
157
00:05:45,759 –> 00:05:48,560
این بازی را در یک وبسایت منتشر کنید یا چیزی که
158
00:05:48,560 –> 00:05:51,360
ممکن است فایل ttf خودتان را وارد کنید. و
159
00:05:51,360 –> 00:05:53,520
این یک فایل فونت است و می توانید آن را در
160
00:05:53,520 –> 00:05:54,400
161
00:05:54,400 –> 00:05:57,199
پوشه دارایی های خود قرار دهید، درست مانند
162
00:05:57,199 –> 00:05:59,360
تصویر و سپس می توانید یک فونت را
163
00:05:59,360 –> 00:06:01,120
در اینجا نیز ارجاع دهید، حتی اگر یک فونت سفارشی درست کنید
164
00:06:01,120 –> 00:06:02,400
165
00:06:02,400 –> 00:06:04,319
و بعد از اینکه
166
00:06:04,319 –> 00:06:06,639
فایل فونت را فراخوانی کردید، به آن یک فونت بدهید.
167
00:06:06,639 –> 00:06:09,039
اندازه فونت، بنابراین اگر میخواهید
168
00:06:09,039 –> 00:06:11,039
متن عنوان بزرگ باشد و سپس میخواهید
169
00:06:11,039 –> 00:06:12,720
متن امتیاز کوچکتر و
170
00:06:12,720 –> 00:06:15,680
متن دستورالعمل را در یک منو
171
00:06:15,680 –> 00:06:17,759
بپسندید، میتوانید تمام این فونتهای مختلف را برای
172
00:06:17,759 –> 00:06:20,479
این آموزش تعریف کنید، من فقط میخواهم از یکی استفاده کنم،
173
00:06:20,479 –> 00:06:22,319
اما فقط میدانم که میتوانید همانطور که
174
00:06:22,319 –> 00:06:24,160
می توانید انجام دهید این
175
00:06:24,160 –> 00:06:25,919
فونت امتیاز را صدا بزنید و سپس میتوانید
176
00:06:25,919 –> 00:06:27,919
یک قلم دیگر به نام فونت عنوان داشته باشید، چیزی
177
00:06:27,919 –> 00:06:29,759
شبیه به آن، من از آن برای
178
00:06:29,759 –> 00:06:31,520
تمام متنهایم استفاده میکنم، بنابراین
179
00:06:31,520 –> 00:06:34,160
فقط یک پسزمینه کوچک برای شما وجود دارد
180
00:06:34,160 –> 00:06:36,160
و سپس چون ما یک ساعت داخلی
181
00:06:36,160 –> 00:06:37,199
182
00:06:37,199 –> 00:06:38,800
میخواهیم که نرخ فریم را تنظیم کند، همچنین
183
00:06:38,800 –> 00:06:40,240
در ابتدای pygame.time.clock اینجا یک تایمر تعریف میکنم
184
00:06:40,240 –> 00:06:41,720
185
00:06:41,720 –> 00:06:43,600
186
00:06:43,600 –> 00:06:45,520
، میدانم که این واقعاً مانند
187
00:06:45,520 –> 00:06:47,520
بخش هیجانانگیز ایجاد یک بازی نیست، اما
188
00:06:47,520 –> 00:06:49,919
داشتن این چیزها در ابتدای
189
00:06:49,919 –> 00:06:51,520
تقریباً هر بازی مانند آنچه در
190
00:06:51,520 –> 00:06:53,759
حال حاضر روی صفحه است وجود دارد. احتمالاً
191
00:06:53,759 –> 00:06:55,919
تقریباً در هر
192
00:06:55,919 –> 00:06:58,639
بازیی که قرار است با پایتون و
193
00:06:58,639 –> 00:07:00,639
pygame بسازید، میل خواهید داشت، بنابراین اگر قبلاً همه اینها را دیده
194
00:07:00,639 –> 00:07:02,479
اید و به طور خاص قطعات پرش doodle را می خواهید، عذرخواهی می کنیم،
195
00:07:02,479 –> 00:07:04,479
اما این چیزها
196
00:07:04,479 –> 00:07:07,199
واقعاً مهم هستند، پس خوب بیایید ادامه دهید
197
00:07:07,199 –> 00:07:10,080
و اکنون صفحه را بسازید
198
00:07:10,080 –> 00:07:11,120
و
199
00:07:11,120 –> 00:07:14,080
من مجبور نیستید نام آن را صفحه نمایش بگذارید،
200
00:07:14,080 –> 00:07:16,400
اما باید اسم آن را منطقی بگذارید
201
00:07:16,400 –> 00:07:18,880
در حالی که من امروز در املای آن مشکل
202
00:07:18,880 –> 00:07:20,560
دارم، باید نام آن را منطقی بگذارید
203
00:07:20,560 –> 00:07:22,080
زیرا مانند
204
00:07:22,080 –> 00:07:25,280
اینکه باید از این pygame استفاده کنید انجام دهید t
205
00:07:25,280 –> 00:07:27,120
حالت تنظیم نقطه را نمایش دهید
206
00:07:27,120 –> 00:07:29,680
و سپس اندازه صفحه را به آن بدهید
207
00:07:29,680 –> 00:07:32,880
که عرض آن چقدر بود و سپس
208
00:07:32,880 –> 00:07:33,759
ارتفاع ارتفاع
209
00:07:33,759 –> 00:07:36,080
کاما ارتفاع شما کاملاً می توانید
210
00:07:36,080 –> 00:07:39,199
در اینجا فقط 400 و 500 را به عنوان
211
00:07:39,199 –> 00:07:41,199
ثابت در
212
00:07:41,199 –> 00:07:43,280
صورت تمایل وارد کنید، اما هر زمان که نیاز دارید
213
00:07:43,280 –> 00:07:45,360
به آن اشاره کنید. اندازه صفحه
214
00:07:45,360 –> 00:07:47,039
بعداً باید آن
215
00:07:47,039 –> 00:07:49,360
ثابتها را بدانید، خب،
216
00:07:49,360 –> 00:07:50,879
ما آن صفحه را صدا میزنیم و
217
00:07:50,879 –> 00:07:52,240
218
00:07:52,240 –> 00:07:54,000
در طول این بازی، یک سری چیزها را روی صفحه میکشیم،
219
00:07:54,000 –> 00:07:56,000
پس
220
00:07:56,000 –> 00:07:57,680
بیایید ادامه دهیم و همچنین برای خود یک
221
00:07:57,680 –> 00:08:01,080
عنوان pygame.display.set در
222
00:08:01,440 –> 00:08:03,280
آنجا قرار دهید،
223
00:08:03,280 –> 00:08:06,720
آن را به خودتان نقل قول بدهید و ما آن را
224
00:08:06,720 –> 00:08:09,360
doodlejumper می نامیم که آنقدر متفاوت است
225
00:08:09,360 –> 00:08:11,280
که مورد شکایت قرار نگیریم،
226
00:08:11,280 –> 00:08:14,639
خوب، بنابراین این برای
227
00:08:14,639 –> 00:08:16,240
ایجاد صفحه است، بیایید جلو برویم و
228
00:08:16,240 –> 00:08:19,840
بازی را حلقه کنیم و اساسا
229
00:08:19,840 –> 00:08:22,800
هر بازی
230
00:08:22,800 –> 00:08:24,879
وقتی شروع میکنید این را دارد که در حال اجرا برابر
231
00:08:24,879 –> 00:08:27,680
با true باشد و سپس حلقه اصلی بازی شما
232
00:08:27,680 –> 00:08:29,120
در حالی که اجرا
233
00:08:29,120 –> 00:08:32,399
برابر است با true است که اساساً
234
00:08:32,399 –> 00:08:34,799
چگونه بازی را شروع میکنید و
235
00:08:34,799 –> 00:08:37,360
مطمئن شوید که این یک حلقه بینهایت نیست
236
00:08:37,360 –> 00:08:39,039
. خواهد ری خیلی زود، من برخی از
237
00:08:39,039 –> 00:08:41,599
مدیریت رویداد را در آن قرار می دهم که فقط برای رویداد
238
00:08:41,599 –> 00:08:44,240
در
239
00:08:44,240 –> 00:08:46,640
240
00:08:46,640 –> 00:08:49,040
241
00:08:49,040 –> 00:08:50,720
242
00:08:50,720 –> 00:08:52,959
243
00:08:52,959 –> 00:08:54,720
244
00:08:54,720 –> 00:08:57,839
pygame است. بنابراین
245
00:08:57,839 –> 00:08:59,760
شما به نوعی آن را به خاطر خواهید آورد یا
246
00:08:59,760 –> 00:09:01,360
آن را در یک فایل خواهید داشت یا
247
00:09:01,360 –> 00:09:04,240
آن را در github github یا reddit
248
00:09:04,240 –> 00:09:06,480
یا stack overflow پیدا خواهید کرد، اما
249
00:09:06,480 –> 00:09:08,800
اگر pygame dot هر چیزی را مشاهده کردید که مربوط
250
00:09:08,800 –> 00:09:11,360
به نحو خاص بازی پای است و فقط به
251
00:09:11,360 –> 00:09:13,760
نوعی نیاز دارید برای دانستن آن،
252
00:09:13,760 –> 00:09:16,880
بنابراین برای رویداد در pygame.event.get، این
253
00:09:16,880 –> 00:09:18,560
همه مدیریت رویداد ما برای کل
254
00:09:18,560 –> 00:09:20,880
بازی است و اولین چیزی که میخواهیم بررسی کنیم این است
255
00:09:20,880 –> 00:09:25,279
که اگر نوع نقطه رویداد برابر است با
256
00:09:25,279 –> 00:09:28,160
pygame dot quit،
257
00:09:28,160 –> 00:09:29,440
پس چه کنیم. “دوره
258
00:09:29,440 –> 00:09:32,800
اجرا برابر با false تنظیم می شود، بنابراین
259
00:09:32,800 –> 00:09:35,440
هر صفحه بازی pi دارای x قرمز کوچکی
260
00:09:35,440 –> 00:09:37,440
در گوشه بالایی است که
261
00:09:37,440 –> 00:09:38,880
با دیدن آن
262
00:09:38,880 –> 00:09:41,440
در سیستم عامل خود آشنا هستید و این تفاوتی ندارد،
263
00:09:41,440 –> 00:09:43,920
بنابراین دکمه pygame dot
264
00:09:43,920 –> 00:09:44,800
quit است
265
00:09:44,800 –> 00:09:46,080
و اوه
266
00:09:46,080 –> 00:09:46,959
267
00:09:46,959 –> 00:09:49,279
این است این است که چگونه با آن دکمه x عمل می کنید
268
00:09:49,279 –> 00:09:50,720
که در واقع بسته می شود از برنامه خود خارج
269
00:09:50,720 –> 00:09:52,160
شوید و مطمئن شوید که یک حلقه نامحدود ندارید،
270
00:09:52,160 –> 00:09:55,040
بنابراین دانستن آن اطلاعات مفیدی است
271
00:09:55,040 –> 00:09:57,440
و سپس چند کار را که باید
272
00:09:57,440 –> 00:10:00,480
در اینجا در حلقه بازی خود انجام دهیم، فقط برای
273
00:10:00,480 –> 00:10:02,800
اینکه ابتدا چیزی نشان داده شود.
274
00:10:02,800 –> 00:10:06,320
timer.tick را با نرخ فریم ما انجام دهید
275
00:10:06,320 –> 00:10:08,240
و این
276
00:10:08,240 –> 00:10:10,560
سرعت تعداد حلقهها در ثانیه را که این
277
00:10:10,560 –> 00:10:12,480
برنامه اجرا میکند کنترل میکند و سپس
278
00:10:12,480 –> 00:10:14,480
ما فقط نقطه صفحه را
279
00:10:14,480 –> 00:10:15,360
280
00:10:15,360 –> 00:10:16,240
281
00:10:16,240 –> 00:10:19,519
با رنگ پسزمینه پر میکنیم و بنابراین برای
282
00:10:19,519 –> 00:10:22,880
شروع من من آن را سفید میکنم،
283
00:10:22,880 –> 00:10:24,720
اما میخواهم رنگ پسزمینه
284
00:10:24,720 –> 00:10:26,000
یک متغیر باشد،
285
00:10:26,000 –> 00:10:27,519
زیرا
286
00:10:27,519 –> 00:10:29,440
فکر میکنم در طول
287
00:10:29,440 –> 00:10:31,200
بازی، همانطور که امتیاز بالاتر و بالاتری دریافت میکنید،
288
00:10:31,200 –> 00:10:32,640
ممکن است بخواهیم
289
00:10:32,640 –> 00:10:34,720
پسزمینه را مانند یک
290
00:10:34,720 –> 00:10:37,200
تنوع سرگرمکننده تغییر دهیم. بنابراین من در واقع
291
00:10:37,200 –> 00:10:39,839
فقط برای شروع می خواهم یک متغیر بسازم که
292
00:10:39,839 –> 00:10:41,279
آن را پس زمینه می نامم و سپس
293
00:10:41,279 –> 00:10:42,959
برای شروع بازی برابر سفید قرار
294
00:10:42,959 –> 00:10:45,519
می دهم، اما می بینیم که تبدیل آن به این
295
00:10:45,519 –> 00:10:47,279
متغیر به این معنی است که می توانیم در اطراف بازی کنیم.
296
00:10:47,279 –> 00:10:50,000
با آن بعداً در بازی و بنابراین
297
00:10:50,000 –> 00:10:52,000
پرتاب یک رنگ یا یک تصویر در یک
298
00:10:52,000 –> 00:10:54,720
متغیر پس زمینه ایده بدی نیست اگر
299
00:10:54,720 –> 00:10:56,000
چیزی است که می خواهید
300
00:10:56,000 –> 00:10:58,079
در طول بازی خود تغییر
301
00:10:58,079 –> 00:10:59,360
دهید و بیایید ببینیم تا
302
00:10:59,360 –> 00:11:01,760
screen.fill.background داشته باشیم
303
00:11:01,760 –> 00:11:04,880
و بیایید آن را به جایی برسانیم که می توانیم
304
00:11:04,880 –> 00:11:06,800
صفحه نمایش را باز کنیم تا بتوانیم باید pygame.display.flip را انجام
305
00:11:06,800 –> 00:11:09,519
306
00:11:09,519 –> 00:11:11,440
دهید که به نوعی همه چیزهایی را که ترسیم کردهایم میگیرد
307
00:11:11,440 –> 00:11:13,680
، آن را به ترتیب مناسب روی صفحه میاندازد
308
00:11:13,680 –> 00:11:15,040
309
00:11:15,040 –> 00:11:17,120
و سپس آخرین مورد در برنامه شما
310
00:11:17,120 –> 00:11:19,519
pygame.quit و این چیزی است که ما
311
00:11:19,519 –> 00:11:21,680
ایجاد کردیم، میدانم که 10 دقیقه طول کشید. اما
312
00:11:21,680 –> 00:11:23,680
ما پوسته تقریباً هر بازی را
313
00:11:23,680 –> 00:11:25,519
که میخواهید بسازید ایجاد کردهایم که
314
00:11:25,519 –> 00:11:27,120
میتوانید در اطراف عنوان بازی کنید و میتوانید
315
00:11:27,120 –> 00:11:28,959
با برخی از متغیرهای اندازه بازی کنید،
316
00:11:28,959 –> 00:11:31,279
اما این واقعاً چگونه
317
00:11:31,279 –> 00:11:33,200
بازی خود را تنظیم میکنید، اجازه دهید آن را اجرا کنید
318
00:11:33,200 –> 00:11:35,360
و میتوانید ببینید ما تقریباً شبیه
319
00:11:35,360 –> 00:11:38,079
یک صفحه نمایش با اندازه برنامه می شویم، می توانیم
320
00:11:38,079 –> 00:11:40,959
آن را بلندتر کنیم و می توانیم آن را گسترده تر کنیم، اما
321
00:11:40,959 –> 00:11:43,279
این باید برای شروع
322
00:11:43,279 –> 00:11:44,880
ساختن
323
00:11:44,880 –> 00:11:47,040
چیزهایمان خوب باشد، بنابراین بیایید جلو برویم و
324
00:11:47,040 –> 00:11:49,680
پخش کننده را روی بعدی بکشیم که به
325
00:11:49,680 –> 00:11:51,839
نوعی می شود مرحله بعدی اکنون که پوسته را تنظیم کرده ایم
326
00:11:51,839 –> 00:11:54,880
کد اولیه ای که ما نیاز داریم
327
00:11:54,880 –> 00:11:56,320
و شما واقعاً دوست دارید بتوانید از
328
00:11:56,320 –> 00:11:58,800
این صفحه عکس بگیرید
329
00:11:58,800 –> 00:12:00,959
و اساساً فقط آن را در یک
330
00:12:00,959 –> 00:12:03,519
دفترچه یادداشت یا در یک فایل pi داشته باشید و آن
331
00:12:03,519 –> 00:12:05,279
را در هر برنامه ای که می خواهید
332
00:12:05,279 –> 00:12:07,519
ایجاد کنید بریزید زیرا این مکان بدی نیست.
333
00:12:07,519 –> 00:12:09,040
از زمانی که شما در حال ساخت یک بازی هستید شروع
334
00:12:09,040 –> 00:12:10,639
335
00:12:10,639 –> 00:12:13,040
کنید، بنابراین ما از قبل بازیکن را
336
00:12:13,040 –> 00:12:16,320
به عنوان این تصویر تعریف کرده ایم و تنها کاری که باید
337
00:12:16,320 –> 00:12:18,240
انجام دهیم این است
338
00:12:18,240 –> 00:12:19,600
که کاری را انجام
339
00:12:19,600 –> 00:12:21,920
دهیم که به آن انتقال بلوک یا
340
00:12:21,920 –> 00:12:23,120
blit می گویند
341
00:12:23,120 –> 00:12:25,760
و این روش pygame برای کشیدن
342
00:12:25,760 –> 00:12:28,560
چیزی به صفحه نمایش، بنابراین ما میخواهیم
343
00:12:28,560 –> 00:12:31,920
نقطههای صفحه نمایش را درست در
344
00:12:31,920 –> 00:12:34,720
زیر پسزمینه انجام دهیم، زمانی
345
00:12:34,720 –> 00:12:36,800
که چیزی را ترسیم میکنید، ترتیب مهم است، بنابراین اگر میخواهید
346
00:12:36,800 –> 00:12:39,120
صفحه نمایش را
347
00:12:39,120 –> 00:12:41,680
انجام دهید، قبل از گرفتن پسزمینه این کار را انجام دهید.
348
00:12:41,680 –> 00:12:43,360
پر کردن آن
349
00:12:43,360 –> 00:12:45,279
تصویر پخش کننده شما را روی صفحه
350
00:12:45,279 –> 00:12:47,279
351
00:12:47,279 –> 00:12:49,040
می کشد اما سپس صفحه را با رنگ پس زمینه پر می کند و بنابراین در
352
00:12:49,040 –> 00:12:50,639
واقع هرگز پخش کننده خود را نخواهید دید، بنابراین
353
00:12:50,639 –> 00:12:52,560
اگر مشکلی داشتید
354
00:12:52,560 –> 00:12:54,560
که چیزی نشان داده نمی شود ترتیب مهم است.
355
00:12:54,560 –> 00:12:56,880
ممکن است قبل از
356
00:12:56,880 –> 00:12:58,560
چیزی که در واقع
357
00:12:58,560 –> 00:12:59,920
آن را پوشانده است، روی آن کشیده شده
358
00:12:59,920 –> 00:13:02,240
باشد، بنابراین آنچه که ما در اینجا داریم، صفحه نمایش
359
00:13:02,240 –> 00:13:04,000
نقطهای است و سپس
360
00:13:04,000 –> 00:13:05,839
اولین چیزی که به آن میدهید همان چیزی است که
361
00:13:05,839 –> 00:13:09,600
میکشد، بنابراین گفتیم آن را روی
362
00:13:09,600 –> 00:13:12,560
صفحه بکشید، به همین دلیل است که صفحه نمایش نقطه کوبیده می شود
363
00:13:12,560 –> 00:13:14,720
و سپس می گوییم پخش کننده را بکشید و سپس
364
00:13:14,720 –> 00:13:16,560
باید به آن موقعیت بدهیم بنابراین باید
365
00:13:16,560 –> 00:13:19,040
مختصات آن را در اینجا بدهیم
366
00:13:19,040 –> 00:13:20,959
و این می شود
367
00:13:20,959 –> 00:13:23,040
ما می توانیم ثابت ها را به آن بدهیم،
368
00:13:23,040 –> 00:13:25,040
اما اگر به
369
00:13:25,040 –> 00:13:27,120
آن فکر کنید پخش کننده شما در حال حرکت است. در
370
00:13:27,120 –> 00:13:28,639
کل بازی
371
00:13:28,639 –> 00:13:30,800
من پیشنهاد میکنم که آنها را تبدیل به
372
00:13:30,800 –> 00:13:33,760
متغیر کنیم و بیایید به سمت بالا برویم تا
373
00:13:33,760 –> 00:13:35,519
ثابتهای بازی داشته باشیم و سپس صفحه را داشته باشیم،
374
00:13:35,519 –> 00:13:37,360
بیایید یک بخش جدید بسازیم و
375
00:13:37,360 –> 00:13:39,519
آن را متغیرهای بازی بنامیم و اینها
376
00:13:39,519 –> 00:13:41,440
چیزهایی هستند که واقعاً
377
00:13:41,440 –> 00:13:44,959
به عنوان بخشی از بازی دائماً در حال تغییر هستند. عملکرد بازی،
378
00:13:44,959 –> 00:13:46,399
بنابراین برای شروع،
379
00:13:46,399 –> 00:13:49,040
بیایید فقط یک موقعیت را انتخاب کنیم
380
00:13:49,040 –> 00:13:50,560
تا بازیکن را در ابتدا قرار دهیم
381
00:13:50,560 –> 00:13:52,000
و این می تواند
382
00:13:52,000 –> 00:13:53,920
بعداً تغییر کند، تغییر می کند زیرا شما
383
00:13:53,920 –> 00:13:55,199
می
384
00:13:55,199 –> 00:13:57,040
پرید و اگر در حین عیب یابی آن را دوست نداشته باشیم،
385
00:13:57,040 –> 00:13:58,560
می توانیم فقط
386
00:13:58,560 –> 00:14:00,720
کمی آن را اینجا و آنجا بگرد،
387
00:14:00,720 –> 00:14:04,079
اما بیایید آن را روی 170 و 40 قرار دهیم
388
00:14:04,079 –> 00:14:07,440
و ببینیم آیا یک doodle روی صفحه نمایش
389
00:14:07,440 –> 00:14:08,399
390
00:14:08,399 –> 00:14:10,320
میدهیم، بنابراین آنچه که میتوانید ببینید
391
00:14:10,320 –> 00:14:12,079
گوشهای از این مرد است، زیرا اگر شما یک
392
00:14:12,079 –> 00:14:15,279
تصویر بزرگ داریم این نسخه پشتیبان را باز
393
00:14:15,279 –> 00:14:17,279
کنید، حجم بالایی دارد، بنابراین این همان چیزی است که
394
00:14:17,279 –> 00:14:19,120
کمی پیشتر گفتم،
395
00:14:19,120 –> 00:14:21,040
ما باید چیزی به آن اضافه کنیم زمانی که
396
00:14:21,040 –> 00:14:22,560
در تصویر پخشکننده خود بارگذاری میکنیم، باید
397
00:14:22,560 –> 00:14:25,279
چیزی به نام مقیاس
398
00:14:25,279 –> 00:14:28,839
و آن pygame.transform.scale اضافه کنیم
399
00:14:29,519 –> 00:14:32,240
و سپس آن را قرار دهیم. کل عبارت اول
400
00:14:32,240 –> 00:14:34,160
را باید درست بنویسید
401
00:14:34,160 –> 00:14:35,680
اولین عبارت that pie
402
00:14:35,680 –> 00:14:37,440
game.image.load را
403
00:14:37,440 –> 00:14:39,680
در داخل پرانتز برای
404
00:14:39,680 –> 00:14:41,600
piegame.transform.scale قرار دهید
405
00:14:41,600 –> 00:14:43,519
و سپس یک ستون انجام دهید و سپس
406
00:14:43,519 –> 00:14:45,920
مقیاسی را به آن بدهید که می خواهید
407
00:14:45,920 –> 00:14:48,720
در داخل اضافی باشد. در اینجا پرانتز قرار دهید، بنابراین
408
00:14:48,720 –> 00:14:49,839
409
00:14:49,839 –> 00:14:51,760
من می خواهم آن را تا حدود 90 در 70 کوچک کنم،
410
00:14:51,760 –> 00:14:55,600
هر تصویری که آورده
411
00:14:55,600 –> 00:14:58,399
اید، ممکن است لازم باشد مقیاس آن را
412
00:14:58,399 –> 00:15:01,680
متفاوت کنید، اما می توانید ببینید
413
00:15:01,680 –> 00:15:03,760
که تصویر بزرگ و اصلی من از ابله پرش
414
00:15:03,760 –> 00:15:05,839
را می گیرد و آن را به یک تصویر زیبا کاهش می دهد.
415
00:15:05,839 –> 00:15:09,120
اندازه قابل کنترل من آن را دوست دارم این اندازه
416
00:15:09,120 –> 00:15:12,000
بنابراین ما g هستیم میتوانیم با آن
417
00:15:12,000 –> 00:15:13,600
مرد بزرگ جلو برویم و چیزی که در طول گیمپلی متوجه آن خواهیم شد
418
00:15:13,600 –> 00:15:16,240
این است که در بسیاری از
419
00:15:16,240 –> 00:15:18,480
مواقع مانند یک پیکسل یا چیزی
420
00:15:18,480 –> 00:15:21,040
در تصویر وجود دارد که بیشتر از
421
00:15:21,040 –> 00:15:23,519
بقیه ظاهر میشود، بنابراین وقتی وارد مرحله پرش این تصویر میشویم.
422
00:15:23,519 –> 00:15:25,440
بازیهایی
423
00:15:25,440 –> 00:15:27,199
که ممکن است بخواهید مانند
424
00:15:27,199 –> 00:15:29,360
تشخیص برخورد کوچکتر از
425
00:15:29,360 –> 00:15:31,680
اندازه کلی تصویرتان بسازید، اما ما در
426
00:15:31,680 –> 00:15:33,360
حال پیشروی در جایی هستیم
427
00:15:33,360 –> 00:15:35,680
که در حال حاضر هستیم
428
00:15:35,680 –> 00:15:38,639
و بخش واقعاً مهم بعدی یک
429
00:15:38,639 –> 00:15:41,360
جامپر طراحی روی سکوها و
430
00:15:41,360 –> 00:15:44,000
غیره است. متغیرهای بازی چرا
431
00:15:44,000 –> 00:15:46,000
لیستی را که پلتفرم نامیده میشویم مقداردهی اولیه نمیکنیم
432
00:15:46,000 –> 00:15:47,360
433
00:15:47,360 –> 00:15:52,480
و بیایید تعدادی را برای شروع ترسیم کنیم، بنابراین
434
00:15:52,480 –> 00:15:54,959
فکر میکنم این لیست
435
00:15:54,959 –> 00:15:57,680
را در طول بازی هر بار که یک
436
00:15:57,680 –> 00:15:59,440
پلتفرم از صفحه نمایش به پایین میرود استفاده کنیم،
437
00:15:59,440 –> 00:16:00,959
زیرا هرچه بازیکن بالاتر و بالاتر میپرد
438
00:16:00,959 –> 00:16:03,279
، آن را از این لیست حذف میکنیم
439
00:16:03,279 –> 00:16:05,360
و در آن مرحله یک
440
00:16:05,360 –> 00:16:07,199
پلتفرم جدید به لیست بالای
441
00:16:07,199 –> 00:16:08,800
لیست اضافه
442
00:16:08,800 –> 00:16:10,959
میکنیم تا شروع کنید، زیرا میخواهید از
443
00:16:10,959 –> 00:16:12,880
شروع بازی مطمئن شوید که بازیکن خود را شروع میکنید.
444
00:16:12,880 –> 00:16:15,120
به فوریت نمی رود tely die
445
00:16:15,120 –> 00:16:16,880
من یک پلتفرم را
446
00:16:16,880 –> 00:16:19,360
447
00:16:19,360 –> 00:16:22,639
مستقیماً زیر پخش کننده ترسیم
448
00:16:22,639 –> 00:16:25,040
می کنم و چند
449
00:16:25,040 –> 00:16:27,279
پلتفرم اضافی را به اینجا اضافه می کنیم اما برای شروع من
450
00:16:27,279 –> 00:16:28,880
واقعاً می خواهم اولین
451
00:16:28,880 –> 00:16:31,120
مورد را روی صفحه نمایش بگذارم تا ما میتوانیم
452
00:16:31,120 –> 00:16:32,320
ببینیم کجاست
453
00:16:32,320 –> 00:16:34,720
و از آن بهعنوان مبنایی برای ترسیم
454
00:16:34,720 –> 00:16:37,759
بقیه آنها استفاده کنیم، بنابراین کاری که باید انجام دهیم این
455
00:16:37,759 –> 00:16:39,519
است که باید به جایی برسیم که در حال
456
00:16:39,519 –> 00:16:43,040
ترسیم چیزها هستیم و باید برای
457
00:16:43,040 –> 00:16:46,959
i در محدوده بگوییم و این محدوده را میخواهیم
458
00:16:46,959 –> 00:16:49,920
طول لیست پلتفرم ما باشد
459
00:16:49,920 –> 00:16:52,560
زیرا به تعداد پلتفرمهایی که در
460
00:16:52,560 –> 00:16:55,759
لیست مختصاتی که به آن
461
00:16:55,759 –> 00:16:58,880
دادهایم وجود دارد، میخواستیم حلقه ما در آن لیست چرخه داشته باشد
462
00:16:58,880 –> 00:17:03,120
و اوه، شما در اینجا به پرانتز نیاز دارید،
463
00:17:03,120 –> 00:17:05,199
ما میخواهیم کد ما در لیست چرخه شود
464
00:17:05,199 –> 00:17:07,280
. پلتفرمها و مطمئن شوید که
465
00:17:07,280 –> 00:17:09,760
برای
466
00:17:09,760 –> 00:17:11,919
همه چیزهایی که در آن محدوده هستند، یک شی را روی صفحه میکشد،
467
00:17:11,919 –> 00:17:15,679
بنابراین برای من در طول محدوده پلتفرمها، آه
468
00:17:15,679 –> 00:17:18,480
، میخواهیم چه کار کنیم، میخواهیم
469
00:17:18,480 –> 00:17:20,720
چیزی را بکشیم که من آن را بلوک مینامم، زیرا
470
00:17:20,720 –> 00:17:23,359
آنها اساساً این کار را انجام میدهند. مستطیل
471
00:17:23,359 –> 00:17:26,359
pygame.draw.rect باشد
472
00:17:26,559 –> 00:17:29,679
و ما t را می خواهیم o آن را روی صفحه قرار دهید،
473
00:17:29,679 –> 00:17:32,799
من باید چیزها را به درستی املا
474
00:17:32,799 –> 00:17:34,960
کنم، آن را روی صفحه قرار
475
00:17:34,960 –> 00:17:36,880
دهید، بیایید آنها را سیاه کنیم
476
00:17:36,880 –> 00:17:38,160
تا شروع شود
477
00:17:38,160 –> 00:17:40,640
و سپس
478
00:17:40,640 –> 00:17:42,640
مختصات واقعی، بنابراین باید
479
00:17:42,640 –> 00:17:44,960
توضیح می دادم که چرا این پلت فرم را ساختم، من
480
00:17:44,960 –> 00:17:47,760
به آن چهار مختصات می دهم تا
481
00:17:47,760 –> 00:17:49,440
یک پلت فرم کاملاً تعریف شود.
482
00:17:49,440 –> 00:17:53,200
مثل این سبک، مانند چهار
483
00:17:53,200 –> 00:17:55,919
مختصات Uh در داخل پرانتز و
484
00:17:55,919 –> 00:17:58,000
کاری که ما انجام می دهیم این است که لیست ها را
485
00:17:58,000 –> 00:18:01,360
در یک لیست قرار می دهیم، ممکن است گیج کننده به نظر برسد،
486
00:18:01,360 –> 00:18:03,280
اما دلیل این کار زمانی است که شما
487
00:18:03,280 –> 00:18:05,760
از pygame.draw.rect آن استفاده می
488
00:18:05,760 –> 00:18:07,600
کنید. برای تعریف کامل یک مستطیل به چهار مختصات نیاز دارد
489
00:18:07,600 –> 00:18:10,960
تا بتوانیم از
490
00:18:10,960 –> 00:18:13,679
این نمایه ساز استفاده کنیم و بگوییم
491
00:18:13,679 –> 00:18:15,840
ابتدا می گویید با چه صفحه ای آن را روی
492
00:18:15,840 –> 00:18:18,160
چه رنگی قرار دهیم تا شی را بکشیم و
493
00:18:18,160 –> 00:18:19,760
سپس به
494
00:18:19,760 –> 00:18:22,400
um موقعیت x و موقعیت y و
495
00:18:22,400 –> 00:18:25,039
سپس عرض و ارتفاعش نیاز دارد. بنابراین
496
00:18:25,039 –> 00:18:27,200
چیزی که در اینجا داریم این است که می
497
00:18:27,200 –> 00:18:30,240
گوییم گوشه سمت چپ بالای مستطیل را
498
00:18:30,240 –> 00:18:34,240
در مختصات 175 480 قرار دهید و سپس آن را
499
00:18:34,240 –> 00:18:36,880
70 عرض و 10 بلند کنید، بنابراین باید
500
00:18:36,880 –> 00:18:38,240
زمانی که لیست پلت فرم را ایجاد کردم کمی بیشتر توضیح می دادم،
501
00:18:38,240 –> 00:18:40,000
502
00:18:40,000 –> 00:18:40,880
503
00:18:40,880 –> 00:18:42,880
اما این همان چیزی است که ما تعریف می کنیم بنابراین ما
504
00:18:42,880 –> 00:18:45,840
ج در صفحه pygame.draw.rect ما پایین بیاید و
505
00:18:45,840 –> 00:18:47,520
506
00:18:47,520 –> 00:18:49,360
بگوید چه رنگی خواهد بود و
507
00:18:49,360 –> 00:18:51,280
سپس مختصات مستطیلی
508
00:18:51,280 –> 00:18:53,039
مورد نیاز را به آن بدهید
509
00:18:53,039 –> 00:18:54,960
و سپس این بلوک را صدا می زنیم که
510
00:18:54,960 –> 00:18:58,000
می خواهیم لیست بلوک های خود را پیگیری کنیم
511
00:18:58,000 –> 00:18:59,280
512
00:18:59,280 –> 00:19:02,480
زیرا این غیر
513
00:19:02,480 –> 00:19:05,039
از یک لیست مختصات است، این
514
00:19:05,039 –> 00:19:06,480
فقط لیست
515
00:19:06,480 –> 00:19:09,280
مختصات پلتفرم ها خواهد بود
516
00:19:09,280 –> 00:19:12,720
و من می خواهم این لیست بلوک ها لیستی
517
00:19:12,720 –> 00:19:15,120
از تمام اشیاء مستطیل شکل واقعی باشد
518
00:19:15,120 –> 00:19:16,640
زیرا ما از یک مزیت استفاده خواهیم کرد.
519
00:19:16,640 –> 00:19:19,520
کمی از بازیهای pi ساخته شده در
520
00:19:19,520 –> 00:19:21,760
تابع برخورد مستطیلی شکل،
521
00:19:21,760 –> 00:19:24,880
بنابراین ما فقط میخواهیم به
522
00:19:24,880 –> 00:19:27,280
لیست بلوکهایی اضافه کنیم که
523
00:19:27,280 –> 00:19:29,679
در حلقه بازیمان بهعنوان یک لیست خالی شروع میکنیم و
524
00:19:29,679 –> 00:19:31,919
هر
525
00:19:31,919 –> 00:19:34,720
مستطیل را همانطور که به آن کشیده میشود اضافه میکنیم. یک
526
00:19:34,720 –> 00:19:35,919
لیست
527
00:19:35,919 –> 00:19:37,360
بلوکها اگر منطقی نباشد که چرا
528
00:19:37,360 –> 00:19:39,360
در حال حاضر این کار
529
00:19:39,360 –> 00:19:41,360
را انجام میدهیم، وقتی به پرش و
530
00:19:41,360 –> 00:19:43,039
تشخیص برخورد رسیدیم
531
00:19:43,039 –> 00:19:46,640
، بیایید ببینیم آیا این برای کشیدن اولین مستطیل روی صفحه کافی است یا خیر.
532
00:19:46,640 –> 00:19:48,640
یا
533
00:19:48,640 –> 00:19:50,640
اگر می خواهیم مقداری e خطاها،
534
00:19:50,640 –> 00:19:52,799
بله، درست است، درست
535
00:19:52,799 –> 00:19:54,960
زیر بازیکن است، بنابراین وقتی بازی شروع میشود
536
00:19:54,960 –> 00:19:56,720
، بازیکن میافتد و سپس نوعی
537
00:19:56,720 –> 00:19:59,039
آن حرکت پرش بینهایت که پرش doodle به
538
00:19:59,039 –> 00:20:01,520
آن معروف است،
539
00:20:01,520 –> 00:20:03,520
بلافاصله با شروع بازی شروع میشود،
540
00:20:03,520 –> 00:20:06,640
بنابراین خیلی جالب است. اوه، شاید فقط
541
00:20:06,640 –> 00:20:08,960
یک چیز سبک در
542
00:20:08,960 –> 00:20:11,200
اینجا مانند سکوهای پرش doodle
543
00:20:11,200 –> 00:20:12,400
معمولاً
544
00:20:12,400 –> 00:20:14,880
مستطیل های گرد هستند و اگر بخواهیم
545
00:20:14,880 –> 00:20:16,480
این کار را انجام دهیم، فقط باید
546
00:20:16,480 –> 00:20:18,960
چند پارامتر دیگر به آن بدهیم، عرض آن را صفر می
547
00:20:18,960 –> 00:20:21,520
کنیم زیرا در واقع عرض لبه
548
00:20:21,520 –> 00:20:23,360
است. اگر
549
00:20:23,360 –> 00:20:25,600
بخواهیم به آن عدد بدهیم، یک مستطیل توخالی خواهد بود، آن را سریع نشان دهیم
550
00:20:25,600 –> 00:20:27,919
و سپس به آن
551
00:20:27,919 –> 00:20:30,080
شعاع مرزی می دهیم که مشخص می کند
552
00:20:30,080 –> 00:20:32,880
چقدر گرد است، بنابراین می توانید
553
00:20:32,880 –> 00:20:34,480
در اینجا ببینید که دیدن آن سخت است زیرا من به آن
554
00:20:34,480 –> 00:20:35,840
یک عدد می دهم. عرض
555
00:20:35,840 –> 00:20:38,320
یک مانند وایرفریم خواهد بود و همانطور
556
00:20:38,320 –> 00:20:40,320
که عرض را افزایش می دهیم، فرض کنید
557
00:20:40,320 –> 00:20:42,799
به دو یا
558
00:20:42,799 –> 00:20:45,200
سه رسیدیم، تبدیل به یک مستطیل گرد بلوکی می شود
559
00:20:45,200 –> 00:20:46,480
560
00:20:46,480 –> 00:20:48,159
و در واقع اگر آن سه را بسازیم
561
00:20:48,159 –> 00:20:50,240
کمی بهتر به نظر می رسد، اما اگر بخواهیم
562
00:20:50,240 –> 00:20:52,480
o یک مستطیل گرد جامد باشید فقط به
563
00:20:52,480 –> 00:20:55,039
آن صفر بدهید و بگویید باید
564
00:20:55,039 –> 00:20:56,799
کاملاً پر شود،
565
00:20:56,799 –> 00:20:59,120
بنابراین اکنون می توانید ببینید که ما این مستطیل کاملاً گرد و سرگرم کننده را دریافت می کنیم
566
00:20:59,120 –> 00:21:02,559
567
00:21:02,559 –> 00:21:03,360
و
568
00:21:03,360 –> 00:21:04,720
من فکر می کنم که خیلی خوب
569
00:21:04,720 –> 00:21:06,480
به نظر می رسد و مطمئناً به واقعیت نزدیک تر است.
570
00:21:06,480 –> 00:21:09,280
مانند منشأهای پرش doodle و اکنون
571
00:21:09,280 –> 00:21:11,440
هر پلتفرمی که وارد آن میشویم
572
00:21:11,440 –> 00:21:13,360
این ویژگیها را خواهد داشت که قدرت واقعی
573
00:21:13,360 –> 00:21:15,679
قرار دادن آن در یک حلقه for است، زیرا اگر
574
00:21:15,679 –> 00:21:18,320
بخواهیم فرض کنیم همزمان 12 پلت فرم
575
00:21:18,320 –> 00:21:20,000
روی صفحه
576
00:21:20,000 –> 00:21:21,840
داریم و آن را نداشتیم. در یک حلقه شما
577
00:21:21,840 –> 00:21:24,640
12 عبارت خواهید داشت که
578
00:21:24,640 –> 00:21:26,559
یک مستطیل را روی صفحه می نویسند و
579
00:21:26,559 –> 00:21:29,600
فاصله آن را کنترل می کنند،
580
00:21:29,600 –> 00:21:30,720
581
00:21:30,720 –> 00:21:32,559
بنابراین کاری که می خواهم انجام دهم این است که
582
00:21:32,559 –> 00:21:34,640
در واقع می خواهم عمل پرش بی نهایت را دریافت کنم
583
00:21:34,640 –> 00:21:37,039
584
00:21:37,039 –> 00:21:38,320
585
00:21:38,320 –> 00:21:41,440
و این کار را انجام دهم. من پیشنهاد میکنم
586
00:21:41,440 –> 00:21:44,000
از تابعی استفاده کنیم که
587
00:21:44,000 –> 00:21:46,559
موقعیت پخشکننده و همچنین
588
00:21:46,559 –> 00:21:48,640
موقعیت همه سکوها را بررسی میکند و
589
00:21:48,640 –> 00:21:51,280
زمان
590
00:21:51,280 –> 00:21:52,880
پرش فرا رسیده یا نه
591
00:21:52,880 –> 00:21:55,200
592
00:21:55,200 –> 00:21:58,400
با شما تماس خواهد گرفت پخش کننده pdate
593
00:21:58,400 –> 00:22:00,240
و ما این را در
594
00:22:00,240 –> 00:22:02,480
هر حلقه اجرا می کنیم، بنابراین
595
00:22:02,480 –> 00:22:04,320
چون بازیکن به
596
00:22:04,320 –> 00:22:06,159
طور مداوم
597
00:22:06,159 –> 00:22:08,080
در این بازی در حال حرکت است،
598
00:22:08,080 –> 00:22:10,960
اوم خوب، پس
599
00:22:10,960 –> 00:22:12,240
اوه ما ادامه می
600
00:22:12,240 –> 00:22:14,159
دهیم و موقعیت بازیکن را به روز می کنیم
601
00:22:14,159 –> 00:22:15,600
602
00:22:15,600 –> 00:22:18,559
و فکر می کنم همه ما این کار را در این عملکرد
603
00:22:18,559 –> 00:22:20,080
انجام دهیم. باید انجام دهیم این است که در
604
00:22:20,080 –> 00:22:22,799
مختصات y بازیکن پاس بدهیم و تنها چیزی که باید
605
00:22:22,799 –> 00:22:24,799
انتظار داشته باشیم که به عقب برگردیم
606
00:22:24,799 –> 00:22:26,720
مختصات y بازیکن است، بنابراین
607
00:22:26,720 –> 00:22:29,039
از این برای کنترل حرکت بالا و پایین
608
00:22:29,039 –> 00:22:31,039
بازیکن استفاده می
609
00:22:31,039 –> 00:22:32,240
کنیم و می رویم. برای اجرای آن یک بار در هر
610
00:22:32,240 –> 00:22:33,919
حلقه، بیایید به اینجا بیاییم و در واقع
611
00:22:33,919 –> 00:22:35,120
آن را تعریف کنیم
612
00:22:35,120 –> 00:22:36,960
و فقط برای خودمان یک نظر
613
00:22:36,960 –> 00:22:38,080
614
00:22:38,080 –> 00:22:39,679
615
00:22:39,679 –> 00:22:40,799
616
00:22:40,799 –> 00:22:42,960
617
00:22:42,960 –> 00:22:45,039
618
00:22:45,039 –> 00:22:48,240
بگذاریم و بگوییم به روز رسانی پخش کننده y هر حلقه را در جای خود قرار دهید و ما از def برای تعریف یک تابع استفاده می کنیم و
619
00:22:48,240 –> 00:22:51,039
آن را پخش کننده آپدیت می نامیم و
620
00:22:51,039 –> 00:22:54,320
سپس آنچه را که می کنیم. انتظار مجدد در موقعیت y است
621
00:22:54,320 –> 00:22:56,000
622
00:22:56,000 –> 00:22:58,000
و عملکرد پخش کننده آپدیت چگونه
623
00:22:58,000 –> 00:23:00,080
به نظر می رسد
624
00:23:00,080 –> 00:23:02,000
اساساً
625
00:23:02,000 –> 00:23:04,080
بررسی می کند که آیا
626
00:23:04,080 –> 00:23:06,000
در موقعیتی هستیم که باید بپریم و
627
00:23:06,000 –> 00:23:08,400
اگر نیاز به پرش داریم، آن را
628
00:23:08,400 –> 00:23:10,080
به
629
00:23:10,080 –> 00:23:12,960
سمت بالا ارسال می کنیم اما برای ساختن یک
630
00:23:12,960 –> 00:23:14,400
پرش واقعی به نظر می رسد ممکن است
631
00:23:14,400 –> 00:23:16,559
در ابتدای این ویدیو دیده باشید که
632
00:23:16,559 –> 00:23:18,480
ما باید چند متغیر داشته
633
00:23:18,480 –> 00:23:21,200
باشیم مانند ارتفاع پرش که
634
00:23:21,200 –> 00:23:22,240
635
00:23:22,240 –> 00:23:23,520
تعیین
636
00:23:23,520 –> 00:23:26,320
می کند بازیکن هر بار چقدر بالا می پرد
637
00:23:26,320 –> 00:23:28,720
و بنابراین من فعلاً آن را فقط
638
00:23:28,720 –> 00:23:30,480
10 می نامم. و
639
00:23:30,480 –> 00:23:32,480
اگر بخواهیم بعداً میتوانیم این چیزها را تغییر دهیم و سپس به یک متغیر گرانش نیاز داریم
640
00:23:32,480 –> 00:23:34,320
641
00:23:34,320 –> 00:23:36,400
و گرانش چیزی است
642
00:23:36,400 –> 00:23:38,080
که بررسی میکند
643
00:23:38,080 –> 00:23:39,840
و مانند یک تابع درجه دوم روی آن تأثیر میگذارد،
644
00:23:39,840 –> 00:23:42,559
درست مانند
645
00:23:42,559 –> 00:23:45,200
گرانش معمولی که با بالا رفتن بسیار شروع میکنید.
646
00:23:45,200 –> 00:23:47,600
خیلی سریع اما گرانش هر ثانیه روی شما سنگینی می
647
00:23:47,600 –> 00:23:49,919
کند و سپس وقتی شروع
648
00:23:49,919 –> 00:23:52,000
به پایین آمدن می کنید گرانش
649
00:23:52,000 –> 00:23:54,559
ترکیب می شود و به آن اضافه می شود،
650
00:23:54,559 –> 00:23:56,400
بنابراین ما باید ارتفاع پرش
651
00:23:56,400 –> 00:23:58,240
و گرانش را در این تابع ایجاد
652
00:23:58,240 –> 00:23:59,039
653
00:23:59,039 –> 00:24:02,000
کنیم و در واقع می خواهیم فراخوانی کنیم. در
654
00:24:02,000 –> 00:24:04,799
تعداد کمی از جهانیها نیز میتوانیم آنها را ارسال کنیم،
655
00:24:04,799 –> 00:24:05,919
656
00:24:05,919 –> 00:24:09,200
اما فکر نمیکنم
657
00:24:09,200 –> 00:24:10,799
لزوماً کد را پاک کند، فکر میکنم
658
00:24:10,799 –> 00:24:12,400
ممکن است آن را پیچیده کند
659
00:24:12,400 –> 00:24:14,720
و تا زمانی که قصد نداریم
660
00:24:14,720 –> 00:24:16,880
آنها را در اینجا تغییر دهیم، فراخوانی جهانیها است. فقط
661
00:24:16,880 –> 00:24:18,880
فی بنابراین، ما چند چیز را فراخوانی
662
00:24:18,880 –> 00:24:21,279
می کنیم که باید متغیرهایی به نام jump در بازی ایجاد کنیم
663
00:24:21,279 –> 00:24:24,320
که یک غلط واقعی است و
664
00:24:24,320 –> 00:24:26,400
فقط به ما می گوید که
665
00:24:26,400 –> 00:24:29,279
آیا زمان پرش فرا رسیده است یا نه و بنابراین شروع
666
00:24:29,279 –> 00:24:30,640
کنیم که اشتباه خواهد بود. چون
667
00:24:30,640 –> 00:24:33,039
بازیکن در موقعیتی نیست که بپرد
668
00:24:33,039 –> 00:24:34,159
و سپس ما یک
669
00:24:34,159 –> 00:24:36,400
متغیر به نام چرا تغییر ایجاد می کنیم که چگونه
670
00:24:36,400 –> 00:24:38,159
در واقع
671
00:24:38,159 –> 00:24:39,919
تعیین می کنیم
672
00:24:39,919 –> 00:24:41,360
که با موقعیت عمودی بازیکن چه اتفاقی بیفتد
673
00:24:41,360 –> 00:24:43,200
و بنابراین
674
00:24:43,200 –> 00:24:44,960
شروع را صفر می کنیم زیرا گرانش باید
675
00:24:44,960 –> 00:24:46,960
فوراً شروع به کشیدن
676
00:24:46,960 –> 00:24:48,799
بازیکن به سمت پایین شود،
677
00:24:48,799 –> 00:24:50,320
بنابراین وقتی به آنها به عنوان جهانی
678
00:24:50,320 –> 00:24:53,919
اشاره کردیم، فقط موقعیت y
679
00:24:53,919 –> 00:24:54,960
خود را می
680
00:24:54,960 –> 00:24:58,480
گیریم و اساساً می گوییم اگر زمان
681
00:24:58,480 –> 00:25:01,520
پرش فرا رسیده است، می خواهیم تغییر y
682
00:25:01,520 –> 00:25:04,000
برابر باشد و این جایی است که
683
00:25:04,000 –> 00:25:05,679
684
00:25:05,679 –> 00:25:07,679
اگر
685
00:25:07,679 –> 00:25:10,400
قبل از بازی پای ندیده
686
00:25:10,400 –> 00:25:14,400
687
00:25:14,400 –> 00:25:16,640
688
00:25:16,640 –> 00:25:20,240
باشید، ممکن است همه چیز کمی گیج کننده شود.
689
00:25:20,240 –> 00:25:22,640
کوچکتر شوید، بنابراین اگر در حال حاضر هستید می گوییم
690
00:25:22,640 –> 00:25:24,880
مختصات y 300 شما تقریباً
691
00:25:24,880 –> 00:25:27,919
به پایین وسط وسط صفحه نمایش نزدیک هستید
692
00:25:27,919 –> 00:25:29,840
وقتی زمان پرش فرا می رسد می خواهید به
693
00:25:29,840 –> 00:25:33,360
سمت 290 280 270 بروید و این عدد
694
00:25:33,360 –> 00:25:36,080
کاهش می یابد، بنابراین ارتفاع پرش را
695
00:25:36,080 –> 00:25:38,240
مثبت کردیم فقط برای اینکه ردیابی کمی واضح تر باشد.
696
00:25:38,240 –> 00:25:39,760
697
00:25:39,760 –> 00:25:41,520
این بدان معناست که ما باید تغییر y
698
00:25:41,520 –> 00:25:43,760
را برابر با ارتفاع پرش منفی
699
00:25:43,760 –> 00:25:47,440
کنیم به طوری که با منفی 10 تغییر می کنیم.
700
00:25:47,440 –> 00:25:49,840
و این ممکن است کمی گیج کننده باشد
701
00:25:49,840 –> 00:25:50,720
اما
702
00:25:50,720 –> 00:25:51,919
با من تحمل کنید
703
00:25:51,919 –> 00:25:54,080
و سپس بلافاصله جهش را برابر
704
00:25:54,080 –> 00:25:56,080
با نادرست قرار می دهیم زیرا ما فقط
705
00:25:56,080 –> 00:25:58,400
میخواهیم این اتفاق در یک حلقه بیفتد، بنابراین
706
00:25:58,400 –> 00:26:00,159
وقتی زمان پرش فرا
707
00:26:00,159 –> 00:26:02,000
میرسد، یعنی زمانی که بازیکن با یک پلتفرم برخورد میکند،
708
00:26:02,000 –> 00:26:03,120
709
00:26:03,120 –> 00:26:05,440
میخواهیم یک اسکن را انجام دهیم که در آن بگوید خوب
710
00:26:05,440 –> 00:26:07,120
وقت پریدن است، شروع کنیم به گفتن بازیکن
711
00:26:07,120 –> 00:26:09,279
به سمت بالا که دیگر نباید با آن برخورد کند.
712
00:26:09,279 –> 00:26:10,640
پلتفرم
713
00:26:10,640 –> 00:26:12,480
و سپس آن متغیر jump را برابر
714
00:26:12,480 –> 00:26:13,840
با false
715
00:26:13,840 –> 00:26:15,520
قرار دادیم، به این ترتیب میخواهیم آن را مدیریت کنیم
716
00:26:15,520 –> 00:26:16,960
و سپس میتوانیم از آن خارج شویم، اگر
717
00:26:16,960 –> 00:26:18,400
دستور oops
718
00:26:18,400 –> 00:26:19,840
شما در آنجا بمانید،
719
00:26:19,840 –> 00:26:21,600
از آن عبارت if خارج میشویم و ما
720
00:26:21,600 –> 00:26:24,080
هنوز در آن هستیم. بازیکنان
721
00:26:24,080 –> 00:26:26,240
تابع پخش کننده در اینجا و ما می
722
00:26:26,240 –> 00:26:29,039
خواهیم بگوییم که موقعیت y
723
00:26:29,039 –> 00:26:31,360
به آن اضافه می شود y تغییر می کنیم، این کار را در
724
00:26:31,360 –> 00:26:33,600
هر حلقه انجام می دهیم و سپس
725
00:26:33,600 –> 00:26:36,240
متغیر تغییر y را
726
00:26:36,240 –> 00:26:37,039
با
727
00:26:37,039 –> 00:26:40,720
گرانش تغییر می دهیم، بنابراین گرانش را اضافه می کنیم.
728
00:26:40,720 –> 00:26:42,640
اوم و این باید برای
729
00:26:42,640 –> 00:26:44,480
نوع بازیای که ما میسازیم که در آن شما
730
00:26:44,480 –> 00:26:46,320
دائماً در حال پریدن هستید، منطقی باشد، بازیکن کنترل نمیکند
731
00:26:46,320 –> 00:26:47,679
732
00:26:47,679 –> 00:26:49,760
وقتی میپرید، هر زمانی که به
733
00:26:49,760 –> 00:26:52,480
سکوی برخورد میکنید بلافاصله میپرید،
734
00:26:52,480 –> 00:26:54,640
یعنی مهم نیست که چه جاذبهای
735
00:26:54,640 –> 00:26:56,960
روی شما تأثیر میگذارد. دوم، بنابراین
736
00:26:56,960 –> 00:26:59,120
شما دائماً به سمت
737
00:26:59,120 –> 00:27:01,600
ده بالا می روید، یک اسکن بعداً نه، یک اسکن
738
00:27:01,600 –> 00:27:03,120
بعداً به هشت،
739
00:27:03,120 –> 00:27:05,440
و سپس به شکل درجه دوم قوس خواهد شد،
740
00:27:05,440 –> 00:27:07,279
741
00:27:07,279 –> 00:27:08,240
بنابراین
742
00:27:08,240 –> 00:27:10,320
بله، بنابراین ما می خواهیم تغییر y را
743
00:27:10,320 –> 00:27:12,720
بر اساس گرانش تغییر دهیم و سپس ما. فقط می خواهید
744
00:27:12,720 –> 00:27:13,760
745
00:27:13,760 –> 00:27:16,480
موقعیت y را برگردانید موقعیت y را
746
00:27:16,799 –> 00:27:18,399
برگردانید،
747
00:27:18,399 –> 00:27:19,200
748
00:27:19,200 –> 00:27:20,880
بنابراین
749
00:27:20,880 –> 00:27:22,880
اگر به ابتدای موقعیت y فکر کنید به
750
00:27:22,880 –> 00:27:25,679
علاوه برابر است با
751
00:27:25,679 –> 00:27:28,399
y تغییر
752
00:27:28,399 –> 00:27:32,000
آه ببینید من انجام دادم y تغییر منهای برابر
753
00:27:32,000 –> 00:27:33,919
10 کردم، اما اگر
754
00:27:33,919 –> 00:27:36,159
بخواهیم بعداً آن را تغییر دهیم باید ارتفاع پرش را بگوییم، می توانید آن را تغییر دهید.
755
00:27:36,159 –> 00:27:37,919
چیزهایی با کد سخت اما اگر
756
00:27:37,919 –> 00:27:40,320
متوجه شدید در داخل یک تابع، یک
757
00:27:40,320 –> 00:27:42,720
متغیر محلی خاکستری شده دارید، پس
758
00:27:42,720 –> 00:27:44,240
احتمالاً اشتباهی انجام داده اید یا
759
00:27:44,240 –> 00:27:45,600
به آن متغیر نیاز ندارید و
760
00:27:45,600 –> 00:27:47,200
فقط باید از شر آن خلاص شوید،
761
00:27:47,200 –> 00:27:48,559
زیرا معمولاً
762
00:27:48,559 –> 00:27:51,200
خاکستری به معنی استفاده نمی شود و اگر
763
00:27:51,200 –> 00:27:52,880
تابعی را با متغیر ساخته اید. استفاده نمیشود،
764
00:27:52,880 –> 00:27:55,120
پس شما مقدار زیادی در عملکرد خود قرار میدهید،
765
00:27:55,120 –> 00:27:56,320
766
00:27:56,320 –> 00:27:58,559
خوب، بنابراین من فکر میکنم این ماهیت
767
00:27:58,559 –> 00:28:00,320
رسیدگی به کارهایی است
768
00:28:00,320 –> 00:28:03,200
که هنگام پریدن انجام میدهیم، اما هنوز در
769
00:28:03,200 –> 00:28:05,679
برخورد قرار ندادهایم، بنابراین میخواهم
770
00:28:05,679 –> 00:28:07,440
عملکرد
771
00:28:07,440 –> 00:28:09,840
دیگری ایجاد کنیم که اجرا شود. هر ثانیه
772
00:28:09,840 –> 00:28:12,320
بررسی میکنیم که آیا هر اسکنی
773
00:28:12,320 –> 00:28:13,679
که میخواهد بررسی کند که
774
00:28:13,679 –> 00:28:15,760
آیا زمان پرش فرا رسیده است یا نه و آنچه قرار
775
00:28:15,760 –> 00:28:18,240
است انجام دهیم، بررسی میکنیم که آیا
776
00:28:18,240 –> 00:28:20,159
تصادمات را
777
00:28:20,159 –> 00:28:22,480
بررسی
778
00:28:22,480 –> 00:28:25,679
779
00:28:25,679 –> 00:28:26,799
780
00:28:26,799 –> 00:28:28,799
میکنیم. در آنجا انجام میدهیم، این است
781
00:28:28,799 –> 00:28:30,960
که کل
782
00:28:30,960 –> 00:28:34,000
فهرست بلوکها یا پلتفرمها
783
00:28:34,000 –> 00:28:36,559
را پاس میکنیم و همه آن
784
00:28:36,559 –> 00:28:38,240
مختصات را پاس میکنیم و میخواهیم ببینیم
785
00:28:38,240 –> 00:28:40,720
آیا زمان آن فرا رسیده است یا نه
786
00:28:40,720 –> 00:28:43,120
آیا زمان پرش
787
00:28:43,120 –> 00:28:44,960
بر اساس این است یا خیر نه ته بازیکن به
788
00:28:44,960 –> 00:28:45,919
سمت پایین
789
00:28:45,919 –> 00:28:46,960
می
790
00:28:46,960 –> 00:28:48,240
791
00:28:48,240 –> 00:28:50,799
آید و با یک مستطیل برخورد می کند، بنابراین
792
00:28:50,799 –> 00:28:52,399
این بخش مهمی از پرش ابله است
793
00:28:52,399 –> 00:28:54,240
که در واقع وقتی عمودی می روید
794
00:28:54,240 –> 00:28:56,399
می خواهید بتوانید از یک بلوک بپرید
795
00:28:56,399 –> 00:28:58,080
و تا زمانی که به
796
00:28:58,080 –> 00:29:00,159
پایین برگردید نمی توانید بپرید. ما باید آن را بررسی کنیم و
797
00:29:00,159 –> 00:29:02,720
خواهیم دید که چگونه عملکردی که نوشتیم
798
00:29:02,720 –> 00:29:03,760
برای
799
00:29:03,760 –> 00:29:05,679
بهروزرسانی پخشکننده بررسی میکند که در واقع
800
00:29:05,679 –> 00:29:08,399
به خوبی منجر به
801
00:29:08,399 –> 00:29:09,440
انجام این
802
00:29:09,440 –> 00:29:12,559
کار میشود، بنابراین بیایید جلو برویم و برخوردهای چک خود را تعریف کنیم
803
00:29:12,559 –> 00:29:14,240
و همه چیزهایی را که باید در
804
00:29:14,240 –> 00:29:16,159
اینجا پاس کنیم آیا بلوکهای ما
805
00:29:16,159 –> 00:29:18,480
و متغیر پرش هستند و چیزی که میخواهیم
806
00:29:18,480 –> 00:29:20,720
به آن برگردیم پرش است، بنابراین بیایید
807
00:29:20,720 –> 00:29:23,200
اینجا پیش برویم و اجازه دهید یک تابع دیگر تعریف
808
00:29:23,200 –> 00:29:24,480
809
00:29:24,480 –> 00:29:26,880
کنیم و این تعریف را check
810
00:29:26,880 –> 00:29:29,919
collisions مینامیم و
811
00:29:29,919 –> 00:29:32,480
در لیست بلوکها عبور میکنیم
812
00:29:32,480 –> 00:29:35,120
و در واقع این معمولاً ایده خوبی است
813
00:29:35,120 –> 00:29:37,279
814
00:29:38,159 –> 00:29:40,399
که معمولاً ایده خوبی است که از
815
00:29:40,399 –> 00:29:42,240
816
00:29:42,240 –> 00:29:44,559
نام های متغیر مختلف در داخل توابع خود استفاده کنید
817
00:29:44,559 –> 00:29:46,399
تا محدوده بیرونی را تحت الشعاع قرار ندهد
818
00:29:46,399 –> 00:29:49,440
و این فقط یک راه خوب است
819
00:29:49,440 –> 00:29:50,799
که روش خوبی برای جدا نگه داشتن
820
00:29:50,799 –> 00:29:52,320
توابع
821
00:29:52,320 –> 00:29:54,080
شماست. برای عیبیابی بعداً از دنیای خارج امتیاز دهید،
822
00:29:54,080 –> 00:29:56,880
اما
823
00:29:56,880 –> 00:29:58,799
اگر میخواهید میتوانید از نامها دوباره استفاده کنید، این
824
00:29:58,799 –> 00:30:01,039
نباید برای شما خطا ایجاد کند،
825
00:30:01,039 –> 00:30:04,240
و فرض کنید
826
00:30:04,240 –> 00:30:06,960
برخورد با بلوکها را بررسی کنید، ایده خوبی
827
00:30:06,960 –> 00:30:09,120
است که این نظرات را در کد خود بگذارید
828
00:30:09,120 –> 00:30:10,799
تا به شما بگویم. در هر بخش چه اتفاقی میافتد،
829
00:30:10,799 –> 00:30:12,000
830
00:30:12,000 –> 00:30:13,840
اگر قرار بود این کد را به
831
00:30:13,840 –> 00:30:15,760
شخص دیگری منتقل کنید تا او روی آن کار کند، او را
832
00:30:15,760 –> 00:30:17,679
مجبور نکنید به دنبال کاری که
833
00:30:17,679 –> 00:30:20,799
میخواهید انجام دهید، به آنها بگویید
834
00:30:20,799 –> 00:30:22,880
و در بررسی برخوردها به ما بگویید قرار است
835
00:30:22,880 –> 00:30:23,840
این کار را انجام دهیم این
836
00:30:23,840 –> 00:30:25,600
است که ما می خواهیم
837
00:30:25,600 –> 00:30:29,120
موقعیت پخش کننده را بررسی کنیم، بنابراین برای
838
00:30:29,120 –> 00:30:30,960
انجام این کار، بازیکن x
839
00:30:30,960 –> 00:30:33,440
و بازیکن y
840
00:30:33,440 –> 00:30:35,520
um را فراخوانی می کنم،
841
00:30:35,520 –> 00:30:39,520
راهی برای دریافت مستطیل یک تصویر و
842
00:30:39,520 –> 00:30:41,760
استفاده از آن وجود دارد، اما در واقع فکر می کنم که کاری که
843
00:30:41,760 –> 00:30:42,960
ما در اینجا انجام می دهیم
844
00:30:42,960 –> 00:30:44,880
کمی شهودی تر خواهد بود،
845
00:30:44,880 –> 00:30:46,399
بنابراین ما می خواهیم بسیاری از جهانی ها را
846
00:30:46,399 –> 00:30:48,720
فراخوانی کنیم، زیرا ما آنها را
847
00:30:48,720 –> 00:30:51,200
در این برنامه تغییر نمی دهیم، اما باید
848
00:30:51,200 –> 00:30:53,440
بتوانیم به آنها دسترسی داشته
849
00:30:53,440 –> 00:30:55,600
باشیم. من می خواهم به بازیکن x بازیکن
850
00:30:55,600 –> 00:30:57,760
y و y تغییر دهید و اگر به یاد داشته باشید ما فقط چه چیزی را انجام
851
00:30:57,760 –> 00:31:00,320
دادیم تغییر id
852
00:31:00,320 –> 00:31:02,559
مسیر پخش کننده را به شما می گوید،
853
00:31:02,559 –> 00:31:05,360
بنابراین میزان
854
00:31:05,360 –> 00:31:09,279
حرکت فیزیکی شما در هر فریم را کنترل می کند، اما اگر تغییر y
855
00:31:09,279 –> 00:31:10,799
مثبت باشد به این معنی است که به
856
00:31:10,799 –> 00:31:12,799
سمت پایین صفحه می روید و اگر
857
00:31:12,799 –> 00:31:14,720
تغییر y منفی است، به این معنی است که شما
858
00:31:14,720 –> 00:31:16,480
به سمت بالای صفحه به سمت بالا می روید،
859
00:31:16,480 –> 00:31:18,960
بنابراین ما می توانیم در واقع از آن به عنوان
860
00:31:18,960 –> 00:31:21,679
کنترل جهت برای بالا یا پایین استفاده کنیم
861
00:31:21,679 –> 00:31:23,360
و خواهید دید که چرا این موضوع
862
00:31:23,360 –> 00:31:26,399
در اینجا مهم است، چیزی که ما بررسی می کنیم این است که
863
00:31:26,399 –> 00:31:29,679
دوباره می گوییم برای i در محدوده
864
00:31:29,679 –> 00:31:32,320
و این بار
865
00:31:32,320 –> 00:31:34,960
طول لیست مستطیلی است که ما به
866
00:31:34,960 –> 00:31:37,760
تازگی در
867
00:31:38,320 –> 00:31:40,960
آن رد کرده ایم، می خواهیم بگوییم که
868
00:31:40,960 –> 00:31:42,000
آیا
869
00:31:42,000 –> 00:31:46,760
لیست خراب شده در i
870
00:31:46,880 –> 00:31:49,360
و سپس از این تابع collide rect استفاده می کنیم
871
00:31:49,360 –> 00:31:51,440
،
872
00:31:51,440 –> 00:31:55,039
بنابراین این تابع داخلی پایتون است یا
873
00:31:55,039 –> 00:31:56,880
874
00:31:56,880 –> 00:31:59,440
ابزار تصادم مستطیلی داخلی pygames
875
00:31:59,440 –> 00:32:01,279
و بررسی میکند که آیا نقطهای از
876
00:32:01,279 –> 00:32:02,720
همپوشانی
877
00:32:02,720 –> 00:32:05,519
بین دو مستطیل که شما تعریف کردهاید وجود دارد،
878
00:32:05,519 –> 00:32:09,200
بنابراین مستطیل اول پلتفرمی است
879
00:32:09,200 –> 00:32:12,720
که مستطیل دوم قرار است
880
00:32:12,720 –> 00:32:14,640
بر اساس موقعیت بازیکن باشد،
881
00:32:14,640 –> 00:32:17,440
بنابراین ما بگو بازیکن x
882
00:32:17,440 –> 00:32:18,720
و بازیکن
883
00:32:18,720 –> 00:32:21,919
y بعلاوه این یک مورد مهم است زیرا
884
00:32:21,919 –> 00:32:24,000
اگر فقط گفتید بازیکن x بازیکن y
885
00:32:24,000 –> 00:32:25,679
در مورد مستطیلی صحبت
886
00:32:25,679 –> 00:32:29,120
می کنید که از سمت چپ بالای بازیکن شروع می شود اما
887
00:32:29,120 –> 00:32:30,960
اگر به پریدن فکر می کنید ما در واقع
888
00:32:30,960 –> 00:32:32,720
مستطیلی می خواهیم که واقعاً فقط
889
00:32:32,720 –> 00:32:35,200
فضای بازی را در بر بگیرد. پاهای تصویر شما،
890
00:32:35,200 –> 00:32:37,519
بنابراین شما
891
00:32:37,519 –> 00:32:38,880
می خواهید چیزی می خواهید که به نوعی
892
00:32:38,880 –> 00:32:40,640
قد بازیکن را
893
00:32:40,640 –> 00:32:43,519
نیز در خود جای دهد، بنابراین می گوییم بازیکن y به اضافه 60. اکنون
894
00:32:43,519 –> 00:32:44,960
895
00:32:44,960 –> 00:32:48,159
6 7 قد کل بازیکن شما را کاهش می
896
00:32:48,159 –> 00:32:49,919
دهیم و ما فقط گرفتن 10
897
00:32:49,919 –> 00:32:52,640
پیکسل پایین یا هر چند پیکسل، بنابراین این
898
00:32:52,640 –> 00:32:54,480
قطعه دیگر آن
899
00:32:54,480 –> 00:32:57,039
است که عرض و ارتفاع
900
00:32:57,039 –> 00:32:59,519
تصویری را که میخواهید با آن برخورد
901
00:32:59,519 –> 00:33:01,519
کنید تعیین میکنید و میتوانید بعداً با آنها بازی کنید، اما
902
00:33:01,519 –> 00:33:03,760
فرض کنید میخواهیم فقط 10 پیکسل باشد. بنابراین
903
00:33:03,760 –> 00:33:05,679
این تقریباً ارتفاع
904
00:33:05,679 –> 00:33:07,360
پاهای بازیکن است
905
00:33:07,360 –> 00:33:09,120
و سپس اجازه دهید آن را 90 کنیم زیرا
906
00:33:09,120 –> 00:33:10,799
این عرض کامل پخش کننده است اما خواهید
907
00:33:10,799 –> 00:33:12,480
دید که این چیزی است که بعداً آن را اصلاح خواهیم کرد،
908
00:33:12,480 –> 00:33:14,399
909
00:33:14,399 –> 00:33:16,159
اما قسمت دیگر این است که
910
00:33:16,159 –> 00:33:19,679
باید بررسی کنیم همچنین اگر پرش برابر با
911
00:33:19,679 –> 00:33:22,799
false باشد زیرا ما اهمیتی نمیدهیم
912
00:33:22,799 –> 00:33:25,440
که آیا آنها قبلاً در حال پریدن هستند، بنابراین اگر
913
00:33:25,440 –> 00:33:27,440
این یک اسکن است که در آن قرار است
914
00:33:27,440 –> 00:33:30,159
بپرند، لازم نیست این کار را دو بار انجام دهیم، بنابراین
915
00:33:30,159 –> 00:33:32,320
اگر پرش نادرست است و فقط اگر پرش
916
00:33:32,320 –> 00:33:33,360
نادرست است
917
00:33:33,360 –> 00:33:35,039
و این مورد دیگر است. قسمتی که
918
00:33:35,039 –> 00:33:37,120
جهت مهم است
919
00:33:37,120 –> 00:33:39,120
و چرا تغییر بزرگتر از صفر است، به
920
00:33:39,120 –> 00:33:41,039
این معنی که شما در حال سقوط به پایین هستید.
921
00:33:41,039 –> 00:33:43,120
922
00:33:43,120 –> 00:33:45,360
923
00:33:45,360 –> 00:33:46,880
924
00:33:46,880 –> 00:33:48,159
925
00:33:48,159 –> 00:33:50,080
در حال بررسی هستیم تا
926
00:33:50,080 –> 00:33:52,320
ببینیم بازیکن در حال سقوط است، آیا ما قبلاً نمی
927
00:33:52,320 –> 00:33:54,799
پریده ایم و آیا با پاهای تصویر بازیکن برخورد کرده ایم
928
00:33:54,799 –> 00:33:56,640
929
00:33:56,640 –> 00:33:58,240
و اگر این درست است،
930
00:33:58,240 –> 00:34:01,440
ما پرش برابر با true و بازگشت
931
00:34:01,440 –> 00:34:03,919
پرش را قرار می دهیم، بنابراین مهم نیست که چه
932
00:34:03,919 –> 00:34:06,399
چیزی برمی گردیم، پرش هر اسکن در واقع متأسفانه
933
00:34:06,399 –> 00:34:10,239
است. در این تابع j نامیده می شود،
934
00:34:10,239 –> 00:34:12,239
بنابراین ما
935
00:34:12,239 –> 00:34:14,639
با پرش هر اسکن برمی گردیم، اما
936
00:34:14,639 –> 00:34:17,359
به صورت نادرست وارد می شود و تنها چیزی
937
00:34:17,359 –> 00:34:19,599
که می تواند آن را درست کند این است که یک پلت فرم
938
00:34:19,599 –> 00:34:21,440
با پای بازیکن برخورد کند، بنابراین
939
00:34:21,440 –> 00:34:24,000
ما می خواهیم در واقع این j
940
00:34:24,000 –> 00:34:26,719
برگشتی را به عقب برگردانیم. یک سطح تورفتگی
941
00:34:26,719 –> 00:34:28,879
و بیایید جلو برویم و ببینیم فکر میکنم
942
00:34:28,879 –> 00:34:31,839
این تمام کاری است که ما باید انجام دهیم
943
00:34:31,839 –> 00:34:33,440
944
00:34:33,440 –> 00:34:34,399
945
00:34:34,399 –> 00:34:37,760
946
00:34:37,760 –> 00:34:39,839
947
00:34:39,839 –> 00:34:41,599
تا بازیکنمان جهش کند. روی سکو به
948
00:34:41,599 –> 00:34:43,918
نظر می رسد که او از بالای آن می پرد و
949
00:34:43,918 –> 00:34:45,918
خیلی سریع می رود،
950
00:34:45,918 –> 00:34:47,679
درست مثل اینکه به سختی از زمین خارج می
951
00:34:47,679 –> 00:34:49,280
شود، هیچ راهی وجود ندارد که
952
00:34:49,280 –> 00:34:50,879
بتوانید از یک سکو به آن سکو
953
00:34:50,879 –> 00:34:51,839
954
00:34:51,839 –> 00:34:53,679
بروید، بیایید جلوتر برویم و نگاهی به چند
955
00:34:53,679 –> 00:34:55,199
متغیر
956
00:34:55,199 –> 00:34:57,520
برای شروع میتوانیم اثر گرانش را کاهش دهیم،
957
00:34:57,520 –> 00:35:00,240
بنابراین من آن را به 0.4 کاهش میدهم
958
00:35:00,240 –> 00:35:02,800
و فوراً به شما نشان میدهم که چگونه به
959
00:35:02,800 –> 00:35:05,119
نظر میرسد تا در آنجا
960
00:35:05,119 –> 00:35:07,359
کمی بهتر به نظر برسد
961
00:35:07,359 –> 00:35:09,440
، مانند یک پرش متوسط است که
962
00:35:09,440 –> 00:35:11,599
وعی است عجیب است،
963
00:35:11,599 –> 00:35:13,760
اما فقط برای شروع، این یک کاری است که
964
00:35:13,760 –> 00:35:16,560
میتوانیم انجام دهیم تا این را بهبود ببخشیم
965
00:35:16,560 –> 00:35:20,960
و سپس دومین چیز در
966
00:35:20,960 –> 00:35:23,760
مستطیل ما است، جایی که ما در حال تعیین محل
967
00:35:23,760 –> 00:35:24,560
968
00:35:24,560 –> 00:35:26,480
برخورد با
969
00:35:26,480 –> 00:35:28,960
بازیکن هستیم.
970
00:35:28,960 –> 00:35:31,200
واقعاً
971
00:35:31,200 –> 00:35:33,760
درست است که سلام کنید پایین
972
00:35:33,760 –> 00:35:36,079
تصویر را قرار دهید زیرا همانطور که گفتم اگر فقط
973
00:35:36,079 –> 00:35:38,400
مستطیل
974
00:35:38,400 –> 00:35:41,119
را می گیرد، ممکن است به چند
975
00:35:41,119 –> 00:35:43,920
پیکسل خالی زیر آن نگاه کند، بنابراین در آنجا می توانیم ببینیم
976
00:35:43,920 –> 00:35:45,839
که کمی بهتر به نظر می رسد، به نظر می رسد
977
00:35:45,839 –> 00:35:46,880
978
00:35:46,880 –> 00:35:48,720
مانند پاها است. در واقع
979
00:35:48,720 –> 00:35:50,880
برقراری تماس با سکو
980
00:35:50,880 –> 00:35:52,560
حداقل می خواهم بگویم که به نظر می
981
00:35:52,560 –> 00:35:54,320
رسد پاها با سکو تماس برقرار می کنند
982
00:35:54,320 –> 00:35:56,880
،
983
00:35:56,960 –> 00:35:58,480
اما ما هنوز یک
984
00:35:58,480 –> 00:36:01,119
حرکت پرش صاف واقعا رضایت بخش
985
00:36:01,119 –> 00:36:03,119
نداریم، بنابراین بیایید اینجا به موارد دیگری نگاهی بیندازیم.
986
00:36:03,119 –> 00:36:05,520
ما میتوانیم آن را اصلاح کنیم،
987
00:36:05,520 –> 00:36:08,320
بابت سردرگمی، متأسفیم، اما کاری که من اینجا انجام دادم
988
00:36:08,320 –> 00:36:10,240
این است که آن را مسخره کردم، این نباید
989
00:36:10,240 –> 00:36:12,960
باشد y تغییر منهای برابر با ارتفاع پرش،
990
00:36:12,960 –> 00:36:16,000
باید y تغییر برابر با ارتفاع پرش منفی باشد،
991
00:36:16,000 –> 00:36:18,000
بنابراین
992
00:36:18,000 –> 00:36:20,400
منهای مساوی و به علاوه مساوی در
993
00:36:20,400 –> 00:36:23,440
واقع یک عدد را اضافه میکنند. برای خودش ارزش دارد، بنابراین
994
00:36:23,440 –> 00:36:26,560
این بعلاوه مساوی یا منهای مساوی است که
995
00:36:26,560 –> 00:36:30,000
پایتون در عملکرد مختصر ساخته شده است
996
00:36:30,000 –> 00:36:34,000
برای y موقعیت برابر است با y موقعیت به اضافه y
997
00:36:34,000 –> 00:36:36,160
تغییر، بنابراین
998
00:36:36,160 –> 00:36:38,000
این تابع
999
00:36:38,000 –> 00:36:40,880
در واقع این را می گوید و
1000
00:36:40,880 –> 00:36:42,800
اگر شما با شوخ طبعی آشنا نیستید فقط از کوتاه نویسی استفاده می کنم.
1001
00:36:42,800 –> 00:36:45,200
h بسیاری از کوتاه نویسی پایتون
1002
00:36:45,200 –> 00:36:46,800
می توانید در نظرات زیر سؤال بپرسید،
1003
00:36:46,800 –> 00:36:49,599
اما آنچه قبلاً در آنجا داشتم این
1004
00:36:49,599 –> 00:36:52,720
بود که چرا تغییر برابر است با چرایی
1005
00:36:52,720 –> 00:36:54,560
تغییر منهای ارتفاع پرش، به همین دلیل است که
1006
00:36:54,560 –> 00:36:59,599
تغییر y کمی
1007
00:36:59,599 –> 00:37:02,079
عجیب است،
1008
00:37:02,079 –> 00:37:03,839
بنابراین در واقع باید چنین باشد. تغییر y
1009
00:37:03,839 –> 00:37:07,440
برابر است با منهای ارتفاع پرش
1010
00:37:07,440 –> 00:37:11,200
خوب است، بنابراین ما
1011
00:37:11,200 –> 00:37:13,680
مشکل ارتفاع پرش خود را فهمیدیم و اکنون چیزی را
1012
00:37:13,680 –> 00:37:15,680
داریم که واقعا دوست دارم این یک ظاهر صاف واقعی است.
1013
00:37:15,680 –> 00:37:18,720
1014
00:37:18,720 –> 00:37:20,320
1015
00:37:20,320 –> 00:37:21,839
کمی
1016
00:37:21,839 –> 00:37:24,480
120 نیست و ما آن را 10 می کنیم. من
1017
00:37:24,480 –> 00:37:26,960
فکر می کنم که کمی بهتر به نظر می رسد
1018
00:37:26,960 –> 00:37:28,480
1019
00:37:28,480 –> 00:37:29,920
اما واقعاً می توانید با
1020
00:37:29,920 –> 00:37:31,119
ارتفاع پرش به هم بزنید و می توانید با
1021
00:37:31,119 –> 00:37:33,440
گرانش آن را به هم بزنید تا بفهمید چه چیزی برای شما مفید است
1022
00:37:33,440 –> 00:37:36,320
و چیز بعدی که من میخواهم این کار را انجام دهم که میخواهم
1023
00:37:36,320 –> 00:37:37,760
پلتفرمهای بیشتری
1024
00:37:37,760 –> 00:37:40,000
را در اینجا قرار دهم و سپس میخواهم
1025
00:37:40,000 –> 00:37:40,800
1026
00:37:40,800 –> 00:37:43,200
توانایی بازیکن را برای حرکت به
1027
00:37:43,200 –> 00:37:45,440
جلو و عقب چپ و راست اضافه کنم
1028
00:37:45,440 –> 00:37:47,520
و این واقعاً مکانیکهای کلیدی بازی را ایجاد میکند،
1029
00:37:47,520 –> 00:37:48,720
1030
00:37:48,720 –> 00:37:50,880
پس چرا با f چپ و راست شروع نکنیم
1031
00:37:50,880 –> 00:37:52,400
یا
1032
00:37:52,400 –> 00:37:54,079
بازیکنی که به نوعی سرگرم
1033
00:37:54,079 –> 00:37:56,880
کننده خواهد بود و بسیار ساده خواهد بود، تقریباً نزدیک
1034
00:37:56,880 –> 00:37:59,520
به کاری که ما برای پرش انجام دادیم، اما
1035
00:37:59,520 –> 00:38:01,119
به جای
1036
00:38:01,119 –> 00:38:02,960
اینکه تشخیص برخورد خودکار
1037
00:38:02,960 –> 00:38:04,800
که تعیین کننده رفتن به چپ و راست است
1038
00:38:04,800 –> 00:38:06,480
، اضافه کنیم. خطوط کد به
1039
00:38:06,480 –> 00:38:08,320
کد مدیریت رویداد ما، زیرا اکنون
1040
00:38:08,320 –> 00:38:10,720
بازیکن کنترل خواهد شد،
1041
00:38:10,720 –> 00:38:13,839
من به نوعی
1042
00:38:13,839 –> 00:38:15,920
برای بازی های رایانه ای ترجیح می دهم
1043
00:38:15,920 –> 00:38:18,960
کنترل جهت با wad را ترجیح می دهم، اگر می خواهید می توانید از کلیدهای جهت دار استفاده کنید،
1044
00:38:18,960 –> 00:38:20,880
اگر می خواهید می توانید از هر کلیدی استفاده
1045
00:38:20,880 –> 00:38:22,160
کنید
1046
00:38:22,160 –> 00:38:24,880
. فقط من ترجیح میدهم که
1047
00:38:24,880 –> 00:38:27,119
یک صفحه اعداد کمی بزرگتر شوید و به این ترتیب
1048
00:38:27,119 –> 00:38:28,320
اگر میخواهید کاری با
1049
00:38:28,320 –> 00:38:30,400
فاصله یا enter انجام دهید، میتوانید از دست راست خود برای آن استفاده کنید،
1050
00:38:30,400 –> 00:38:33,119
بنابراین من میخواهم
1051
00:38:33,119 –> 00:38:34,560
کدی را برای بررسی کلید در اینجا اضافه کنم.
1052
00:38:34,560 –> 00:38:36,720
بالا، بنابراین اگر
1053
00:38:36,720 –> 00:38:38,400
نوع نقطه رویداد
1054
00:38:38,400 –> 00:38:39,599
برابر با
1055
00:38:39,599 –> 00:38:40,640
um
1056
00:38:40,640 –> 00:38:43,119
pygame باشد، درست مانند قبل،
1057
00:38:43,119 –> 00:38:46,240
اما به جای خروج، کلید بالا خواهد بود یا
1058
00:38:46,240 –> 00:38:48,560
در واقع اولین کلید پایین کلید بالا
1059
00:38:48,560 –> 00:38:51,200
برعکس است، زمانی که یک کلید را رها می کنید
1060
00:38:51,200 –> 00:38:53,359
و بنابراین برای کلید پایین ما. دوباره بررسی کنید
1061
00:38:53,359 –> 00:38:56,320
و ببینید چه کلید خاصی cha است بنابراین،
1062
00:38:56,320 –> 00:38:57,599
این کمی متفاوت است، زیرا
1063
00:38:57,599 –> 00:38:59,520
اگر رویداد متوقف شود، شما به هیچ
1064
00:38:59,520 –> 00:39:01,359
شرایط دیگری نیاز ندارید، همیشه فقط
1065
00:39:01,359 –> 00:39:04,560
x است و همیشه میخواهید
1066
00:39:04,560 –> 00:39:07,440
پنجره را ببندید، اما اگر کلید اینطور باشد، ما به
1067
00:39:07,440 –> 00:39:11,520
یک پله دیگر نیاز داریم، اگر رویداد باشد. کلید نقطه
1068
00:39:11,520 –> 00:39:13,839
برابر است با و این بررسی
1069
00:39:13,839 –> 00:39:15,839
کلید واقعی است که فشار داده شده است، بنابراین
1070
00:39:15,839 –> 00:39:17,599
pygame dot k
1071
00:39:17,599 –> 00:39:20,079
که مخفف کلید است و سپس
1072
00:39:20,079 –> 00:39:22,240
اجازه دهید ابتدا یک کار را انجام دهیم تا به
1073
00:39:22,240 –> 00:39:23,520
سمت چپ
1074
00:39:23,520 –> 00:39:26,079
برویم بسیار خوب و اگر فشار داده شد، پس آنچه ما
1075
00:39:26,079 –> 00:39:28,800
می خواهیم این است که می خواهیم یک متغیر دقیقاً مانند
1076
00:39:28,800 –> 00:39:31,839
ما برای جهت y به نام تغییر x
1077
00:39:31,839 –> 00:39:33,599
و میخواهیم منفی شود
1078
00:39:33,599 –> 00:39:35,599
زیرا به سمت چپ میرویم
1079
00:39:35,599 –> 00:39:38,240
و
1080
00:39:38,240 –> 00:39:40,640
اگر تصمیم به انجام هر گونه ارتقاء یا پاور آپ گرفتیم، آن را با سرعت بازیکن به این ترتیب منفی کنیم.
1081
00:39:40,640 –> 00:39:43,200
یا
1082
00:39:43,200 –> 00:39:45,920
هر چیزی شبیه به آن در
1083
00:39:45,920 –> 00:39:48,800
آینده، ما فقط میتوانیم آن را با متغیر سرعت پخشکننده انجام دهیم،
1084
00:39:48,800 –> 00:39:50,560
نه اینکه مجبور
1085
00:39:50,560 –> 00:39:53,599
باشیم وارد اینجا شویم و تغییر دهیم و تغییر دهیم،
1086
00:39:53,599 –> 00:39:55,920
و دلیل اینکه من این کار را با سرعت پخشکننده انجام میدهم و
1087
00:39:55,920 –> 00:39:58,480
نه با موقعیت x
1088
00:39:58,480 –> 00:40:00,400
اینطور است. که می توانم اینجا بیایم پایین در اینجا ما
1089
00:40:00,400 –> 00:40:03,280
موقعیت پخش کننده y را به روز می کنیم و درست
1090
00:40:03,280 –> 00:40:06,160
مانند um یک بار در هر اسکن
1091
00:40:06,160 –> 00:40:08,400
، موقعیت y را به روز می کنیم، همچنین می خواهیم هر تغییر فعلی x
1092
00:40:08,400 –> 00:40:11,359
را به موقعیت بازیکن x اضافه کنیم
1093
00:40:11,359 –> 00:40:15,119
،
1094
00:40:15,119 –> 00:40:17,440
بنابراین یک خط کد واقعا
1095
00:40:17,440 –> 00:40:20,079
آسان است. فقط به علاوه برابر است با تغییر x و
1096
00:40:20,079 –> 00:40:22,079
چون ما این سرعت بازیکن منفی
1097
00:40:22,079 –> 00:40:23,760
و این سرعت بازیکن مثبت را
1098
00:40:23,760 –> 00:40:26,160
درست کردیم که از آن مراقبت می کند،
1099
00:40:26,160 –> 00:40:27,280
بنابراین بیایید ادامه دهیم و آن
1100
00:40:27,280 –> 00:40:29,440
متغیرها را در قسمت متغیرهای بازی خود ایجاد
1101
00:40:29,440 –> 00:40:32,160
کنیم، می گوییم تبادل برابر با صفر است و
1102
00:40:32,160 –> 00:40:35,280
بیایید بدهیم سرعت بازیکن
1103
00:40:35,280 –> 00:40:37,040
سه در
1104
00:40:37,040 –> 00:40:38,880
ابتدا بسیار آسان است که می توان آن را تغییر
1105
00:40:38,880 –> 00:40:40,720
داد، اگر احساس کنیم
1106
00:40:40,720 –> 00:40:42,560
بازی خیلی سخت است یا به اندازه کافی سخت نیست، می توانید
1107
00:40:42,560 –> 00:40:44,960
چیزهایی مانند سرعت را تغییر دهید،
1108
00:40:44,960 –> 00:40:47,839
بنابراین بسیار خوب است که ما برای حرکت دادن او به آن نیاز داریم،
1109
00:40:47,839 –> 00:40:50,240
اما مشکل این است که ما به
1110
00:40:50,240 –> 00:40:52,160
کل این بخش
1111
00:40:52,160 –> 00:40:54,800
در قالب کلید تا نیاز داریم زیرا بدیهی است که ما
1112
00:40:54,800 –> 00:40:57,440
میخواهیم وقتی کلیدی را رها میکنید، او
1113
00:40:57,440 –> 00:40:59,920
حرکت را متوقف کند، بنابراین در اینجا میتوانیم
1114
00:40:59,920 –> 00:41:02,960
بگوییم که آیا کلید آپ است، همه آن
1115
00:41:02,960 –> 00:41:05,599
کدهایی را که برای a و d انجام دادیم کپی کنید
1116
00:41:05,599 –> 00:41:07,680
و آیا این یک است. کلید تا بیایید jus
1117
00:41:07,680 –> 00:41:09,440
مبادله را به صفر تغییر دهید تا
1118
00:41:09,440 –> 00:41:11,839
زمانی که ما شروع به دویدن می کنیم او را مجبور به توقف حرکت کند
1119
00:41:11,839 –> 00:41:13,359
و بیایید ببینیم که
1120
00:41:13,359 –> 00:41:15,440
بله این تمام چیزی است که برای حرکت به چپ و راست نیاز داریم
1121
00:41:15,440 –> 00:41:17,040
1122
00:41:17,040 –> 00:41:18,880
که بسیار خوب به نظر می رسد.
1123
00:41:18,880 –> 00:41:21,119
یک کاری که می خواهم انجام دهم.
1124
00:41:21,119 –> 00:41:23,760
می تواند ببیند که او
1125
00:41:23,760 –> 00:41:25,839
در واقع به
1126
00:41:25,839 –> 00:41:27,520
دلیل وجود
1127
00:41:27,520 –> 00:41:29,839
آن نوع جعبه نامرئی در اطراف تصویر، دوباره به سمت راست سکو می پرد،
1128
00:41:29,839 –> 00:41:31,200
1129
00:41:31,200 –> 00:41:33,760
بنابراین برای تغییر اینکه وقتی چند سکو دارید، ادامه دادن
1130
00:41:33,760 –> 00:41:35,920
1131
00:41:35,920 –> 00:41:37,599
1132
00:41:37,599 –> 00:41:39,280
ایده بدی نیست و ایده بدی نیست. برای ادامه
1133
00:41:39,280 –> 00:41:41,280
دادن و تغییر اندازه مستطیلی که
1134
00:41:41,280 –> 00:41:43,760
او با آن برخورد می
1135
00:41:43,760 –> 00:41:46,240
کند در تشخیص برخورد، بنابراین ما
1136
00:41:46,240 –> 00:41:48,880
آن را 90 عرض کردیم، زیرا وقتی تصویر خود را مقیاس کردیم،
1137
00:41:48,880 –> 00:41:51,200
تصویر به همان اندازه گسترده بود و
1138
00:41:51,200 –> 00:41:52,480
خوب فهمیدیم،
1139
00:41:52,480 –> 00:41:55,040
اجازه دهید فقط با یک تصویر در مورد آن عرض برویم.
1140
00:41:55,040 –> 00:41:57,280
با یک مستطیل تقریباً به آن پهن،
1141
00:41:57,280 –> 00:41:58,960
اما میتوانیم بگوییم که از زمانی که ما به
1142
00:41:58,960 –> 00:42:00,960
آنجا میپریدیم، میتوانست کاملاً
1143
00:42:00,960 –> 00:42:04,000
از سکو به چپ یا راست خارج شود
1144
00:42:04,000 –> 00:42:07,359
و ظاهر خوبی نداشت، بنابراین اجازه دهید
1145
00:42:07,359 –> 00:42:10,160
با بازیکن x کمی به سمت راست شروع کنیم
1146
00:42:10,160 –> 00:42:13,599
و سپس اجازه دهید عرض آن را فقط 40 بسازیم،
1147
00:42:13,599 –> 00:42:16,240
زیرا این مقدار بسیار کم بود و
1148
00:42:16,240 –> 00:42:18,800
میتوانید آن را با
1149
00:42:18,800 –> 00:42:20,560
حرکت به سمت جایی که فکر
1150
00:42:20,560 –> 00:42:22,400
میکنید باید از
1151
00:42:22,400 –> 00:42:24,160
هر دو طرف بیفتد آزمایش کنید و مطمئن شوید که به نظر
1152
00:42:24,160 –> 00:42:26,319
واقعی میرسد، مانند آنجا در سمت راست.
1153
00:42:26,319 –> 00:42:29,119
سمت چپ خیلی خوب به نظر می رسد
1154
00:42:29,119 –> 00:42:31,200
یا در سمت چپ سقوط می کند، اما در اینجا من
1155
00:42:31,200 –> 00:42:33,200
فکر می کنم که ما کمی
1156
00:42:33,200 –> 00:42:35,040
به سمت راست رفتیم، بنابراین ممکن است این را به 35 کاهش دهیم
1157
00:42:35,040 –> 00:42:37,119
1158
00:42:37,119 –> 00:42:38,880
و اینها چیزهایی هستند که باید با آنها بازی کرد تا
1159
00:42:38,880 –> 00:42:40,720
زمانی که واقعاً واقعی شود. مثل
1160
00:42:40,720 –> 00:42:42,160
اینکه تصویر شما واقعاً در
1161
00:42:42,160 –> 00:42:45,040
زمانهای مناسب نمایش داده میشود، پس خوب است، بیایید
1162
00:42:45,040 –> 00:42:46,480
قطعه بعدی را اضافه کنیم که قرار است باشد،
1163
00:42:46,480 –> 00:42:48,079
بیایید به پلتفرمهای اولیه خود بیاییم
1164
00:42:48,079 –> 00:42:49,839
و اینجاست که میتوانیم ببینیم که آیا
1165
00:42:49,839 –> 00:42:52,240
آن را به درستی تنظیم کردهایم یا نه، زیرا
1166
00:42:52,240 –> 00:42:54,640
میخواهیم یک دسته کامل از پلتفرمها را
1167
00:42:54,640 –> 00:42:56,640
به این لیست اضافه کنید و امیدواریم روشی که ما
1168
00:42:56,640 –> 00:42:58,960
کد را نوشتیم،
1169
00:42:58,960 –> 00:43:00,720
همه آنها را زمانی که این
1170
00:43:00,720 –> 00:43:04,160
چهار مختصاتی را که مستطیلها به آنها نیاز دارند را به آنها میدهیم ترسیم میکند، پس
1171
00:43:04,160 –> 00:43:05,839
بیایید جلوتر برویم و یکی را بسازیم که
1172
00:43:05,839 –> 00:43:07,200
کمی خواهد بود. بالاتر و t o
1173
00:43:07,200 –> 00:43:08,720
سمت چپ و یکی که کمی بالاتر
1174
00:43:08,720 –> 00:43:10,240
به سمت راست است
1175
00:43:10,240 –> 00:43:11,520
و کاری که ما واقعاً انجام میدهیم این است که در حال
1176
00:43:11,520 –> 00:43:14,000
ایجاد پلتفرمهایی هستیم که
1177
00:43:14,000 –> 00:43:16,720
هنگام شروع بازی روی صفحه نمایش داده میشوند
1178
00:43:16,720 –> 00:43:20,560
و زمانی که من میخواهم انجام دهم به محض
1179
00:43:20,560 –> 00:43:21,359
اینکه
1180
00:43:21,359 –> 00:43:24,480
به اندازه کافی بالا رفتید که صفحه شروع به
1181
00:43:24,480 –> 00:43:27,040
حرکت به سمت پایین کرد و شما نیاز به تولید
1182
00:43:27,040 –> 00:43:29,040
پلتفرم های بیشتری در بالا دارید، می خواهم این پلتفرم را به
1183
00:43:29,040 –> 00:43:31,520
صورت رویه ای
1184
00:43:31,520 –> 00:43:33,359
با کمی عنصر تصادفی ایجاد کنم که
1185
00:43:33,359 –> 00:43:35,680
باید کمی به بازی سختی اضافه کند،
1186
00:43:35,680 –> 00