Jump to content

Первая игра на Canvas


psywalker
 Share

Recommended Posts

Приветствую камрады!

Недавно взялся за изучение Canvas. Отдельное спасибо хочу сказать Great Rash-у за то, что очень сильно помог мне в освоении этого предмета. Немного встав на ноги, я решил попробовать сделать на нём какую нибудь игру. Выбор пал в пользу старого, доброго Арканоида. То, что у меня получилось, не вызывает особой радости, но доля счастья у меня всё же присутствует)))

Выставляю на всеобщий суд, ради того, чтобы услышать побольше критики, замечаний, указания на ошибки по коду и т. д. Если найдётся самоубийца, который заглянет в код, полазиет там конкретно и вынесет замечания, буду очень рад :blush:

А вот что на данный момент не нравится самому .

1. Очень много переменных создано для решения этой задачи. Считаю это грязью, поэтому хотелось бы услышать пути обхода этой штуки. Вообще интересно узнать, нормально ли это или нет? И как делать правильно?

2. Я ограничил ширину, высоту, кол-во столбцов, строк и скорость шарика, т.е. есть минимум и максимум. Правильно ли я сделал и если да, то может быть ограничения неправильные?

3. Вообще как-то много кода получилось для данной задачи (правда там много нюансов, но всё же). Как думаете?

В общем приветствуются любые замечания, жёсткая критика и указания на любые ошибки :)

http://psywalker.ru/Forum/JS/Primitive/Dom...Arcanoid/1.html

Link to comment
Share on other sites

Прикольно, не сразу понял что доску двигать надо постоянно держа левую кнопку мыши, лучше б не держать а просто мышь в право влево двигать.

Первый уровень очень эстонский, до второго терпения не хватило :blush:

Интересный момент с реакцией: если шарик на пол корпуса ниже доски и его подцепить, то он будет катиться по доске (а точнее погружённый в неё) и не отпрыгнет не почём, тока свалится. Логичней было б если он уже ниже поверхности, то всё - минус жизнь.

Link to comment
Share on other sites

Прикольно, не сразу понял что доску двигать надо постоянно держа левую кнопку мыши, лучше б не держать а просто мышь в право влево двигать.

Да, это моя затея, я именно такой способ выбрал. Чисто, чтобы было труднее реализовывать и не повторять за другими.

Первый уровень очень эстонский, до второго терпения не хватило :)

Согласен, поэтому и сделал 6 уровней)

Интересный момент с реакцией: если шарик на пол корпуса ниже доски и его подцепить, то он будет катиться по доске (а точнее погружённый в неё) и не отпрыгнет не почём, тока свалится. Логичней было б если он уже ниже поверхности, то всё - минус жизнь.

Ааа, понял, видимо это происходит на маленькой скорости, на большей врядли удастся поймать там шарик :blush:

А вообще хорошее замечание, плюсую)

Link to comment
Share on other sites

Основная ошибка геймплея в том, что шарик всегда отскакивает на 45 градусов, поэтому играть неинтересно. Т.е. влиять на траекторию полёта шарика игрок не может. Обычно, в арканойде делают зависимость угла рикошета от того точки соприкосновения с платформой. Остальных объектов уровня это тоже касается.

Link to comment
Share on other sites

Еще встречал вариант Арканоида, в котором угол отскока менялся перемещением платформы в момент соприкосновения. Вроде настольного тенниса, где не просто подставляешь ракетку под шарик, но и делаешь ей движение.

Link to comment
Share on other sites

Короче, psywalker, тебе есть куда расти :blush:

Я б для начала допилил так чтоб и в это было интересно играть. Т.е. реализовал бы паттерны, подсчёт очков, бонусы, по крайней мере 3 вида кирпичей (простые, разбивающиеся с 2 раз, неразрушаемые). Убрал бы форму, размеры игрового поля должен определять программер, а не юзер (ну или сделать выбор более простым - маленькое, среднее, большое). Поработал бы над дизайном: красивая бита, шарик, картинки для кирпичей.

А потом уже можно задуматься над версией 2.0 где крутить физику (отскоки и т.п.)

Link to comment
Share on other sites

Спасибо. Со всеми согласен. Свой вариант считаю детским и далекоо недоработанным. Многое я не смог учесть, в силу своего малого опыта. Особенно я ничего не понимаю в геометрии и правильных отскоках, для меня это нереальная сложность вообще :blush:

Link to comment
Share on other sites

Не стоит прибедняться, результат и так получился достойный, тем более для первого раза. Это уже мы размечтались, сразу захотели нереально крутую игруху.

Вот что удалось нарыть похожего, можно посмотреть код для сравнения.

Примитивный

http://js1k.com/2010-first/demo/598

С правильной физикой

http://awilum.webdevart.ru/games/arcanoid/...s/arcanoid.html

Самый красивый

http://petermares.com/samples/paddlegame/paddleGame.html

Link to comment
Share on other sites

А я считаю, если человек (тем более имеющий не большой опыт в подобных штуках) достоин уважения.

Молодца Макс!

Спаасибо дружище, я старался :)

Не стоит прибедняться, результат и так получился достойный, тем более для первого раза. Это уже мы размечтались, сразу захотели нереально крутую игруху.

Согласен, для меня это прогресс, но по факту это УГ

Вот что удалось нарыть похожего, можно посмотреть код для сравнения.

Примитивный

http://js1k.com/2010-first/demo/598

С правильной физикой

http://awilum.webdevart.ru/games/arcanoid/...s/arcanoid.html

Самый красивый

http://petermares.com/samples/paddlegame/paddleGame.html

Ухтыы, вот это крутые штуки, до таких ещё далекоо чувстсвуюю

У примитивного, кстати, тоже физика "правильная" и весит он всего 1к...

psywalker, я, кстати, уже придумал как левелы генерить. Так что как допиливать соберешься велкам :)

Отлично, как что, сразу зайду в гости :)

Link to comment
Share on other sites

Там нет правильной физики, и она там не нужна, если сделать такую игру где шарик будет прыгать по всем законам физики в неё играть никто не будет.

Воат, а Максу зачет.

Link to comment
Share on other sites

Мужики, не волнуйтесь, мы щас с Great Rashом готовим второй вариант, там физика намечается, паузы, и другие вкусности. Постараюсь учесть все замечания в этот топике. :)

Воат, а Максу зачет.

Пока не за что. <_<

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy