در این مطلب، ویدئو Python [pygame] 14 برخورد با حرکت ماوس با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,320 –> 00:00:02,240
چطور پیش میرود همه چه میگذرد
2
00:00:02,240 –> 00:00:03,919
و به یک بازی دیگر پایتون خوش آمدید،
3
00:00:03,919 –> 00:00:05,680
آموزش برنامهنویسی پایتون
4
00:00:05,680 –> 00:00:07,120
در این ویدیو، من میخواهم به
5
00:00:07,120 –> 00:00:08,720
یکی از مفاهیم
6
00:00:08,720 –> 00:00:10,400
قبلی که در ویدیوی قبلی در مورد آن صحبت میکردیم، برگردم
7
00:00:10,400 –> 00:00:12,880
و همه چیز در مورد برخورد و
8
00:00:12,880 –> 00:00:14,160
امم قبل است. ما به
9
00:00:14,160 –> 00:00:14,960
تشخیص
10
00:00:14,960 –> 00:00:16,000
برخورد نگاه میکردیم، سپس به
11
00:00:16,000 –> 00:00:17,840
وضوح برخورد و چیزهایی از این دست نگاه میکردیم و
12
00:00:17,840 –> 00:00:19,680
در واقع داریم که
13
00:00:19,680 –> 00:00:21,840
در
14
00:00:21,840 –> 00:00:23,359
گرانش ما به خوبی کار میکند.
15
00:00:23,359 –> 00:00:26,480
16
00:00:26,480 –> 00:00:28,400
این بلوکها
17
00:00:28,400 –> 00:00:30,560
اکنون از کلیدهای جهتنما برای حرکت استفاده
18
00:00:30,560 –> 00:00:32,320
میکنند، اما قبلاً ویدیویی
19
00:00:32,320 –> 00:00:33,840
20
00:00:33,840 –> 00:00:35,440
21
00:00:35,440 –> 00:00:38,000
داشتم که با ماوس حرکت میکردم و واقعاً نمیتوانم آن را در حال حاضر نشان دهم، اما اوم، کارهایی برای حرکت ماوس وجود
22
00:00:38,000 –> 00:00:39,520
داشت که ما انجام داده بودیم
23
00:00:39,520 –> 00:00:42,399
و انجام ندادیم. توضیح دهید یا نشان دهید که چگونه
24
00:00:42,399 –> 00:00:44,480
میتوانیم از حرکات ماوس استفاده کنیم و همچنان
25
00:00:44,480 –> 00:00:46,559
اثر برخوردی را که میخواستیم داشته باشیم،
26
00:00:46,559 –> 00:00:48,640
در این ویدیو به شما نشان میدهم که
27
00:00:48,640 –> 00:00:50,000
چگونه میتوانیم این کار را انجام دهیم،
28
00:00:50,000 –> 00:00:52,879
بنابراین خیلی ساده
29
00:00:52,879 –> 00:00:53,520
است.
30
00:00:53,520 –> 00:00:56,879
ما از uh rect.x
31
00:00:56,879 –> 00:00:59,039
و uh موقعیت خود بلوک واقعی
32
00:00:59,039 –> 00:01:01,359
استفاده میکردیم تا مشخص کنیم کجا باید
33
00:01:01,359 –> 00:01:04,080
با ماوس همتراز شویم و در این
34
00:01:04,080 –> 00:01:05,438
مثال میخواهیم آن
35
00:01:05,438 –> 00:01:05,840
را کمی
36
00:01:05,840 –> 00:01:07,760
تغییر دهیم، بنابراین در واقع از h استفاده میکنیم. سرعت و
37
00:01:07,760 –> 00:01:10,080
سرعت v و این همان چیزی است که تعیین می
38
00:01:10,080 –> 00:01:11,680
کند آیا ما واقعاً با
39
00:01:11,680 –> 00:01:13,119
اوس هماهنگ هستیم یا نه، من
40
00:01:13,119 –> 00:01:15,040
ز مبدأ استفاده نمیکنم، من اصلاً از آن استفاده نم
41
00:01:15,040 –> 00:01:16,320
42
00:01:16,320 –> 00:01:17,840
کنم، زیرا من استفاده نکردهام. به لطف قدرت فوقالعاده ویرایش ویدیو، یک
43
00:01:17,840 –> 00:01:19,439
راه خوب برای پیادهسازی این
44
00:01:19,439 –> 00:01:21,200
رونق پیدا کردم که چطور پیش میرود.
45
00:01:21,200 –> 00:01:23,200
46
00:01:23,200 –> 00:01:24,880
47
00:01:24,880 –> 00:01:26,960
48
00:01:26,960 –> 00:01:27,840
49
00:01:27,840 –> 00:01:29,600
ویدیویی که در
50
00:01:29,600 –> 00:01:30,960
نهایت به شما نشان میدهم که چگونه از
51
00:01:30,960 –> 00:01:34,000
مقادیر مبدا x و y استفاده کنید که میتواند
52
00:01:34,000 –> 00:01:35,600
موقعیت مکانی شی را
53
00:01:35,600 –> 00:01:37,280
با ماوس تغییر
54
00:01:37,280 –> 00:01:39,200
دهد، بنابراین این واقعیت را نادیده میگیرم که میگویم
55
00:01:39,200 –> 00:01:40,400
این را نادیده میگیرم
56
00:01:40,400 –> 00:01:42,320
و آن را به شما نشان میدهم. در پایان
57
00:01:42,320 –> 00:01:44,320
این ویدیو عالی به زودی شما را می بینم،
58
00:01:44,320 –> 00:01:45,680
بنابراین من به نوعی نادیده خواهم گرفت
59
00:01:45,680 –> 00:01:47,439
منشأ، اما
60
00:01:47,439 –> 00:01:49,840
اوه، ما فقط کارهایی را انجام می دهیم و این
61
00:01:49,840 –> 00:01:50,560
اتفاق می افتد،
62
00:01:50,560 –> 00:01:53,600
اوم، من همچنین متوجه شدم که این
63
00:01:53,600 –> 00:01:54,159
کمی
64
00:01:54,159 –> 00:01:56,320
بیشتر از آنچه که نیاز است فرورفته است، می توانم آن را
65
00:01:56,320 –> 00:01:57,520
درست کنم،
66
00:01:57,520 –> 00:01:59,680
بنابراین روشی که ما این کار را اول از همه انجام می
67
00:01:59,680 –> 00:02:01,439
دهیم، اوه ما میتوانم ادامه
68
00:02:01,439 –> 00:02:03,759
دهم و اوه اول میروم و
69
00:02:03,759 –> 00:02:05,200
این را بهعنوان یک نام فایل دیگر ذخیره
70
00:02:05,200 –> 00:02:08,720
میکنم، من میخواهم به من زنگ بزنم، فقط
71
00:02:08,720 –> 00:02:11,920
نقطهای دیگر را با ماوس استفاده میکنم،
72
00:02:11,920 –> 00:02:14,400
زیرا میخواهم همان فایل
73
00:02:14,400 –> 00:02:16,000
فعلی را نگه دارم و فقط از
74
00:02:16,000 –> 00:02:17,200
آن استفاده کنم. به عنوان یک مورد متفاوت، زیرا
75
00:02:17,200 –> 00:02:19,520
من در اینجا چند تغییر اساسی ایجاد می کنم
76
00:02:19,520 –> 00:02:21,520
و وقتی می گویم شدید منظورم این است که
77
00:02:21,520 –> 00:02:22,640
78
00:02:22,640 –> 00:02:25,520
حلقه مدیریت رویداد و
79
00:02:25,520 –> 00:02:27,200
حداقل عبارات شرطی در داخل
80
00:02:27,200 –> 00:02:28,800
بازیکن را به
81
00:02:28,800 –> 00:02:30,560
شیء بلوک در این مورد ایراد می کنم. در عملکرد بهروزرسانی آن،
82
00:02:30,560 –> 00:02:32,319
من
83
00:02:32,319 –> 00:02:36,720
همه آنها را حذف میکنم و همچنین
84
00:02:36,720 –> 00:02:38,720
تابع گرانش تجربه را حذف
85
00:02:38,720 –> 00:02:40,480
میکنم و دیگر لازم نیست که آن تماس را
86
00:02:40,480 –> 00:02:41,760
در ابتدای خود تابع بهروزرسانی داشته باشیم و
87
00:02:41,760 –> 00:02:42,959
88
00:02:42,959 –> 00:02:44,959
اکنون در خیلی پایین
89
00:02:44,959 –> 00:02:47,599
برنامه با حلقه رویداد
90
00:02:47,599 –> 00:02:50,080
در تابع اصلی n اساساً
91
00:02:50,080 –> 00:02:51,840
ما نیازی به تنظیم مجدد رویداد نداریم و
92
00:02:51,840 –> 00:02:53,360
حتی در حال حاضر اصلاً نیازی به انتقال آن به
93
00:02:53,360 –> 00:02:54,720
عملکرد بهروزرسانی
94
00:02:54,720 –> 00:02:56,319
95
00:02:56,319 –> 00:02:57,440
نداریم، اگر برنامه را اجرا کنم، امیدوارم هیچ خطایی نداشته باشم، ممکن است
96
00:02:57,440 –> 00:02:58,480
چیزی را نادیده گرفته باشم،
97
00:02:58,480 –> 00:03:00,319
اما خیلی ساده است. حالا بلوک ما
98
00:03:00,319 –> 00:03:01,920
درست سر جایش
99
00:03:01,920 –> 00:03:03,680
است، حرکت نمیکند هیچ اتفاقی نمیافتد،
100
00:03:03,680 –> 00:03:05,519
فقط همینطور است،
101
00:03:05,519 –> 00:03:07,120
حالا بیایید کنترل را برای
102
00:03:07,120 –> 00:03:08,879
حرکت واقعی با ماوس تنظیم
103
00:03:08,879 –> 00:03:10,560
کنیم، روشی که میخواهم این کار را انجام دهم، با
104
00:03:10,560 –> 00:03:12,239
تنظیم um
105
00:03:12,239 –> 00:03:15,280
change با h سرعت و سرعت v
106
00:03:15,280 –> 00:03:18,080
و من می خواهم این کار را با رفتن به
107
00:03:18,080 –> 00:03:19,760
ابع به روز رسانی در خود بلوک انجام ده
108
00:03:19,760 –> 00:03:21,120
109
00:03:21,120 –> 00:03:23,480
و با تا
110
00:03:23,480 –> 00:03:26,159
ع mouse.getposition تماس بگیرم و آ
111
00:03:26,159 –> 00:03:27,840
چه را که برمی گر
112
00:03:27,840 –> 00:03:30,640
اند ذخیره کنم چند
113
00:03:30,640 –> 00:03:34,799
تایی در متغیرهایی به نام mousex and mouse y
114
00:03:35,640 –> 00:03:38,080
podgam.mouse.getposs یا getposition
115
00:03:38,080 –> 00:03:40,720
okay اکنون در انتهای همه اینها
116
00:03:40,720 –> 00:03:42,000
قبل از حلقه های for
117
00:03:42,000 –> 00:03:44,720
که قرار است آزمایش کنم، یادداشت های خود را در
118
00:03:44,720 –> 00:03:46,159
اینجا بررسی می کنم تا مطمئن شوم
119
00:03:46,159 –> 00:03:48,560
120
00:03:49,760 –> 00:03:54,000
اگر x ماوس
121
00:03:54,080 –> 00:03:58,799
برابر با self.rect.x باشد، این مشکل وجود ندارد،
122
00:03:59,280 –> 00:04:03,519
آنگاه سرعت خود نقطه h برابر است. مساوی
123
00:04:03,519 –> 00:04:08,080
صفر خواهیم بود، در غیر این صورت
124
00:04:10,000 –> 00:04:14,000
ما سرعت خود را تغییر می دهیم.
125
00:04:14,000 –> 00:04:15,920
اکنون سعی می کنم این را توضیح دهم،
126
00:04:15,920 –> 00:04:17,279
اما
127
00:04:17,279 –> 00:04:19,120
تا زمانی که واقعاً آن را مشاهده نکنید، اصلاً منطقی نیست،
128
00:04:19,120 –> 00:04:20,399
129
00:04:20,399 –> 00:04:24,240
اما اگر x ماوس برابر با rectx
130
00:04:24,240 –> 00:04:25,759
به این معنی که اگر ماوس در موقعیت
131
00:04:25,759 –> 00:04:27,520
132
00:04:27,520 –> 00:04:30,240
فعلی جسم قرار داشته باشد،
133
00:04:30,240 –> 00:04:32,080
در تمام h سرعت در جهت افقی حرکت نمی کند،
134
00:04:32,080 –> 00:04:32,960
برابر
135
00:04:32,960 –> 00:04:36,160
0 خواهد بود. حال اگر ماوس x
136
00:04:36,160 –> 00:04:38,240
نباشد، در موقعیت دیگری قرار دارد.
137
00:04:38,240 –> 00:04:39,600
مقدار x شیء را
138
00:04:39,600 –> 00:04:41,520
تغییر می دهیم تا سرعت h
139
00:04:41,520 –> 00:04:42,960
140
00:04:42,960 –> 00:04:45,120
برابر با اختلاف باشد و وقتی تفاوت را می گویم
141
00:04:45,120 –> 00:04:46,080
142
00:04:46,080 –> 00:04:49,440
منظور ماوس x
143
00:04:49,440 –> 00:04:52,960
منهای self.rectx است، حالا
144
00:04:52,960 –> 00:04:54,639
چه مثبت یا منفی
145
00:04:54,639 –> 00:04:56,639
باشد، باز هم به نوعی به
146
00:04:56,639 –> 00:04:59,199
موقعیت منتقل می شود. از uh
147
00:04:59,199 –> 00:05:01,840
از ماوس x اکنون میتوانیم این را کپی و پیست
148
00:05:01,840 –> 00:05:03,280
کنیم و این کار را برای متغیر y انجام دهیم
149
00:05:03,280 –> 00:05:06,639
و البته آن را به
150
00:05:06,639 –> 00:05:11,440
سرعت v تغییر
151
00:05:11,440 –> 00:05:14,320
دهیم، اگر این برنامه را اجرا
152
00:05:14,320 –> 00:05:16,320
کنم، تنظیمات متفاوتی خواهیم داشت که میتوانم
153
00:05:16,320 –> 00:05:18,320
حرکت کنم. این اطراف خیلی راحت به یاد داشته
154
00:05:18,320 –> 00:05:20,320
باشید که من بخشی از مبدا
155
00:05:20,320 –> 00:05:23,120
و من همچنین تشخیص برخورد خفیف دارم
156
00:05:23,120 –> 00:05:24,000
157
00:05:24,000 –> 00:05:25,840
زیرا هشت سرعت همان چیزی است که
158
00:05:25,840 –> 00:05:29,199
هر زمان که ما
159
00:05:29,199 –> 00:05:30,960
واقعاً برای برخورد h سرعت و سرعت v آزمایش میکنیم، دستکاری میشود.
160
00:05:30,960 –> 00:05:33,199
161
00:05:33,199 –> 00:05:35,199
162
00:05:35,199 –> 00:05:36,240
163
00:05:36,240 –> 00:05:38,800
164
00:05:38,800 –> 00:05:39,440
165
00:05:39,440 –> 00:05:42,560
برخورد پس از آن به دلایلی
166
00:05:42,560 –> 00:05:43,759
167
00:05:43,759 –> 00:05:45,840
درست به طرف دیگر میپرد، حالا
168
00:05:45,840 –> 00:05:47,840
ما این را نمیخواهیم.
169
00:05:47,840 –> 00:05:49,280
170
00:05:49,280 –> 00:05:50,560
171
00:05:50,560 –> 00:05:52,080
172
00:05:52,080 –> 00:05:53,039
173
00:05:53,039 –> 00:05:54,320
به خصوص اگر با ماوس در حال حرکت هستید با آن برخورد می کنید،
174
00:05:54,320 –> 00:05:57,199
بنابراین روشی که ما این کار را انجام می دهیم این
175
00:05:57,199 –> 00:05:58,960
است که چند آزمایش را انجام می دهیم
176
00:05:58,960 –> 00:06:01,120
و در واقع تعیین می کنیم که چگونه
177
00:06:01,120 –> 00:06:02,639
با چیزهایی برخورد می کنیم
178
00:06:02,639 –> 00:06:04,160
تا در بالای عملکرد به روز رسانی
179
00:06:04,160 –> 00:06:05,840
زیر ماوس تنظیمات x و
180
00:06:05,840 –> 00:06:07,120
ماوس y
181
00:06:07,120 –> 00:06:08,800
در تعریف من قصد دارم
182
00:06:08,800 –> 00:06:10,720
چند متغیر جدید ایجاد کنم و
183
00:06:10,720 –> 00:06:13,440
آنها را در حال برخورد به چپ صدا می زنم
184
00:06:13,440 –> 00:06:15,039
و این به برابر برخورد
185
00:06:15,039 –> 00:06:16,800
سمت راست خواهد بود که برابر است با
186
00:06:16,800 –> 00:06:20,400
برخورد به سمت چپ که برابر است با
187
00:06:20,400 –> 00:06:23,039
برخورد به پایین
188
00:06:23,039 –> 00:06:24,960
و همه اینها برابر با
189
00:06:24,960 –> 00:06:26,160
false هستند،
190
00:06:26,160 –> 00:06:28,080
من فقط از دستور مساوی برابر با برابر است
191
00:06:28,080 –> 00:06:30,160
استفاده می کنم، بنابراین همه آنها
192
00:06:30,160 –> 00:06:33,280
در یک خط مساوی false هستند، خوب است،
193
00:06:33,280 –> 00:06:34,720
زیرا ما این نظرات کوچک زیبا
194
00:06:34,720 –> 00:06:36,319
را در اینجا داریم که به ما می گویند چه زمانی ما در واقع داریم به
195
00:06:36,319 –> 00:06:38,319
سمتی برخورد
196
00:06:38,319 –> 00:06:40,880
می کنیم که می توانیم جلو برویم و خیلی راحت می گوییم خوب است
197
00:06:40,880 –> 00:06:42,000
برخورد
198
00:06:42,000 –> 00:06:45,759
در حال حاضر درست خواهد بود و البته
199
00:06:45,759 –> 00:06:47,520
برخورد به چپ
200
00:06:47,520 –> 00:06:49,120
در اینجا و این چیزها برابر است
201
00:06:49,120 –> 00:06:51,599
و ما دقیقا همین کار را خواهیم کرد چیزی برای
202
00:06:51,599 –> 00:06:52,319
پایین
203
00:06:52,319 –> 00:06:55,919
و بالا برخورد کردن به پایین
204
00:06:55,919 –> 00:06:58,639
برابر درست
205
00:07:00,560 –> 00:07:06,400
و برخورد به برابر برابر درس