Jump to content

Arcanoid 2.5 Тестовый вариант


psywalker
 Share

Recommended Posts

Ubuntu 10.04, Athlon 7750+, 2 Гб

FF последний

Браузер отъел около 4% процессора.

С клавиатурой такая проблема: если нажать быстро влево-вправо, платформа дёргается и замирает до отпуская и нового нажатия кнопки. А на работе просто при активном движении мыши подвисала картинка миллисикунд на 100-200, потом играла дальше.

Link to comment
Share on other sites

Ха, игрулю можно заоптимизировать раз в надцать по скорости.

Зачем каждую итерацию определять коллизии? Зачем делать сложные вычисления, если можно все кешировать?

Опа! Вот этого ещё не было. Очень интересно, что ты имеешь ввиду?

1. Что ты имеешь ввиду под коллизиями?

2. Почему ты считаешь, что у нас делаются сложные вычисления, мы вроде сократили их до максимума? О каких вычислениях идёт речь?

3. Расскажи пожалуйста о кешировании, что это такое и как это можно применить в нашем случае?

Link to comment
Share on other sites

Опа! Вот этого ещё не было. Очень интересно, что ты имеешь ввиду?

1. Что ты имеешь ввиду под коллизиями?

Ты сам игру писал?

Коллизией называют нахождение одного предмета внутри другого. В мире цифр это нормально, но в реальности вы не можете пройти сквозь стену.

2. Почему ты считаешь, что у нас делаются сложные вычисления, мы вроде сократили их до максимума? О каких вычислениях идёт речь?

3. Расскажи пожалуйста о кешировании, что это такое и как это можно применить в нашем случае?

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

3. Шарик сталкивается с некими поверхностями, верно? Шарик не может сталкиваться с блоком, который находится за другими блоками. В итоге мы можем нарисовать конечную линию, с которой может сталкиваться шарик. Линия состоит из вертикальных и горизонтальных отрезков. Это можно представить в виде двух массивов, в которых будут записаны в качестве индекса координаты или по иксу или по игреку, а наличие значения будет говорить про существование линии.

Например вот так

var y = [];
y[10] = 1;
y[11] = 1;
y[12] = 1;
...

Дальше проверка на коллизию будет очень проста if( y[ ball.y ] ) ...

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

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

Link to comment
Share on other sites

<!--quoteo(post=188567:date=11.3.2011, 23:26:name=psywalker)--><div class='quotetop'>QUOTE (psywalker @ 11.3.2011, 23:26) <a href="index.php?act=findpost&pid=188567"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Опа! Вот этого ещё не было. Очень интересно, что ты имеешь ввиду?

1. Что ты имеешь ввиду под коллизиями?<!--QuoteEnd--></div><!--QuoteEEnd-->

Ты сам игру писал?

Коллизией называют нахождение одного предмета внутри другого. В мире цифр это нормально, но в реальности вы не можете пройти сквозь стену.

<!--quoteo(post=188567:date=11.3.2011, 23:26:name=psywalker)--><div class='quotetop'>QUOTE (psywalker @ 11.3.2011, 23:26) <a href="index.php?act=findpost&pid=188567"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->2. Почему ты считаешь, что у нас делаются сложные вычисления, мы вроде сократили их до максимума? О каких вычислениях идёт речь?

3. Расскажи пожалуйста о кешировании, что это такое и как это можно применить в нашем случае?<!--QuoteEnd--></div><!--QuoteEEnd-->

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

3. Шарик сталкивается с некими поверхностями, верно? Шарик не может сталкиваться с блоком, который находится за другими блоками. В итоге мы можем нарисовать конечную линию, с которой может сталкиваться шарик. Линия состоит из вертикальных и горизонтальных отрезков. Это можно представить в виде двух массивов, в которых будут записаны в качестве индекса координаты или по иксу или по игреку, а наличие значения будет говорить про существование линии.

Например вот так

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->var y = [];

y[10] = 1;

y[11] = 1;

y[12] = 1;

...<!--c2--></div><!--ec2-->

Дальше проверка на коллизию будет очень проста if( y[ ball.y ] ) ...

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

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

Понял. Спасибо большое за идею. Завтра первым же делом покажу её Great Rash:)

Чего то не работает! Я палку в сторону а он бьется об зад и дальше играет сам с собой но никак не кончит

Ты о чём?

Link to comment
Share on other sites

Ну чо, скорость работы в ИЕ9, примерно как в Опере. Т.е. тормоза присутствуют, но жить можно.

Ща psywalker начнет рвать волосы на голове :D Не рви, идеально все равно не оптимизируешь.

Протестил одну демку в ИЕ9 и Хроме... OMG ИЕ9 - УГ! Даже аппаратное ускорение не помогает... Проблему (еще из ИЕ8) с выполнением скрипта в цикле так и не решили :D

Link to comment
Share on other sites

Ну чо, скорость работы в ИЕ9, примерно как в Опере. Т.е. тормоза присутствуют, но жить можно.

Ща psywalker начнет рвать волосы на голове :) Не рви, идеально все равно не оптимизируешь.

Ща устанавливаю себе девятку, протестю нагрузку проца. Но кстати странно насчёт Оперы. Ведь по идее браузер то вроде по скорости на первых местах. Короче ща протестим.

Жаль, да, что идеально нельзя. Но тут уже мне кажется всё зависит от того, что мир пока не готов встретить кэнвас во всей его красе. :D

Протестил одну демку в ИЕ9 и Хроме... OMG ИЕ9 - УГ! Даже аппаратное ускорение не помогает... Проблему (еще из ИЕ8) с выполнением скрипта в цикле так и не решили :(

Гыыы, ну а чо ты хотел то, чтобы они тебе молнию забабахали чтоли))) IE всегда был отстоем по всем параметрам, так что марку свою держит. Молодец. :D

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Я предлагаю так сделать под ИЕ. Т.е. кто решил поиграть под ИЕ, у того сразу вываливается табличка с посылающей надписью, происходит конкретное зависалово, а в конце спектакля синий экран смерти нахер :D

Link to comment
Share on other sites

  • 3 months later...

psywalker, немного критики.

1. Шарик отскакивает отовсюду и после полного освобождения поля нет ничего. Шарик все скачет.

2. Скорость маловата. Надо увеличить как минимум в три раза (при нынешней скорости играть скучно).

Игра довольно легкая и не грузит процессор. В ФФ5 игра открыта в 15 вкладках и все нормально работает. В ФФ4 та же нагрузка, но при 12 вкладках. А в 3.6 версии та же производительность ощущается только на 8 вкладках.

Link to comment
Share on other sites

psywalker, немного критики.

1. Шарик отскакивает отовсюду и после полного освобождения поля нет ничего. Шарик все скачет.

2. Скорость маловата. Надо увеличить как минимум в три раза (при нынешней скорости играть скучно).

Игра довольно легкая и не грузит процессор. В ФФ5 игра открыта в 15 вкладках и все нормально работает. В ФФ4 та же нагрузка, но при 12 вкладках. А в 3.6 версии та же производительность ощущается только на 8 вкладках.

Ухты! Спасибо за критику дружище, если честно, то не ожидал, что кто-то ещё заглянет в этот топик. :D

Link to comment
Share on other sites

Вопрос: блоки(при ударе шариком в последний раз) исчезают из памяти или просто закрашиваются в цвет фона? Т.Е. блок это объект который есть в памяти и потом удаляется или они там всегда?

Link to comment
Share on other sites

Вопрос: блоки(при ударе шариком в последний раз) исчезают из памяти или просто закрашиваются в цвет фона? Т.Е. блок это объект который есть в памяти и потом удаляется или они там всегда?

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

Link to comment
Share on other sites

Кто всё-таки автор?? Psywalker или GreatRash??

Автор я, но Great Rash мне очень сильно помог, просто невероятно сильно, я бы даже сказал. Всё объяснил, разжевал, и научил. За что ему огромное спасибище и уважуха :boast:

Link to comment
Share on other sites

Кто всё-таки автор?? Psywalker или GreatRash??

Автор я, но Great Rash мне очень сильно помог, просто невероятно сильно, я бы даже сказал. Всё объяснил, разжевал, и научил. За что ему огромное спасибище и уважуха :boast:

Не пойму зачем там так много canvas'ов?? один на игру, один на синюю полоску снизу, а зачем ещё два??

Link to comment
Share on other sites

Кто всё-таки автор?? Psywalker или GreatRash??

Автор я, но Great Rash мне очень сильно помог, просто невероятно сильно, я бы даже сказал. Всё объяснил, разжевал, и научил. За что ему огромное спасибище и уважуха :boast:

Не пойму зачем там так много canvas'ов?? один на игру, один на синюю полоску снизу, а зачем ещё два??

Чтобы не перерисовывать сразу всё, а только то, что нужно и в нужный момент B)

Link to comment
Share on other sites

Кто всё-таки автор?? Psywalker или GreatRash??

Автор я, но Great Rash мне очень сильно помог, просто невероятно сильно, я бы даже сказал. Всё объяснил, разжевал, и научил. За что ему огромное спасибище и уважуха :boast:

Не пойму зачем там так много canvas'ов?? один на игру, один на синюю полоску снизу, а зачем ещё два??

Чтобы не перерисовывать сразу всё, а только то, что нужно и в нужный момент B)

А сколько всего canvas'ов?? Я правильно понимаю, что через функцию buffer их создаётся очень много??

Link to comment
Share on other sites

Кто всё-таки автор?? Psywalker или GreatRash??

Автор я, но Great Rash мне очень сильно помог, просто невероятно сильно, я бы даже сказал. Всё объяснил, разжевал, и научил. За что ему огромное спасибище и уважуха :boast:

Не пойму зачем там так много canvas'ов?? один на игру, один на синюю полоску снизу, а зачем ещё два??

Чтобы не перерисовывать сразу всё, а только то, что нужно и в нужный момент B)

А сколько всего canvas'ов?? Я правильно понимаю, что через функцию buffer их создаётся очень много??

Нет, всего кэнвасов кажись три, для кирпичей, для биты с шаром и для нижней панели. А остальное - это кэши, т.е. сами кирпичи, бита, шарик и т.д

Link to comment
Share on other sites

Кто всё-таки автор?? Psywalker или GreatRash??

Автор я, но Great Rash мне очень сильно помог, просто невероятно сильно, я бы даже сказал. Всё объяснил, разжевал, и научил. За что ему огромное спасибище и уважуха :boast:

Не пойму зачем там так много canvas'ов?? один на игру, один на синюю полоску снизу, а зачем ещё два??

Чтобы не перерисовывать сразу всё, а только то, что нужно и в нужный момент B)

А сколько всего canvas'ов?? Я правильно понимаю, что через функцию buffer их создаётся очень много??

Нет, всего кэнвасов кажись три, для кирпичей, для биты с шаром и для нижней панели. А остальное - это кэши, т.е. сами кирпичи, бита, шарик и т.д

Минусов только два: отсутствие "штрафов" когда мяч промахивается мимо платформы и когда, все кирпичи сбиты нужно остановить игру, выведя уведомление..

Link to comment
Share on other sites

Минусов только два: отсутствие "штрафов" когда мяч промахивается мимо платформы и когда, все кирпичи сбиты нужно остановить игру, выведя уведомление..

Да вот эта, вторая часть Арканоида неинтересная вообще. Мы хотели было начать делать третью, там бомба намечалась :D , но что-то не сраслось, дела, да дела.

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