لعبة قاذف الفقاعات
تفاصيل
ملخص
لعبة تفاعلية تستخدم HTML5 Canvas وJavaScript لإطلاق الفقاعات.
علامات
سؤال
اصنع لعبة كلاسيكية ثنائية الأبعاد من "Bubble Shooter" كصفحة HTML تفاعلية باستخدام HTML5 Canvas وJavaScript. يجب أن تكون اللعبة وظيفية بالكامل بآليات أساسية وتصميم بسيط. --- 1. عناصر اللعبة: - ساحة اللعبة: - حجم الكانفس: 800x600 بكسل. - الجزء العلوي: شبكة من الفقاعات مرتبة بطريقة متدرجة. - الجزء السفلي: مدفع لإطلاق الفقاعات. - المدفع: - يتم التحكم به باستخدام الفأرة أو مفاتيح الأسهم (يسار/يمين) للتصويب. - يعرض الفقاعة الحالية في المدفع والفقاعة التالية (معاينة). - الفقاعات: - على الأقل 5 ألوان (مثل: الأحمر، الأزرق، الأخضر، الأصفر، الأرجواني). - تلتصق الفقاعات بالشبكة أو بفقاعات أخرى عند الاصطدام. --- 2. الآليات الرئيسية: - الإطلاق: - زر الفأرة الأيسر أو مفتاح المسافة لإطلاق الفقاعة. - تطير الفقاعة في خط مستقيم نحو اتجاه التصويب للمدفع. - تلتصق عند الاصطدام بفقاعة أخرى أو بالحافة العلوية. - المطابقة والانفجار: - إذا تم ربط 3 فقاعات أو أكثر من نفس اللون، فإنها تنفجر ويكتسب اللاعب نقاطاً. - ردود الفعل المتسلسلة: الفقاعات غير المدعومة تسقط وتُزال. - شرط انتهاء اللعبة: - تنتهي اللعبة إذا وصلت الفقاعات إلى الحافة السفلية للشاشة. --- 3. المرئيات والواجهة: - النمط: - تصميم بسيط: الفقاعات عبارة عن دوائر ذات تدرج لوني. - رسوم متحركة للانفجار (مثلاً، تقليل الحجم مع تأثير الشفافية). - واجهة المستخدم: - عرض النتيجة في الزاوية العلوية للشاشة. - زر "إعادة التشغيل" لإعادة بدء اللعبة. - رسائل الفوز/الخسارة (مثل "لقد فزت!" أو "انتهت اللعبة."). - الأصوات: - صوت للإطلاق، صوت لانفجار الفقاعات، وموسيقى خلفية (اختياري). --- 4. المتطلبات التقنية: - استخدام HTML5 Canvas لرسم عناصر اللعبة. - تنفيذ فيزياء تصادم الفقاعات ودرجة التصاقها. - تحسين فحص المطابقة (مثلاً، باستخدام إعادة الاستدعاء للتحقق من الفقاعات المجاورة). - حفظ النتيجة في localStorage لعرض أفضل نتيجة. --- مثال على هيكل الكود: HTML: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bubble Shooter</title> <style> body { margin: 0; overflow: hidden; } canvas { display: block; background: #87CEEB; } </style> </head> <body> <canvas id="gameCanvas" width="800" height="600"></canvas> <script src="game.js"></script> </body> </html> JavaScript (game.js): const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // المتغيرات الرئيسية let bubbles = []; let currentBubble, nextBubble; let score = 0; // تهيئة اللعبة function init() { createBubbleGrid(); spawnBubble(); gameLoop(); } // إنشاء شبكة الفقاعات function createBubbleGrid() { // منطق إنشاء الشبكة الأولية } // توليد فقاعة جديدة function spawnBubble() { currentBubble = { x: 400, y: 550, color: getRandomColor() }; nextBubble = { color: getRandomColor() }; } // الحلقة الرئيسية للعبة function gameLoop() { ctx.clearRect(0, 0, canvas.width, canvas.height); drawBubbles(); drawCannon(); requestAnimationFrame(gameLoop); } // رسم الفقاعات function drawBubbles() { bubbles.forEach(bubble => { ctx.beginPath(); ctx.arc(bubble.x, bubble.y, 20, 0, Math.PI * 2); ctx.fillStyle = bubble.color; ctx.fill(); ctx.stroke(); }); } // فحص التصادمات function checkCollisions() { // منطق التصادم وفحص المطابقة } // بدء اللعبة init();
السؤال الأصلي
"Разработай классическую 2D-игру «Bubble Shooter» в виде интерактивной HTML-страницы с использованием HTML5 Canvas и JavaScript. Игра должна быть полностью функциональной, с базовой механикой и минималистичным дизайном. --- ### **1. Основные элементы игры:** - **Игровое поле:** - Холст (Canvas) размером 800x600 пикселей. - Верхняя часть экрана: сетка из пузырей, расположенных в шахматном порядке. - Нижняя часть экрана: пушка для стрельбы пузырями. - **Пушка:** - Управление мышью или стрелками клавиатуры (влево/вправо) для наведения. - Отображение текущего пузыря в пушке и следующего пузыря (предварительный просмотр). - **Пузыри:** - Минимум 5 цветов (например, красный, синий, зеленый, желтый, фиолетовый). - Пузыри прилипают к сетке или другим пузырям при попадании. --- ### **2. Основная механика:** - **Стрельба:** - Нажатие ЛКМ или SPACE для выстрела пузырем. - Пузырь летит по прямой траектории в направлении пушки. - При столкновении с другим пузырем или верхней границей пузырь прилипает. - **Совпадения и уничтожение:** - Если 3+ пузыря одного цвета соединяются, они лопаются, игрок получает очки. - Цепные реакции: пузыри, оставшиеся без опоры, падают вниз и уничтожаются. - **Условия поражения:** - Игра заканчивается, если пузыри достигают нижней границы экрана. --- ### **3. Визуал и интерфейс:** - **Стиль:** - Минималистичный дизайн: пузыри — это круги с градиентной заливкой. - Анимация лопания пузырей (например, уменьшение размера с эффектом прозрачности). - **UI:** - Отображение счета в верхнем углу экрана. - Кнопка «Рестарт» для перезапуска игры. - Сообщение о победе/поражении (например, «Вы выиграли!» или «Игра окончена»). - **Звуки:** - Звук выстрела, лопания пузырей, фоновой музыки (опционально). --- ### **4. Технические требования:** - Использовать HTML5 Canvas для отрисовки игровых элементов. - Реализовать физику столкновений и прилипания пузырей. - Оптимизировать проверку совпадений (например, поиск соседних пузырей через рекурсию). - Сохранение счета в localStorage для отображения лучшего результата. --- ### **Пример структуры кода:** **HTML:** ```htmlBubble Shooter ``` **JavaScript (game.js):** ```javascript const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // Основные переменные let bubbles = []; let currentBubble, nextBubble; let score = 0; // Инициализация игры function init() { createBubbleGrid(); spawnBubble(); gameLoop(); } // Создание сетки пузырей function createBubbleGrid() { // Логика создания начальной сетки } // Спавн нового пузыря function spawnBubble() { currentBubble = { x: 400, y: 550, color: getRandomColor() }; nextBubble = { color: getRandomColor() }; } // Основной игровой цикл function gameLoop() { ctx.clearRect(0, 0, canvas.width, canvas.height); drawBubbles(); drawCannon(); requestAnimationFrame(gameLoop); } // Отрисовка пузырей function drawBubbles() { bubbles.forEach(bubble => { ctx.beginPath(); ctx.arc(bubble.x, bubble.y, 20, 0, Math.PI * 2); ctx.fillStyle = bubble.color; ctx.fill(); ctx.stroke(); }); } // Обработка столкновений function checkCollisions() { // Логика проверки столкновений и совпадений } // Запуск игры init(); ``` --- ### **Результат:** Готовая HTML-страница с игрой «Bubble Shooter», где игрок стреляет пузырями, собирая группы из 3+ одинаковых цветов. Игра должна быть интерактивной, с базовой физикой и минималистичным дизайном. Q: Нужна ли дополнительная информация по механике стрельбы? A: нет Q: Какого уровня детализации ожидается для анимации пузырей? A: простая Q: Следует ли учитывать адаптацию под мобильные устройства? A: да
ملخص تكلفة التوليد
اسم النموذج: claude-3-7-sonnet-latest
وقت الاستجابة: 115.63 sec.
رموز النتيجة: 9,124
التكلفة: $0.14211000