Game 2D Bubble Shooter
rincian
ringkasan
Game klasik 2D Bubble Shooter dibuat dengan HTML5 Canvas dan JavaScript, desain minimalis.
prompt
Buatlah game klasik 2D 'Bubble Shooter' sebagai halaman HTML interaktif menggunakan HTML5 Canvas dan JavaScript. Game harus berfungsi penuh dengan mekanisme dasar dan desain minimalis. 1. Elemen Utama Game: - Bidang permainan: - Ukuran canvas 800x600 piksel. - Bagian atas layar: grid gelembung dengan pola papan catur. - Bagian bawah layar: meriam penembak gelembung. - Meriam: - Dikendalikan dengan mouse atau tombol panah (kiri/kanan) untuk mengarahkan. - Menampilkan gelembung saat ini pada meriam dan gelembung berikutnya (pratinjau). - Gelembung: - Minimal 5 warna (misal: merah, biru, hijau, kuning, ungu). - Gelembung akan menempel pada grid atau gelembung lain ketika bertabrakan. 2. Mekanisme Dasar: - Menembak: - Klik kiri atau tekan tombol SPACE untuk menembak. - Gelembung bergerak lurus ke arah meriam. - Saat bertabrakan dengan gelembung lain atau batas, gelembung akan menempel. - Pencocokan dan Meletus: - Jika 3 atau lebih gelembung dengan warna yang sama terkoneksi, mereka meletus dan pemain mendapatkan poin. - Reaksi berantai: gelembung yang tidak terkoneksi akan jatuh dan hancur. - Kondisi Kalah: - Permainan berakhir jika gelembung mencapai bagian bawah layar. 3. Visual dan Antarmuka: - Gaya: - Desain minimalis: gelembung berbentuk lingkaran dengan gradasi warna. - Animasi meletus (misal: pengecilan ukuran dengan efek transparansi). - UI: - Menampilkan skor di salah satu sudut layar. - Tombol 'Restart' untuk memulai ulang permainan. - Pesan kemenangan atau kekalahan (misal: 'Kamu menang!' atau 'Game Over'). 4. Persyaratan Teknis: - Gunakan HTML5 Canvas untuk menggambar elemen game. - Implementasikan tumbukan gelembung dan fisika penempelan. - Optimalkan pengecekan kecocokan (misal: pencarian rekursif gelembung tetangga). - Simpan skor di localStorage untuk menampilkan skor tertinggi. Contoh Struktur Kode: HTML: [blok kode] JavaScript (game.js): [blok kode] Hasil: Halaman HTML siap pakai dengan game 'Bubble Shooter' dimana pemain menembak gelembung untuk menghubungkan 3 atau lebih gelembung dengan warna yang sama. Game memiliki fisika dasar dan desain minimalis.
prompt asli
"Разработай классическую 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: Отображение счета в верхнем углу экрана. Кнопка «Рестарт» для перезапуска игры. Сообщение о победе/поражении (например, «Вы выиграли!» или «Игра окончена»)
ringkasan biaya pembuatan
nama model: claude-3-7-sonnet-latest
waktu respons: 251.13 sec.
token hasil: 15,298
biaya: $0.23474400