Как стать автором
Обновить

Комментарии 54

Главное улучшение — убрать скриллинг, который делает браузер при нажатии на используемые клавиши…
Поправил.
chrome 10.0.634.0 dev, осталось… экран дёргается на кнопках вверх/вниз
Переделал.
8.0.552.237, все нормально.
opera 11 сборка 1156 linux — проблема присутствует
Бейте меня, но единственное кроссбраузерное решение проблемы, к которому я пришел — это запретить все стандартные функции клавиш на странице через .preventDefault()
Если запрещать только для определенных кейкодов, то почему-то работает через раз.
Ах, да, и где-то прочитал что у оперы проблемы с onkeydown/onkeyup, так что для нее специально добавил onkeypress =)
Пока реализовал только в исправленной версии игры (Xenohunt+, она там рядом), перенесу также в оригинал.
Один раз появилась следующая радость (отключите нотисы или таки задайте начальное значение): Notice: Undefined index: score in /home/a/apeka/public_html/p-html/scroller.php on line 30

Второй раз закончилась игра, когда корабль был на 90% ниже нижней границы, после показа геймовера на экране показывается только движущееся небо (без «врагов» и корабля)
а вот сейчас, внезапно появившийся круг расширился до всего игрового окна и оно стало полностью белым.

Сыровато всё же, но за статью спасибо.
Значение задал, спасибо.
А как вы, извините, нижнюю границу-то смогли преодолеть?
Ну как-то получилось… летел, опустил корабль вниз и вот корабль уже виден на 10% :)
И у меня появилась. Видимо появляется, когда впервые заходишь. Подозреваю, что там стоит
$_COOKIE['score'], которые вы еще не указали.
Точно. Появляется при первом заходе.

Notice: Undefined index: score in /home/a/apeka/public_html/p-html/scroller.php on line 47
habrahabr: 2147483648
Печенье указывается, но хром почему-то его не подцепляет.
Сглупил, вы правы =)
прописав в адресной строке javascript:score=1000; можно слегка считерить.
=)
Да у меня хром сам считает, даже стрелять не надо. Уже за 13к перевалило, все жду астероид.
Да, по-хорошему надо было использовать инкапсуляцию =)
По-хорошему, с этим ничего не сделаешь =( Инкапсуляция — только видимость защиты.
лечится инкапсуляция просто:
в той же адресной строке javascript:for (var i = 1; i < 50; i++){ p.scoreInc()};
=)
Уфф, как-то вылетело из головы что можно использовать циклы. Даже не знаю что на это ответить. Ограничение количества очков в единицу времени?
Не будет лень, реализую.
Не парьтесь. В JavaScript нету приватных переменных. То, что объявляется через var — не приватно, к нему можно получить доступ с лёгкостью. На крайний случай, я могу поставить breakpoint в firebug и вручную поменять значение на любое. И даже если не брать во внимание изменение значения вручную — я могу посмотреть, какие заголовки отправляются на сервер для значения в 100 очков и отправить заголовок со значением в 100000 очков.
Ок, пойду учить матчасть.
А картинка в начале статьи к чему? Ожидал увидеть ее в игре.
Картинка для привлечения внимания. Насколько могу судить, она на холсте (canvas). Хотел поставить скриншот, но он выглядел бы уродливо на белом фоне.
Тормозит жестоко…
Неплохой пример, спасибо.
Одно только пожелание: побольше объяснительных комментариев в коде.
НЛО прилетело и опубликовало эту надпись здесь
От кого/чего? Читеров?
НЛО прилетело и опубликовало эту надпись здесь
Какая «защита исходника», о чём вы?
НЛО прилетело и опубликовало эту надпись здесь
И что вы предлагаете?
НЛО прилетело и опубликовало эту надпись здесь
Чтоб на пиво заработать? На больше не заработаете, если предположить что игра такая большая, то ее зарегистрируют как продукт. И вот когда вы почувствуете безнаказанность, придут накажут за нарушение авторских прав значительно большей суммой чем заработали. Почему только на пиво? Потому что больше вы таким способом вряд ли заработаете, без официальной регистрации «игры» как некой компании, которой пользователи захотят переводить деньги.
А в целом издержки есть везде…
НЛО прилетело и опубликовало эту надпись здесь
Нет. Могу предположить что все эти игры с серверной частью, где есть persistent storage. Соответственно получить это в полном объеме не сможете. Игры чисто на клиенте за такую цену можете показать?
НЛО прилетело и опубликовало эту надпись здесь
Понятно)
1. Вы разницу между призом и ценой за игру видите?
2. Где там игры что год писались? Или хотя бы полгода…
3. Если «возьмете» чужую игру подделаете под свою. Вы как ее пиарить будете на серче?)) И сразу все бабло понесут как минимум по $4к))
НЛО прилетело и опубликовало эту надпись здесь
1. Киньте!!!
НЛО прилетело и опубликовало эту надпись здесь
=))
А разве можно защитить flash- или java-код?
НЛО прилетело и опубликовало эту надпись здесь
Это фантастика. flash и java код можно защитить ровно на таком же уровне, как и javascript
Вот пример: habrahabr.ru/blogs/java/112165/
НЛО прилетело и опубликовало эту надпись здесь
Сколько из них — необратимых? Ни одного! Цитата из вашего топика:

Однако, если за исследование вашего SWF файла возьмётся профессионал, то, вероятно, он не остановится перед препятствиями и доведёт дело до конца, особенно, если он мотивирован интересной задачей или достаточным денежным вознаграждением.


На конференции разработчиков он-лайн игр профессиональный флешер говорил, что регулярно изучает код конкурентов и никакие ухищрения им не помогают

Простая обфускация Javascript настолько же действенна, как и все методы защиты флеша.

Единственный реальный способ защитить хоть как-то приложение(javascript, java, flash) — чтобы важная его часть была на сервере.
Вы заголовок то читали? Способы «защиты» flash-приложений
Защита в кавычках видите? А почему она в кавычках не думали?
Он не думал. Он троллил
НЛО прилетело и опубликовало эту надпись здесь
«Ломают сейчас все». «Сейчас» нужно заменить на «всегда».
Если предположить что игра стоит $5к, как вы говорите, то конечно будут ломать. А как же иначе, все хотят получить кусок пирога. Защитить можно только одним способом — не давать код. Обфускация или какая-то своя проприетарная шифрация — это все временная защита. ИМХО эффективна только на мелких программах, когда усилия не стоят выгоды, все.
жесть ) это лучше никому не показывать вообще.
На фаерфоксе вполне ничего. А на других браузерах какой-то ад, извините.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации