در این مطلب، ویدئو بازی مار و سیب در پایتون pygame – 2. تبدیل به OOP | آموزش پروژه پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:05
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,199 –> 00:00:03,520
تا اینجا کد ما خوب به نظر می رسد
2
00:00:03,520 –> 00:00:07,120
اما کد خیلی خوانا نیست، بنابراین در
3
00:00:07,120 –> 00:00:08,320
این جلسه
4
00:00:08,320 –> 00:00:11,360
قصد داریم آن را به عنوان برنامه نویسی شی گرا بسازیم،
5
00:00:11,360 –> 00:00:12,960
بنابراین چیزی به نام
6
00:00:12,960 –> 00:00:14,480
برنامه نویسی شی گرا یا
7
00:00:14,480 –> 00:00:17,119
اوپس وجود دارد، بنابراین ما آن را به گونه ای می سازیم
8
00:00:17,119 –> 00:00:18,640
که به دنبال آن باشد.
9
00:00:18,640 –> 00:00:21,760
اصل oops که اساساً
10
00:00:21,760 –> 00:00:24,800
این را به کلاس ها و
11
00:00:24,800 –> 00:00:28,160
اشیاء تبدیل می کند، بنابراین بیایید از
12
00:00:28,160 –> 00:00:32,079
اینجا شروع کنیم، یک بلوک بزرگ از
13
00:00:32,079 –> 00:00:34,320
کد را در خود تابع اصلی خود
14
00:00:34,320 –> 00:00:35,920
می بینید، معمولاً وقتی روی
15
00:00:35,920 –> 00:00:37,520
پروژه های پایتون مناسب کار
16
00:00:37,520 –> 00:00:39,360
می کنید، کد زیادی در اصلی خود نمی نویسید.
17
00:00:39,360 –> 00:00:41,440
نقطه ورود،
18
00:00:41,440 –> 00:00:44,719
بنابراین چیزهایی مانند همه چیز خوب است
19
00:00:44,719 –> 00:00:46,320
اگر
20
00:00:46,320 –> 00:00:49,520
من کلاسی به نام game okay داشته
21
00:00:49,520 –> 00:00:51,840
باشم و اینگونه کلاس را تعریف می کنید اگر
22
00:00:51,840 –> 00:00:53,280
در مورد کلاس ها و اشیاء نمی دانید،
23
00:00:53,280 –> 00:00:54,640
می توانید
24
00:00:54,640 –> 00:00:56,960
ویدیوی پایتون من را در کلاس ها و اشیاء دنبال کنید و
25
00:00:56,960 –> 00:00:58,399
دریافت خواهید کرد. درکی که در
26
00:00:58,399 –> 00:01:00,320
27
00:01:00,320 –> 00:01:02,480
اینجا مانند یک پیش نیاز است، این یک سازنده است، بنابراین سازنده را می
28
00:01:02,480 –> 00:01:04,959
نویسیم،
29
00:01:04,959 –> 00:01:08,560
اما اگر در روش اصلی من در
30
00:01:08,560 –> 00:01:13,040
اینجا فقط دو خط کد داشته باشم
31
00:01:13,040 –> 00:01:15,840
و آن کد این باشد که شما یک
32
00:01:15,840 –> 00:01:17,360
شی از یک
33
00:01:17,360 –> 00:01:20,799
بازی بسازید، چه می شود. بگو نقطه بازی خوب اجرا شود
34
00:01:20,799 –> 00:01:23,759
و در اینجا البته شما یک
35
00:01:23,759 –> 00:01:25,119
تابع
36
00:01:25,119 –> 00:01:27,200
اجرا خواهید داشت و ما همه این توابع را پیاده سازی می کنیم،
37
00:01:27,200 –> 00:01:29,840
اما این ایده من است
38
00:01:29,840 –> 00:01:32,400
من می خواهم فقط دو خط کد
39
00:01:32,400 –> 00:01:33,759
در متد اصلی خود داشته باشم
40
00:01:33,759 –> 00:01:35,439
و بقیه چیزها باید کلاس ها
41
00:01:35,439 –> 00:01:36,960
و آبجکت ها باشند.
42
00:01:36,960 –> 00:01:42,000
بسیار خوب، بنابراین اجازه دهید
43
00:01:42,000 –> 00:01:45,200
همه این کدها را به کلاس های خود منتقل کنیم
44
00:01:45,200 –> 00:01:48,320
تا بازی pi در آن البته
45
00:01:48,320 –> 00:01:50,479
به مقداردهی اولیه بازی شما وارد
46
00:01:50,479 –> 00:01:53,280
شود،
47
00:01:53,280 –> 00:01:56,719
سپس چیز بعدی که
48
00:01:56,719 –> 00:02:00,560
دارید یک سطح است، بنابراین این سطح
49
00:02:00,560 –> 00:02:03,759
نیز وارد مقداردهی اولیه بازی شما می شود
50
00:02:03,759 –> 00:02:06,840
و من این سطح را به یکی از اعضای کلاس تبدیل کنید
51
00:02:06,840 –> 00:02:11,038
و زمانی که خودتان کاری را
52
00:02:11,038 –> 00:02:14,560
انجام میدهید، آن را یک عضو کلاس میسازید
53
00:02:14,560 –> 00:02:16,879
تا بعداً سطح
54
00:02:16,879 –> 00:02:18,160
در اینجا نیز در دسترس باشد،
55
00:02:18,160 –> 00:02:21,680
بنابراین ایده کاملاً درست است،
56
00:02:21,680 –> 00:02:24,800
بنابراین ما آن را منتقل
57
00:02:24,800 –> 00:02:27,599
میکنیم، ما بلوکی داریم که آن را انجام خواهیم داد.
58
00:02:27,599 –> 00:02:28,720
59
00:02:28,720 –> 00:02:32,160
کمی بعد به آن نگاه کنید، اما بیایید ببینیم آیا
60
00:02:32,160 –> 00:02:34,000
چیز دیگری
61
00:02:34,000 –> 00:02:37,440
وجود دارد، نه همه چیز درست است، بنابراین تا اینجا
62
00:02:37,440 –> 00:02:41,200
بازی خوب به نظر می رسد اکنون
63
00:02:41,200 –> 00:02:44,400
بلوک چیزی است که ما در حال ساختن آن
64
00:02:44,400 –> 00:02:45,360
هستیم
65
00:02:45,360 –> 00:02:51,519
تا در نهایت مار خود را بسازیم، پس چطور می
66
00:02:51,519 –> 00:02:54,959
شود کلاسی به نام snake بسازیم.
67
00:02:55,360 –> 00:03:00,239
بسیار خوب و آن کلاس
68
00:03:01,040 –> 00:03:05,440
این کلاس آن شیء بلوک را خواهد داشت،
69
00:03:05,440 –> 00:03:09,280
بنابراین اجازه دهید همه اینها را به اینجا منتقل کنم،
70
00:03:09,440 –> 00:03:12,720
بنابراین دوباره می گویم self.block
71
00:03:12,720 –> 00:03:15,360
و سپس
72
00:03:17,120 –> 00:03:21,120
نقطه x صدها نقطه است y صدها است،
73
00:03:21,120 –> 00:03:25,040
بنابراین
74
00:03:25,040 –> 00:03:28,879
من از شر آن کد خلاص می شوم. بنابراین
75
00:03:28,879 –> 00:03:32,480
اکنون می بینید که به نوعی احساسی از این
76
00:03:32,480 –> 00:03:34,080
فرآیند دریافت کرده اید که در آن شما
77
00:03:34,080 –> 00:03:37,040
مقداری کد آزمایشی نوشته اید و زمانی
78
00:03:37,040 –> 00:03:38,560
که کار
79
00:03:38,560 –> 00:03:41,360
می کند می خواهید آن را به یک کد شی گرا تبدیل کنید
80
00:03:41,360 –> 00:03:42,799
81
00:03:42,799 –> 00:03:46,319
و به این صورت است که در حال حاضر همه این کارها را
82
00:03:46,319 –> 00:03:48,560
انجام می دهید. مانند
83
00:03:48,560 –> 00:03:49,519
رسم بلوک،
84
00:03:49,519 –> 00:03:52,560
بنابراین من می خواهم بلوک را بکشم، بنابراین در
85
00:03:52,560 –> 00:03:55,519
روش مار من، شاید بتوانم تابع ترسیم را اضافه
86
00:03:55,519 –> 00:03:57,599
کنم،
87
00:03:57,599 –> 00:03:59,599
بنابراین وقتی می گویید مار نقطه
88
00:03:59,599 –> 00:04:01,760
ترسیم کنید، آن مار را می
89
00:04:01,760 –> 00:04:04,319
کشد، بنابراین در حال حاضر یک مار فقط یک بلوک
90
00:04:04,319 –> 00:04:06,000
91
00:04:06,000 –> 00:04:10,000
است. به یک سطح والد نیاز
92
00:04:10,000 –> 00:04:12,400
دارم، اما من آن را ندارم، بنابراین معمولاً وقتی
93
00:04:12,400 –> 00:04:13,040
94
00:04:13,040 –> 00:04:16,160
برنامهنویسی کلاس انجام میدهید، میخواهید
95
00:04:16,160 –> 00:04:18,639
آن سطح را به عنوان آرگومان به این
96
00:04:18,639 –> 00:04:19,680
تابع منتقل کنید
97
00:04:19,680 –> 00:04:22,960
یا گزینه دیگری که دارید این است
98
00:04:22,960 –> 00:04:24,960
که آن را به عنوان یک عضو کلاس ذخیره کنید، بنابراین من
99
00:04:24,960 –> 00:04:27,600
فقط قرار است آن سطح را یک صفحه والد
100
00:04:27,600 –> 00:04:28,720
101
00:04:28,720 –> 00:04:31,759
بنامم و این کار را خواهم کرد من آن را در یک عضو کلاس جدید
102
00:04:31,759 –> 00:04:32,320
103
00:04:32,320 –> 00:04:36,400
به نام صفحه والد okay ذخیره می کنم
104
00:04:36,400 –> 00:04:40,000
و وقتی آن را ترسیم می کنم می گویم self dot
105
00:04:40,000 –> 00:04:43,360
parent screen dot blit
106
00:04:43,360 –> 00:04:46,160
و این بلوک باید خود نقطه بلوک باشد
107
00:04:46,160 –> 00:04:48,400
و این x و y باید
108
00:04:48,400 –> 00:04:51,440
خود نقطه x
109
00:04:52,880 –> 00:04:56,960
self dot y همه باشد.
110
00:04:56,960 –> 00:05:01,680
درست است پس
111
00:05:01,680 –> 00:05:06,240
حالا می دانید
112
00:05:06,240 –> 00:05:08,720
این بازی یک جورهایی شی اصلی است
113
00:05:08,720 –> 00:05:10,160
و بازی
114
00:05:10,160 –> 00:05:12,960
یک مار درون آن است، بنابراین شما یک
115
00:05:12,960 –> 00:05:14,720
بازی دارای یک مار هستید،
116
00:05:14,720 –> 00:05:17,120
بنابراین به همین دلیل
117
00:05:17,120 –> 00:05:18,479
من یک مار
118
00:05:18,479 –> 00:05:21,600
در کلاس بازی خود ایجاد خواهم کرد.
119
00:05:21,600 –> 00:05:24,240
من یک مار در کلاس بازی خود ایجاد کردم،
120
00:05:24,240 –> 00:05:25,759
121
00:05:25,759 –> 00:05:28,400
اکنون سازنده مار انتظار صفحه اصلی را دارد،
122
00:05:28,400 –> 00:05:29,199
123
00:05:29,199 –> 00:05:31,199
بنابراین سطح خود نقطه صفحه نمایش والد من چیست
124
00:05:31,199 –> 00:05:33,680
125
00:05:35,199 –> 00:05:38,639
و وقتی این کار انجام شد
126
00:05:38,639 –> 00:05:43,440
، میخواهم مار را
127
00:05:46,320 –> 00:05:50,800
کاملاً درست بکشم، بنابراین تا اینجای کار خوب به نظر میرسد.
128
00:05:50,800 –