Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 14.03.2015, 22:51   #1
DARKSIDER
AnyKey`щик
 
Регистрация: 14.03.2015
Сообщений: 5
Написано 2 полезных сообщений
(для 5 пользователей)
DarkSpace

Игра представляет собой браузерный космический шутер.
Разработка ведётся с использованием JavaScript и HTML5.

Ссылка на игру

Актуальная версия: 0.8 Alpha

Что есть на данный момент:
- Игрок, его перемещение и стрельба
- Магазин с возможностью покупки брони, орудий и кораблей
- Модуль миссий
- Враги (как же без них?)

Changelog:
V.0.6:
- Изменены хар-ки товаров в магазине, а также награда за уничтожение врагов и выполнение миссий
- Добавлен новый корабль
- Добавлено меню паузы (внутри есть миникарта)

V.0.7:
- Исправлена ошибка при загрузке игры
- Добавлены планеты (чисто для фона)
- Добавлено несколько новых кораблей и орудий
- Исправлено отображение шкалы опыта
- Добавлено ограничение для товаров в магазине по уровню
- Изменения в балансе

V.0.8:
- Очередные изменения в балансе
- Добавлено отключение центрирования камеры в игре (в настройках)
- Добавлен ускоритель (Shift - использование)
- Добавлен новый тип миссий - зачистка (доступен с 7-ого уровня)


Управление:
Стрелки - перемещение корабля и переключение между пунктами меню
Пробел - стрельба/выбор
E - стыковка со станцией
Shift - использование ускорителя
Escape - меню паузы


Скриншоты:







При наличии идей/замечаний обязательно пишите их, всё будет учтено

Последний раз редактировалось DARKSIDER, 15.03.2015 в 12:15.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо DARKSIDER за это полезное сообщение:
DStalk (15.03.2015), moka (14.03.2015), Nex (15.03.2015), St_AnGer (15.03.2015)
Старый 14.03.2015, 23:16   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: DarkSpace

Весьма прикольно, не мало работы сделано.
Хочеться чтобы было нормальное управление мышкой тоже, ну там по меню клацать.

Есть ли конкретный roadmap, или разработка ведеться органично?
Также было бы хорошо если canvas скейлилась под размер окна.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
RegIon (15.03.2015)
Старый 14.03.2015, 23:35   #3
DARKSIDER
AnyKey`щик
 
Регистрация: 14.03.2015
Сообщений: 5
Написано 2 полезных сообщений
(для 5 пользователей)
Ответ: DarkSpace

Сообщение от moka Посмотреть сообщение
Хочеться чтобы было нормальное управление мышкой тоже, ну там по меню клацать.
Не очень хочется с мышкой работать. Возможно, в одной из более поздних версий запилю.

Сообщение от moka Посмотреть сообщение
Есть ли конкретный roadmap, или разработка ведеться органично?
Да, есть. На пару сборок вперёд, но стараюсь корректировать под запросы юзеров.

Сообщение от moka Посмотреть сообщение
Также было бы хорошо если canvas скейлилась под размер окна.
Чуть позже попытаюсь сделать.
(Offline)
 
Ответить с цитированием
Старый 15.03.2015, 08:40   #4
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: DarkSpace

Мой провайдер говорит что сайт находится в реестре запрещенных сайтов.
Выложи хотя бы скрины.
(Offline)
 
Ответить с цитированием
Старый 15.03.2015, 12:21   #5
DARKSIDER
AnyKey`щик
 
Регистрация: 14.03.2015
Сообщений: 5
Написано 2 полезных сообщений
(для 5 пользователей)
Ответ: DarkSpace

Сообщение от Nex Посмотреть сообщение
Выложи хотя бы скрины.
Выложил.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (16.03.2015)
Старый 15.03.2015, 17:20   #6
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: DarkSpace

  • Мне больше нравиться управление top-down шутерами 'стрелки = вектор направления', все по-началу пытался улететь вверх зажав UP.
  • С мышкой не так и много возни.
  • Умудрился потерять корабль-базу, а она сама похожа на часть фона.
  • Никакого ориентира нету, непонятно на сколько улетел вперед или назад, я бы советовал смещать звезды-фон относительно объектов переднего плана - имитации глубины.
  • В меню нужно вчитываться, я не понял сразу (первые 10 сек) как полетать - кнопку ОТБЫТЬ нужно как-то выделить.
Коменты по коду.

Зачем иметь угол поворота у всего? Сложне вычисления. Ты на такт игры дофига Math.sin и Math.cos вызываешь. Лучше иметь вектор направления, чем угол направления. Именно для "пулек". И код будет короче.
bullets[i].x+=bullets[i].speed*Math.cos(bullets[i].angle*Math.PI/180);
bullets[i].y+=bullets[i].speed*Math.sin(bullets[i].angle*Math.PI/180);
bullets[i].x_c+=bullets[i].speed*Math.cos(bullets[i].angle);
bullets[i].y_c+=bullets[i].speed*Math.sin(bullets[i].angle); 
станет
bullets[i].x+=bullets[i].speed*bullets[i].dir.x;
bullets[i].y+=bullets[i].speed*bullets[i].dir.y;
bullets[i].x_c+=bullets[i].speed*bullets[i].dir.x;
bullets[i].y_c+=bullets[i].speed**bullets[i].dir.x; --//это я не понял на какой фиг 
Собственно и это станет легче.
if ((player.x-mov_x>384 && camera_c==0) || (player.x-mov_x>518 && camera_c==1)) mov_x+=Math.abs(player.speed*Math.cos(player.angle*Math.PI/180));
    if ((
player.y-mov_y>284 && camera_c==0) || (player.y-mov_y>368 && camera_c==1)) mov_y+=Math.abs(player.speed*Math.sin(player.angle*Math.PI/180));
    if ((
player.x-mov_x<384 && camera_c==0) || (player.x-mov_x<250 && camera_c==1)) mov_x-=Math.abs(player.speed*Math.cos(player.angle*Math.PI/180));
    if ((
player.y-mov_y<284 && camera_c==0) || (player.y-mov_y<200 && camera_c==1)) mov_y-=Math.abs(player.speed*Math.sin(player.angle*Math.PI/180)); 
Комент по этому куску: УБЕРИ численные границы координат из условий, непонятно как они взялись вообще, , а то авто-резайз окна поломает все и долго искать глюки будешь.
Код состоит только из If, switch и чисел-костант (90% всей математики, без рисования) - плохо..
Пример:
if ((player.x-mov_x>384 && camera_c==0) || (player.x-mov_x>518 && camera_c==1)) mov_x+=Math.abs(player.speed*Math.cos(player.angle*Math.PI/180));
    if ((
player.y-mov_y>284 && camera_c==0) || (player.y-mov_y>368 && camera_c==1)) mov_y+=Math.abs(player.speed*Math.sin(player.angle*Math.PI/180));
    if ((
player.x-mov_x<384 && camera_c==0) || (player.x-mov_x<250 && camera_c==1)) mov_x-=Math.abs(player.speed*Math.cos(player.angle*Math.PI/180));
    if ((
player.y-mov_y<284 && camera_c==0) || (player.y-mov_y<200 && camera_c==1)) mov_y-=Math.abs(player.speed*Math.sin(player.angle*Math.PI/180));
    if (
mov_x<0mov_x=0;
    if (
mov_y<0mov_y=0;
    if (
mov_y>7626mov_y=7626;
    if (
mov_x>7426mov_x=7426;
    if (
player.x<0player.x=0;
    if (
player.y<0player.y=0;
    if (
player.x>8192player.x=8192;
    if (
player.y>8192player.y=8192;
    if (
player.xp>=player.lvl*(player.lvl*30)) player.lvl++;
    if (
player.arm_hp<=0player.arm_hp=0
ИЗ-ЗА этого тебе трудно внести небольшие изменения в код, например обрабоку нажатий мышкой.
а draw() вообще индус-код с const-string (прямой текст в методах).
ctxMap.fillText("Прочность: "+ships[ships_shop_p].hp,16,106);
                
ctxMap.fillText("Макс. скорость: "+ships[ships_shop_p].speed*100+" м/с",16,130);
                
ctxMap.fillText("Скорость поворота: "+ships[ships_shop_p].speed_turn*60+" град/с",16,154);
                
ctxMap.fillText("Доступно с уровня: "+ships[ships_shop_p].lvl,16,178);
                
ctxMap.fillText("Цена: "+ships[ships_shop_p].cost,16,202); 
Советовал бы сделать класс-меню, а не городить огород, а то что бы пункт добавить, то нужно в 10 местах править.

Ну а так неплохо для начала.
__________________
Сайт: http://iexpo.ml

Последний раз редактировалось RegIon, 15.03.2015 в 18:29.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо RegIon за это полезное сообщение:
DARKSIDER (15.03.2015), moka (15.03.2015), St_AnGer (15.03.2015)
Старый 15.03.2015, 18:14   #7
DARKSIDER
AnyKey`щик
 
Регистрация: 14.03.2015
Сообщений: 5
Написано 2 полезных сообщений
(для 5 пользователей)
Ответ: DarkSpace

Все перечисленные недочёты исправлю (кроме управления - я думаю, такое лучше оставить).
Сообщение от RegIon Посмотреть сообщение
bullets[i].x_c+=bullets[i].speed*bullets[i].dir.x;
bullets[i].y_c+=bullets[i].speed**bullets[i].dir.x; --//это я не понял на какой фиг 
Это счётчик расстояния, пройденного пулей. У каждого орудия в игре есть свой параметр дальности стрельбы. Как только пуля пройдёт расстояние, заявленное в ТТХ установленного орудия, она пропадает.
(Offline)
 
Ответить с цитированием
Старый 15.03.2015, 18:34   #8
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Плохо Ответ: DarkSpace

Сообщение от DARKSIDER Посмотреть сообщение
Все перечисленные недочёты исправлю (кроме управления - я думаю, такое лучше оставить).


Это счётчик расстояния, пройденного пулей. У каждого орудия в игре есть свой параметр дальности стрельбы. Как только пуля пройдёт расстояние, заявленное в ТТХ установленного орудия, она пропадает.
//При выстреле сохранять откуда выстрел.
bullets[i].shot.x= ...
bullets[i].shot.y= ...

//а потом сравнивать
if(Math.abs(bullet[i].bullets[i].shot.x) > махBulletX )
  {
  } 
Думаю так правильнее, но а лучше длину вектора положение_пули-стартовое_положение_пули использовать
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 15.03.2015, 18:43   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: DarkSpace

Я для таких целей разработал минимальную Vec2 библиотеку для работы с 2D векторами: https://github.com/Maksims/tanx/blob...odules/vec2.js
И очень удобно использовать.
Для производительности не забудь recycle'ить векторы, вызывая .delete на вектор. Чтобы следующий .new его мог использовать.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
RegIon (15.03.2015)
Старый 15.03.2015, 20:14   #10
RblSb
Оператор ЭВМ
 
Аватар для RblSb
 
Регистрация: 25.08.2013
Адрес: Москва
Сообщений: 45
Написано 13 полезных сообщений
(для 28 пользователей)
Ответ: DarkSpace

Сообщение от Nex Посмотреть сообщение
Мой провайдер говорит что сайт находится в реестре запрещенных сайтов.
Что за провайдер? В реестрах пусто, странно это.
(Offline)
 
Ответить с цитированием
Старый 16.03.2015, 02:06   #11
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: DarkSpace

А на мобилках поиграется?

А не легче следить за длительностью жизни пули, чем за вычислением её пройденным расстоянием?

Есть правда не в том выражении - bullets[i].life=true;


function update_stars()
{
for (var i=0; i<=250; i++)
{
if (stars[i].x-mov_x<0) stars[i].x+=800;
if (stars[i].y-mov_y<0) stars[i].y+=600;
if (stars[i].x-mov_x>800) stars[i].x-=800;
if (stars[i].y-mov_y>600) stars[i].y-=600;
}
}
может ну их.. звёзды.. просто картинкой

пока что на Pentium4 ОЗУ=1.5ГБ GForce6000 не тормозит


Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 4 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.



как раз недавно, в связи с закрытием docs.google посмотрел проекты, так была онлайн мультиплеер космическая 2д-стрелялка
(решил её под свои нужды присвоить, но она без исходных кодов
думал сделаю из неё типа Counter-Strike 2D, типа в моём городе)

у тебя игрушка выглядит прилично, но, пожалуй, присваивать не буду << жёсткая шутка (а игра норм)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
RegIon (16.03.2015)
Старый 16.03.2015, 02:27   #12
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: DarkSpace

а врагов где найти?
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 4 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
(Offline)
 
Ответить с цитированием
Старый 16.03.2015, 05:40   #13
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: DarkSpace

Сообщение от RblSb Посмотреть сообщение
Что за провайдер? В реестрах пусто, странно это.
http://inetvl.ru/
(Offline)
 
Ответить с цитированием
Старый 16.03.2015, 06:15   #14
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: DarkSpace

Сообщение от LLI.T.A.L.K.E.R. Посмотреть сообщение
А на мобилках поиграется?

А не легче следить за длительностью жизни пули, чем за вычислением её пройденным расстоянием?

Есть правда не в том выражении - bullets[i].life=true;



может ну их.. звёзды.. просто картинкой

пока что на Pentium4 ОЗУ=1.5ГБ GForce6000 не тормозит


*** скрытый текст ***


как раз недавно, в связи с закрытием docs.google посмотрел проекты, так была онлайн мультиплеер космическая 2д-стрелялка
(решил её под свои нужды присвоить, но она без исходных кодов
думал сделаю из неё типа Counter-Strike 2D, типа в моём городе)

у тебя игрушка выглядит прилично, но, пожалуй, присваивать не буду << жёсткая шутка (а игра норм)
Не поиграться на мобилах - клавы нет и не влезает в экран.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 16.03.2015, 08:11   #15
DARKSIDER
AnyKey`щик
 
Регистрация: 14.03.2015
Сообщений: 5
Написано 2 полезных сообщений
(для 5 пользователей)
Ответ: DarkSpace

Сообщение от LLI.T.A.L.K.E.R. Посмотреть сообщение
а врагов где найти?
Проще всего - при выполнении миссий. А так, они спавнятся рандомно по всей карте.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 11:03.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com