Комментарии 24
+6
Кстати.
А как лучше всего в данном случае отрисовывать землю?
А как лучше всего в данном случае отрисовывать землю?
+4
Можно на отдельном слое:
Если хотите заняться этим, то могу консультировать и помочь.
libcanvas.createLayer( 'ground' )
Если хотите заняться этим, то могу консультировать и помочь.
0
Окей, если появятся вопросы — то обращусь
0
Вопрос не в слое :)
Там же тысячи взаимодействующих объектов — клеточным автоматом что ли обрабатывать? :)
Там же тысячи взаимодействующих объектов — клеточным автоматом что ли обрабатывать? :)
0
Таки объясните?) Я именно в эту реализацию не играл, но не вижу проблем)
0
Имею в виду вообще большие количества маленьких точек, подчиняющихся физическим законам. Разве моделирование их поведения не требует каких-то ёмких вычислений?
0
Ну, вроде, там особо сложных вычислений нету. В видео
Scorched Earth — Game Play песчинки падают по принципу «под мной нету песчинки — я должна опуститься на пиксель вниз». Это хорошо видно в 1:15. Берем все пиксели в радиусе взрыва и пересчитываем их. В современных флешках вообще векторная земля.
Scorched Earth — Game Play песчинки падают по принципу «под мной нету песчинки — я должна опуститься на пиксель вниз». Это хорошо видно в 1:15. Берем все пиксели в радиусе взрыва и пересчитываем их. В современных флешках вообще векторная земля.
0
подскажете как игра называется? по скрину вспомнил, что играл давным-давно на спектруме, может где-то на эмуляторе найду =)
0
Какие темы вас интересуют? Если будут желающие — я их опишу.
Интересует возможность создания «серьезных» игр — т.е. не уровня Pong'а, а уровня по крайней мере старых DOS'овских игрушек — вроде тех же Space Quest, Kyrandia, и Dune 2.
И насколько я понимаю в возможностях создания полноценных MMOG Канвас пока проигрывает тем же HTML5+CSS3 (см. Aves Engine)?
+1
Осторожнее, можно нарваться на холивар
+1
Это холиварный вопрос. Но, имхо, не проигрывают. Aves Engine просто не умеют готовить Canvas.
0
Да. Хочется более серьезных туториалов. Может не таких серьезных как Dune 2, но вот про создание Lunar Lander я бы почитал с удовольствием.
+3
Ну Lunar Lander не намного серьёзнее пинг-понга)
0
Не сказал бы. По крайней мере присутствуют операции с векторами и примитивная физика. А в понге (в этом конкретно) нет ничего кроме тупо смены направления движения шарика при соударении с битой или со стеной.
0
Просчёт столкновения с полем сделать очень легко. Это ведь всего-лишь набор прямых. Мы их храним в массиве:
А потом, кажде обновление кадра, проверяем расстояние корабля до линии
Естественно,
Это, естественно, если использовать LibCanvas
var lines = [
new Line(10, 10, 20, 20),
...
new Line(710, 10, 720, 20)
];
А потом, кажде обновление кадра, проверяем расстояние корабля до линии
Ship = atom.Class({
[...]
collision: function (lines) {
for (var i = lines.length; i--;) {
if (lines.distanceTo( this.position ) < this.radius) {
return true;
}
}
return false;
}
});
distanceTo
относительно требовательна к ресурсам, потому можно оптимизировать за счёт того, что предварительно проверять, находится ли корабль достаточно низко:Ship = atom.Class({
[...]
collision: function (lines) {
if ( this.position.y > this.minCollisionHeight ) {
return false;
}
for (var i = lines.length; i--;) {
[..]
}
});
Естественно,
minCollisionHeight
вычисляется один раз перед началом приложения. Достаточно пройти все отрезки, найти самый высокий Y им приплюсовать к ней радиус корабля:Ship = atom.Class({
[...]
genMinCollisionHeight: function (lines) {
var max = 0;
for (var i = lines.length; i--;) {
max = Math.max( max, lines[i].y );
}
return max + this.radius;
}
});
Это, естественно, если использовать LibCanvas
+1
Черт, я подсел играть в понг сам с собой:)
Заметил, что даже несмотря на высокий ФПС (около 60) быстродвижущиеся объекты на канвасе (в вашем случае шарик) двигаются как-то малость дергано и неравномерно. Я, правда, ковырял библиотеку cake.js, думал может это она тормознутая, но у вас вот то же самое с шариком.
Заметил, что даже несмотря на высокий ФПС (около 60) быстродвижущиеся объекты на канвасе (в вашем случае шарик) двигаются как-то малость дергано и неравномерно. Я, правда, ковырял библиотеку cake.js, думал может это она тормознутая, но у вас вот то же самое с шариком.
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как написать ПингПонг при помощи LibCanvas