توضیحات محصول
🎮 بازی Pong NEO - پروژه کلاسیک با جلوههای مدرن
📊 ویژگیهای کلیدی پروژه:
• 🌈 گرافیک نئونی با رنگهای جذاب (سیان، صورتی، زرد)
• ✨ سیستم ذرات نورانی (Particle System)
• 🎯 ۳ حالت بازی: منو، در حال بازی، توقف
• 🏆 امتیازدهی تا ۱۰ امتیاز برای هر بازیکن
• 🎨 خط وسط نقطهچین با رنگ بنفش
• ⚡ فیزیک واقعی با تغییر زاویه توپ بر اساس نقطه برخورد
• ⌨️ کنترل دو بازیکن با کلیدهای W/S و ↑/↓
• 🔄 انیمیشن عنوان در منوی اصلی
• 💥 افکت ذرات هنگام برخورد توپ با راکتها و دیوارها
• ⏸️ قابلیت توقف بازی با کلید ESC
• 🏁 صفحه پایان بازی با اعلام برنده
• 📏 ابعاد بازی: ۱۰۰۰x۶۰۰ پیکسل
• 🎯 هدف: رسیدن به ۱۰ امتیاز زودتر از حریف
🔧 مشخصات فنی پروژه:
• زبان برنامهنویسی: Python 3.8+
• کتابخانههای استفاده شده: tkinter, random, math
• حجم فایل: ۳۸ کیلوبایت
• تعداد خطوط کد: ۴۵۰+ خط کد تمیز و کامنتگذاری شده
• ساختار: برنامهنویسی شیگرا (OOP) با کلاس ModernPong
• نرخ فریم: ۶۰ فریم بر ثانیه
• مدیریت خطاهای پیشرفته
🎨 پالت رنگی نئونی:
• پسزمینه: #0a0a14 (بنفش تیره)
• راکت چپ (بازیکن ۱): #00ffff (سیان)
• راکت راست (بازیکن ۲): #ff64ff (صورتی)
• توپ: #ffff64 (زرد)
• متن: #c8c8ff (بنفش روشن)
• خط وسط: #404060 (بنفش)
📐 مشخصات فنی:
• اندازه راکتها: ۱۵x۱۲۰ پیکسل
• اندازه توپ: ۱۸x۱۸ پیکسل
• سرعت راکت: ۸ پیکسل/فریم
• سرعت اولیه توپ: ۵ پیکسل/فریم
• تعداد ذرات: ۵ ذره در هر برخورد
• عمر ذرات: ۲۰-۴۰ فریم
💻 نحوه اجرا:
# روش اول: اجرای مستقیم
python pong_neo.py
# روش دوم: اجرا در محیط مجازی (توصیه شده)
python -m venv venv
source venv/bin/activate # در لینوکس/مک
venv\Scripts\activate # در ویندوز
python pong_neo.py
📁 ساختار پروژه:
pong-neo-game/
├── pong_neo.py # فایل اصلی پروژه
├── README.md
🎨 طراحی بصری:
🖼️ صفحه اصلی (Menu):
• عنوان "PONG NEO" با انیمیشن بالا و پایین
• راهنمای کامل بازی در ۵ خط
• پسزمینه تیره با خط وسط نقطهچین
🎮 صفحه بازی:
• راکت چپ سیان، راکت راست صورتی
• توپ زرد با ذرات نورانی
• امتیاز در وسط صفحه با فونت درشت
• خط وسط نقطهچین بنفش
✨ افکتهای ذرات:
• ذرات در ۵ جهت مختلف
• محو شدن تدریجی با کاهش شفافیت
• رنگهای متناسب با محل برخورد
• حرکت تصادفی ذرات
⌨️ کنترلهای بازی:
🎮 بازیکن ۱ (چپ):
• W: حرکت به بالا
• S: حرکت به پایین
🎮 بازیکن ۲ (راست):
• ↑: حرکت به بالا
• ↓: حرکت به پایین
⌨️ کنترلهای عمومی:
• Space: شروع بازی / ادامه بعد از پایان
• ESC: توقف/بازگشت به منو
🚀 نحوه بازی:
۱. اجرای برنامه
۲. صفحه منو با انیمیشن عنوان نمایش داده میشود
۳. Space بزنید تا بازی شروع شود
۴. بازیکن ۱ با کلیدهای W/S راکت را حرکت دهد
۵. بازیکن ۲ با کلیدهای ↑/↓ راکت را حرکت دهد
۶. توپ با برخورد به راکتها تغییر جهت میدهد
۷. زاویه توپ بر اساس نقطه برخورد با راکت تغییر میکند
۸. با برخورد توپ به دیوارهها، ذرات نورانی ایجاد میشود
۹. هر بار که توپ از راکت عبور کند، حریف امتیاز میگیرد
۱۰. اولین بازیکنی که به ۱۰ امتیاز برسد، برنده میشود
۱۱. در صفحه Game Over، Space بزنید برای بازی جدید
۱۲. با ESC میتوانید بازی را متوقف کنید
🔄 منطق بازی:
📐 فیزیک توپ:
• سرعت ثابت در محور X
• تغییر زاویه بر اساس فاصله از مرکز راکت
• hit_pos بین ۱- و ۱
• ball_speed_y = hit_pos * ۱۰
💥 برخورد با راکت:
• تشخیص با مختصات
• تغییر جهت در محور X
• تغییر زاویه در محور Y
• ایجاد ذرات در نقطه برخورد
✨ سیستم ذرات:
• هر ذره: [x, y, dx, dy, color, lifetime]
• حرکت با سرعت تصادفی
• کاهش عمر هر فریم
• محو شدن تدریجی با کاهش alpha
🏆 امتیازدهی:
• توپ از چپ خارج شود: امتیاز برای بازیکن راست
• توپ از راست خارج شود: امتیاز برای بازیکن چپ
• ریست توپ در وسط پس از هر گل
• پایان بازی با رسیدن به ۱۰ امتیاز
🎯 پیامهای بازی:
✅ صفحه منو:
• "PONG NEO" با انیمیشن
• "SPACE: Start Game"
• "ESC: Pause/Menu"
• "Player 1: W / S"
• "Player 2: ↑ / ↓"
⏸️ حالت توقف:
• نمایش منو با انیمیشن عنوان
• عدم حرکت توپ و راکتها
🏁 صفحه پایان:
• "GAME OVER" بزرگ
• "PLAYER 1 WINS!" یا "PLAYER 2 WINS!" با رنگ مربوطه
• نمایش امتیاز نهایی
• "PRESS SPACE TO CONTINUE"
⭐ نقاط قوت پروژه:
• کد کاملاً تمیز و کامنتگذاری شده
• رعایت اصول برنامهنویسی شیگرا (OOP)
• گرافیک نئونی جذاب
• سیستم ذرات پیشرفته
• فیزیک واقعی با تغییر زاویه
• ۶۰ فریم بر ثانیه روان
• کنترل همزمان دو بازیکن
• ۳ حالت مختلف بازی
• بدون وابستگی به کتابخانههای خارجی
• قابل اجرا روی ویندوز، لینوکس و مک
• حجم کم و عملکرد عالی
• طراحی مدرن و حرفهای
🎯 موارد استفاده:
• بازی دو نفره سرگرمکننده
• یادگیری برنامهنویسی بازی
• پروژه دانشجویی
• آموزش مفاهیم فیزیک در بازی
• تمرین کار با Canvas و انیمیشن
• آشنایی با سیستم ذرات (Particle System)
📌 نکات فنی:
• استفاده از set برای مدیریت کلیدهای همزمان
• تشخیص برخورد با مختصات
• محاسبه زاویه با فرمول hit_pos / ۱۰
• انیمیشن عنوان با متغیر title_dir
• ذرات با لیست و حذف بر اساس lifetime
• نرخ فریم ۶۰ با after(16)
با افتخار از درخت کد
محمدمهدی محمودی
treec.net | mohammadmahdimahmoudi.ir
برای یادگیری پایتون دانلود کردم، این پروژه فوقالعادهست و حالتهای مختلف رو پشتیبانی میکنه حتما دانلودش کنین.
برای چند پروژه آموزشی استفاده کردم، این پروژه رایگان اجراش روونه و با تغییرات کم شخصی شد حیفه دانلود نکنین.
برای همه پروژههای آموزشیم، این کد نقطه قوت خوبی داره و عملیات پایه و پیشرفته داره برای شروع کار با پایتون مناسبه.
برای تمرین Tkinter استفاده کردم، این پروژه اجراش روونه و برای تمرین OOP خوبه انتخاب مناسبیه.
این پروژه با توابع پیشرفته و بدون هزینه این کیفیت و برای سطح متوسط مناسبه امیدوارم باگهاش رفع بشه.
به عنوان پروژه نمونه، این کد نقطه قوت خوبی داره و بدون هزینه قابل دانلوده برای شروع کار با پایتون مناسبه.
این کد پایتون انصافا بدون هزینه این کیفیت و برای سطح متوسط مناسبه یکی از بهترینها نیست ولی خوبه.
برای تمرین برنامهنویسی، این پروژه نقطه قوت خوبی داره و کدش نسبتا سبکه پیشنهاد میکنم.
برای تمرین GUI، این پروژه بدون هزینه این کیفیت و توابع پیشرفته داره ولی جای بهبود داره بهترین انتخاب ممکنه.
بعد از دیدن دمو دانلود کردم، این پروژه فوقالعادهست و روی همه سیستمعاملها اجرا میشه حتما دانلودش کنین.