|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80
|
|
Морской Бой15.02.2017, 11:55. Показов 3236. Ответов 33
Метки нет (Все метки)
Задали задачу по Javascript. Написать скрипт программы "Морской Бой", только не тот морской бой который с полями, а был в СССР такой автомат игровой. Т.е. корабли плывут от одного конца экрана к другому, при нажатии на кнопку выпускается торпеда, при попадании в корабль, корабль разворачивается. Подскажите пожалуйста реализацию. ЗАпутался
0
|
|
| 15.02.2017, 11:55 | |
|
Ответы с готовыми решениями:
33
Морской бой необходимо сделать дополнения к игре морской бой! Создать небольшую игрушку "Морской бой" |
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 15.02.2017, 16:50 | |
|
1. а как бы "перископ" нужен?
насколько помню, в том советском автомате на экране была имитация вида в перископ, на линзе которого была нанесена "топографические оси с делениями" (не знаю, как это в военной оптике правильно называется) -- перископ легко делается средствами HTML+CSS 2. и корабли двигались караванами поочередно: сначала слева направо", а затем "справа налево" -- это я к тому, что нужны будут по два "зеркальных изображения каждого из кораблей 3. и след от "торпеды" имитировался удлиняющейся красной пунктирной линией на "поверхности "моря" -- это можно реализовать посредством JS 4. для начала ищите в сети изображения "поверхности моря и неба над горизонтом", красивую картинку "взрыва" и "корабли" 5. геометрия игры и параметры скрипта будут зависеть от желаемых линейных размеров кораблей
0
|
|
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80
|
|
| 15.02.2017, 16:59 [ТС] | |
|
kalabuni, да нет, конечно же не нужен перископ и в графике не нужно все это. Вот только пункт 3 из вашего списка.
0
|
|
|
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
|
|
| 15.02.2017, 17:11 | |
|
kalabuni хотел сказать, что вы недостаточно подробно описали задачу.
А ещё задачка-то не на 5 минут. Вряд ли кто-то будет её делать целиком за вас. Публикуйте свои наработки и задавайте конкретные вопросы, на которые мы сможем дать конкретный ответ. Посты в стиле "вот задача - напишите реализацию" размещаются в другом разделе.
0
|
|
| 15.02.2017, 18:08 | |
|
Не по теме: как-то ещё будучи студентами плыли на теплоходе на остров Валаам и автомат "Морской бой", стоявший в коридоре, каким-то образом "переклинило" -- можно было играть и без 15-ти копеек... играли полночи... на "сэкономленные" деньги накупили в баре разливного пива (плюс у нас с собой было кое-что покрепче)... в общем, и упились, и уигрались :)
0
|
|
| 15.02.2017, 23:57 | ||
|
А в вашем случае может быть достаточно чтобы перед пользователем появлялось 2D поле голубого цвета (вид сверху). Внизу вытянутый прямоугольник чёрного цвета - это пушка корабля. Сверху медленно двигается квадратик - это вражеский корабль. Пушка передвигается с помощью клавиш стрелок, а выстрел с помощью клика мышки. Все игровые объекты изображаются в виде прямоугольников. Вот я набросал в Paint'e, как будет выглядеть игра в конце. Так же опишите, как в вашем представлении должна выглядеть игра.
1
|
||
| 16.02.2017, 00:37 | ||||||
|
Игровые объекты можно рисовать на элементе <canvas>, как показано ниже. Показать, как перемещать пушку клавишами клавиатуры?
1
|
||||||
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80
|
|
| 16.02.2017, 17:13 [ТС] | |
|
8Observer8, буду признателен))
Добавлено через 26 минут 8Observer8, ну вот как раз так и должна выглядеть, как вы нарисовали. Понятие игрового автомата я использовал, чтобы кто помнит таков имел представление про саму суть игры. А так да, то, что вы набросали в пейнте это то, что нужно. Понятное дело, здесь не идет речь о 3D абсолютно.
0
|
|
| 16.02.2017, 18:24 | |||||||||||
|
Давайте вместе попробуем. Одному скучно. Предлагаю программировать на https://jsfiddle.net/
Я создал там проект: https://jsfiddle.net/8Observer8/u8gy0sda/
Возьмём за основу код из этого тутора, где делают Pong на чистом JavaScript и Canvas2D API: 2D игра на чистом JavaScript Особенно анимацию движения и определение столкновений.
1
|
|||||||||||
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80
|
|||||||||||
| 17.02.2017, 11:51 [ТС] | |||||||||||
|
8Observer8, поменял цвет врага, при изменении цвета торпеды, такой же цвет приобретает и пушка, почему-то. Понял почему) Добавил отдельно цвет пушки.
0
|
|||||||||||
| 17.02.2017, 17:23 | ||||||||||||||||
|
С английским у вас как? Давайте рассмотрим цикл рисования (drawing loop)
Как там написано по ссылке drawing loop будем двигать врага слева направо, а потом сделаем движение торпеды вверх.
Анимация движения заключается в том, что (1) мы рисуем прямоугольник (врага), (2) через 10 милисекунд стираем его, (3) изменяем координаты (на чуть-чуть - на 1-2 пикселя) и (4) снова рисуем. Через 10 милисекунд опять: стираем, меняем координаты, рисуем. Я сделал в точности, как в туторе: Move the ball Враг двигается слева направо: https://jsfiddle.net/8Observer8/u8gy0sda/8/ По аналогии сделайте, чтобы торпеда двигалась вверх. Нужно будет создать вверху две переменные: torpedoY и torpedoSpeed, как я делал с врагом.
1
|
||||||||||||||||
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80
|
|||||||||||
| 17.02.2017, 17:34 [ТС] | |||||||||||
|
8Observer8 увы не особо с английским в плане чтения((
0
|
|||||||||||
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
|||||||||||
| 17.02.2017, 17:52 | |||||||||||
|
тоже делаю этот тир)
1
|
|||||||||||
| 17.02.2017, 17:52 | |
|
Adamsyork, у вас торпеда не двигается. Подумайте, почему?
1
|
|
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80
|
|
| 17.02.2017, 22:31 [ТС] | |
|
8Observer8, не двигается наверно потому, что мы не назначили ей точку старта
0
|
|
| 18.02.2017, 00:16 | ||||||||||||||||||||||||||||||||||||
|
Значит, вы не поняли, как двигается враг. Функция draw() вызывается каждые 10 миллисекунд, потому что её вызывает setInterval(draw, 10); вот так:
1
|
||||||||||||||||||||||||||||||||||||
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
|||||||||||
| 18.02.2017, 02:42 | |||||||||||
|
готово)
2
|
|||||||||||
| 18.02.2017, 11:18 | |||||||||||||||||||||
|
Adamsyork, за вами задание заставить двигаться торпеду. Найдите ошибку в этом коде:
Я сделал движение пушки вправо (и упор в стенку), а вы по аналогии сделайте движение влево: https://jsfiddle.net/8Observer8/u8gy0sda/16/
P.S. Я сделал небольшой рефакторинг кода (то есть улучшение), чтобы его читать было проще. Изменение позиций будет в функции update(), а рисование в draw(). Из функции draw() вызываются функции рисования объектов: drawEnemy(), drawTorpedo() и т.д. Главный цикл будет называться gameLoop(). Получается такая структура кода:
1
|
|||||||||||||||||||||
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 80
|
|
| 18.02.2017, 14:56 [ТС] | |
|
8Observer8, можно пару вопросов?
1. Я смотрю что код состоит из HTML и JavaScript. Как мне это делать в моем редакторе? Именно SublimeText? То, что мы параллельно работаем в самом проекте это прекрасно, а вот как мне совместить в редакторе два разных синтаксиса? 2. На каком форуме мне надо дублировать ссылки?
0
|
|
| 18.02.2017, 17:37 | |||||||||||||
|
Далее, вам нужно скопировать в вставить код: index.html
1
|
|||||||||||||
| 18.02.2017, 17:37 | |
|
Помогаю со студенческими работами здесь
20
Морской бой Игра Морской бой Морской бой морской бой Морской бой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|