Balon Atıcı Oyunu
detaylar
özet
HTML5 Canvas ve JavaScript ile yapılan etkileşimli renkli balon atma oyunu.
etiketler
komut istemi
HTML5 Canvas ve JavaScript kullanarak klasik 2D "Bubble Shooter" oyununu interaktif bir HTML sayfası olarak oluşturun. Oyun, temel mekanikler ve minimalist tasarımla tam işlevsel olmalıdır. --- 1. Oyun Öğeleri: - Oyun Alanı: - Canvas boyutu: 800x600 piksel. - Üst kısım: sırayla dizilmiş balonlardan oluşan ızgara. - Alt kısım: balon atmak için bir topçu tüfeği (topçunun yerleştirildiği alan). - Topçu Tüfeği: - Fare veya klavyedeki sol/sağ ok tuşlarıyla kontrol edilerek nişan alınır. - Mevcut balon ve sonraki balon (önizleme) gösterilir. - Balonlar: - En az 5 renk (örneğin, kırmızı, mavi, yeşil, sarı, mor). - Balonlar, başka bir balona ya da ızgaraya çarptığında yapışır. --- 2. Ana Mekanikler: - Atış: - Sol fare tuşu veya SPACE tuşuyla balon atılır. - Balon, topçunun nişan aldığı yönde düzgün bir hat üzerinde hareket eder. - Başka bir balona veya üst sınırına çarptığında yapışır. - Eşleşme ve Patlama: - Aynı renkten 3 veya daha fazla balon birbirine bağlanırsa, patlar ve oyuncu puan kazanır. - Zincirleme reaksiyon: Desteksiz balonlar düşer ve silinir. - Oyun Bitirme Durumu: - Balonlar ekranın alt sınırına ulaşırsa oyun biter. --- 3. Görseller ve Arayüz: - Stil: - Minimalist tasarım: balonlar gradyan dolguya sahip dairelerdir. - Balon patlama animasyonu (örneğin, boyut küçülmesi ve saydamlık efekti). - UI: - Ekranın üst köşesinde skor gösterilir. - Oyunu yeniden başlatmak için "Yeniden Başlat" düğmesi. - Kazanma/Kaybetme mesajı (örneğin, "Kazandınız!" veya "Game over."). - Sesler: - Atış sesi, balon patlama sesi, arka plan müziği (opsiyonel). --- 4. Teknik Gereksinimler: - Oyun elemanlarını göstermek için HTML5 Canvas kullanın. - Balonların çarpışma fiziği ve yapışma etkisini uygulayın. - Komşu kontrolü için özyinelemeli (rekürsif) eşleşme kontrolü optimizasyonu yapın. - En iyi sonucu göstermek için skoru localStorage'da saklayın. --- Kod Yapısı Örneği: HTML: <!DOCTYPE html> <html lang="tr"> <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'); // Ana değişkenler let bubbles = []; let currentBubble, nextBubble; let score = 0; // Oyunu başlat function init() { createBubbleGrid(); spawnBubble(); gameLoop(); } // Balon ızgarası oluştur function createBubbleGrid() { // İlk ızgarayı oluşturma mantığı } // Yeni balon oluştur function spawnBubble() { currentBubble = { x: 400, y: 550, color: getRandomColor() }; nextBubble = { color: getRandomColor() }; } // Ana oyun döngüsü function gameLoop() { ctx.clearRect(0, 0, canvas.width, canvas.height); drawBubbles(); drawCannon(); requestAnimationFrame(gameLoop); } // Balonları çiz 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(); }); } // Çarpışmaları kontrol et function checkCollisions() { // Çarpışma ve eşleşme kontrolü mantığı } // Oyunu başlat init();
orijinal komut istemi
"Разработай классическую 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: да
oluşturma maliyeti özeti
model adı: claude-3-7-sonnet-latest
yanıt süresi: 115.63 sec.
sonuç belirteçleri: 9,124
maliyet: $0.14211000