Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№10128-11-2005 07:57:54

Skat
Участник
 
Группа: Members
Откуда: Южно-Сахалинск
Зарегистрирован: 10-10-2004
Сообщений: 894

Re: Firefox VS Opera II: в поисках истины

http://forum.mozilla.ru/viewtopic.php?id=6492
И как можно говорить после этого, что у Оперы канвас быстрее, да и вообще правильный.

Отсутствует

 

№10228-11-2005 08:12:37

Viper
Участник
 
Группа: Extensions
Откуда: Нижний Новгород
Зарегистрирован: 24-12-2004
Сообщений: 2092

Re: Firefox VS Opera II: в поисках истины

Arris В about:config :). Что конкретно? Должно работать по умолчанию..


---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

Отсутствует

 

№10328-11-2005 10:08:08

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
Веб-сайт

Re: Firefox VS Opera II: в поисках истины

И как можно говорить после этого, что у Оперы канвас быстрее, да и вообще правильный.

После того, как кто-то там сделал так, чтобы это не отображалось на Опере?


Ядрёная консоль делает меня сильней!

Отсутствует

 

№10428-11-2005 12:00:04

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

После того, как кто-то там сделал так, чтобы это не отображалось на Опере?

Прогрессирует фобия... :) Найдите там? Где сказано, что "если зайдет опера, то ей ничего не показывать" ? В опере постоянно совершенно стандартные вещи не работают то тут то сям. А опероманы это оправдывают всемирным заговором. Карма у нее такая.

Отредактировано Почесал (28-11-2005 12:00:57)

Отсутствует

 

№10528-11-2005 12:14:22

Viper
Участник
 
Группа: Extensions
Откуда: Нижний Новгород
Зарегистрирован: 24-12-2004
Сообщений: 2092

Re: Firefox VS Opera II: в поисках истины

Fx отображает некоторые сайты не так, как IE/Opera, т.к.

кто-то там сделал так, чтобы это не отображалось на

:) И нечего жаловаться на это.


---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

Отсутствует

 

№10628-11-2005 14:14:41

Arris
Участник
 
Группа: Members
Зарегистрирован: 27-11-2005
Сообщений: 8

Re: Firefox VS Opera II: в поисках истины

Viper

В about:config smile. Что конкретно? Должно работать по умолчанию..

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

Отсутствует

 

№10728-11-2005 14:33:49

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

В ФФ, на одних форумах работает, на других - нет. На обычных сайтах вроде нигде не работает.

Все работает. Не видел еще ни одного сайта, где не работает.

Отсутствует

 

№10828-11-2005 14:41:37

Xeningem
Участник
 
Группа: Members
Зарегистрирован: 08-09-2005
Сообщений: 412

Re: Firefox VS Opera II: в поисках истины

http://forum.mozilla.ru/viewtopic.php?id=6492И как можно говорить после этого, что у Оперы канвас быстрее, да и вообще правильный.

Сдаётся мне, что код весьма кривой... Пойти, что ли поправить?


Everyone is always connected. Serial Experiments Opera.

Отсутствует

 

№10928-11-2005 14:42:10

Arris
Участник
 
Группа: Members
Зарегистрирован: 27-11-2005
Сообщений: 8

Re: Firefox VS Opera II: в поисках истины

Почесал

Все работает. Не видел еще ни одного сайта, где не работает.

www.journals.ru
Это как минимум. Ну, и для меня самое важное. Еще были какие-то, но я сейчас не вспомню...

Отсутствует

 

№11028-11-2005 14:43:35

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

Сдаётся мне, что код весьма кривой... Пойти, что ли поправить?

Конечно кривой. Если Опера не умеет работать нормально с canvas, ВСЕГДА виноват код, криворукие программисты, билл гейтс, мать тереза, владимир путин и саддам хусейн, только не опера! Ведь программисты Оперы боги, они не могут ошибаться! У них всегда все идеально! В топку этот фаркрай!

Отсутствует

 

№11128-11-2005 14:44:56

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

Это как минимум. Ну, и для меня самое важное. Еще были какие-то, но я сейчас не вспомню...

Дак ясен пень, вы в Page Info заглядывали?
Pragma: no-cache
О каком сохранении тут может идти речь?

Сервер ясно говорит, что ничего не кэшировать.

Отредактировано Почесал (28-11-2005 14:51:17)

Отсутствует

 

№11228-11-2005 14:53:00

Arris
Участник
 
Группа: Members
Зарегистрирован: 27-11-2005
Сообщений: 8

Re: Firefox VS Opera II: в поисках истины

Почесал

Блин, вы в Page Info заглядывали?
no-cache
О каком сохранении тут может идти речь?

Сервер ясно говорит, что ничего не кэшировать.

Ну, т.е. ФФ не умеет этого делать. ОК, спасибо :) У Оперы все еще остается один +. Ну, лично для меня :)

Отсутствует

 

№11328-11-2005 15:00:58

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

Ну, т.е. ФФ не умеет этого делать. ОК, спасибо smile У Оперы все еще остается один +. Ну, лично для меня smile

Firefox умеет это там, где это разрешено, например тут, или там на яндексе. А, если то, что опера не умеет работать с META-данными является +, то я не знаю. Вы не из Зазеркалья, что для Вас минусы являются плюсами, а плюсы являются минусами? :)

Отсутствует

 

№11428-11-2005 15:18:46

Arris
Участник
 
Группа: Members
Зарегистрирован: 27-11-2005
Сообщений: 8

Re: Firefox VS Opera II: в поисках истины

Почесал

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

Все в мире относительно ;)
Есть мне какая-то фишка нравится, то пусть она хоть багом будет. Если в ФФ нет того, что мне нравилось в Опере, то ФФ ставлю -, а Опере + :)

Отсутствует

 

№11528-11-2005 16:43:11

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
Веб-сайт

Re: Firefox VS Opera II: в поисках истины

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

Опера умеет обходить no-cache — fq-zq-zq, не будем признавать этого преимущества, какая гадость, будем мучиться, но так, как хотел создатель. Может, тогда и окна всплывающие не блокировать? Зачем? В коде страницы ясно написано...

Отредактировано Sterkrig (28-11-2005 16:46:20)


Ядрёная консоль делает меня сильней!

Отсутствует

 

№11628-11-2005 16:49:09

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

Опера умеет обходить no-cache — fq-zq-zq, не будем признавать этого преимущества, какая гадость, будем мучиться, но так, как хотел создатель хотел. Может, тогда и окна всплывающие не блокировать? Зачем? В коде страницы ясно написано...

Что значит "умеет обходить"? IE значит тоже "умеет обходить" SVG или там MathML, в чем его явное преимущество? Бред-то не порите.

Если админ не умеет настраивать сервер, то у него низкая квалификация или у него были "веские" причины так делать. Но разработчикам оперы на пользователей плевать с колокольни, или они этого не знают, а так же им плевать на WWW, плевать на всех вокруг и всё вокруг себя, они видят только жирный доллар или что там у них в Норвегии, крона. И после этого еще пользоваться их поделием?

Да, а еще виндовс "умеет обходить" ext3, mirc "умеет обходить" юникод, а опера "умеет обходить" RTF?. Теперь недоработки у нас так называются? Ой, совсем заврались опероманы... Сами же в себе путаются.
И кто еще кричал о следовании стандартам?

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

no-cache: This directive indicates cached information should not be used and instead requests should be forwarded to the origin server.

Ай-ай-ай, какие плохие разработчики оперы, они даже не знают, что такое no-cache и просто его игнорируют. И после этого как можно назвать оперу не иначе, как поделкой? Если ее пишут непонятно кто, которые даже элементарщину не знают.

Отредактировано Почесал (28-11-2005 17:00:53)

Отсутствует

 

№11728-11-2005 16:53:51

Azathoth
Участник
 
Группа: Extensions
Откуда: Хабаровск
Зарегистрирован: 02-02-2005
Сообщений: 2692

Re: Firefox VS Opera II: в поисках истины

Sterkrig

Опера умеет обходить no-cache — fq-zq-zq, не будем признавать этого преимущества, какая гадость, будем мучиться

Если разработчик сайта использует "Pragma: no-cache", значит у него на то есть причины. И вероятнее всего в том, чтобы вам же, как пользователю, было удобнее на тех страницах, содержимое которых динамическое и часто по различным причинам меняется.
Опера не следует заданному стандартному параметру. Т.е. не соответствует стандарту.

Единственное, что меня иногда раздражает — это подозрительная двойственность вашых стандартов


Как разработчик могу сказать что не единожды no-cache мои нервы берег.

Отредактировано Athathoth (28-11-2005 17:14:10)


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

Отсутствует

 

№11828-11-2005 17:09:47

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

Опера еще и шорткаты сперла с фаерфокс. Фигли она на Ctrl+T новую вкладку открывает? А на контрол+н новое окно? Что-то часто она с лисы переть начала все. Я уже счет потерял.


Поиграл в канвас тот на опере. Мдаааааа... Самый быстрый в мире браузер тормозит как угорелый, еще и всячески глючит.

Отредактировано Почесал (28-11-2005 17:11:36)

Отсутствует

 

№11928-11-2005 18:02:42

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
Веб-сайт

Re: Firefox VS Opera II: в поисках истины

Почесал

no-cache: This directive indicates cached information should not be used and instead requests should be forwarded to the origin server

Это откуда?

Опера еще и шорткаты сперла с фаерфокс. Фигли она на Ctrl+T новую вкладку открывает? А на контрол+н новое окно? Что-то часто она с лисы переть начала все. Я уже счет потерял.

Слушайте, я с вами со смеху помру. Это что, идея такая большая? Вы хотите Ctrl-N и Ctrl-T запатентовать? 4-:Е Мне это не нужно, я это обойду. А вот я с ффф мучаюсь, потому что не могу ничего под себя переиначить.

Поиграл в канвас тот на опере. Мдаааааа... Самый быстрый в мире браузер тормозит как угорелый, еще и всячески глючит

Вот это уже другой разговор. Что ж, тут я не могу ничего сказать, просто потому, что неосведомлён. Но вот скажыте мне, почему нельзя вскричать "АГА! Криворукий сайтостроитель! Сделал всё через тыл!" и закидать требованиями всё исправить? Вы же так с сайтами поступаете.
Может, конечно, там и правда всё по стандартам сделано, а Опера их не знает, но пока что я доказательств не вижу этого.
Athathoth

Если разработчик сайта использует "Pragma: no-cache", значит у него на то есть причины

Как разработчик могу сказать что не единожды no-cache мои нервы берег.

Например? Просто я не люблю, когда меня авторитетом давят.
Во-первых, что за причины, во-вторых, я смотрю на это с точки зрения удобства пользователя. Пока что я только вижу, что в Опере МНЕ удобнее.


Ядрёная консоль делает меня сильней!

Отсутствует

 

№12028-11-2005 18:07:33

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

Это откуда?

Hyper Text Transfer Protocol 1.1 -- RFC 2068, страница 80.

Слушайте, я с вами со смеху помру. Это что, идея такая большая? Вы хотите Ctrl-N и Ctrl-T запатентовать? 4-:Е Мне это не нужно, я это обойду. А вот я с ффф мучаюсь, потому что не могу ничего под себя переиначить.

Нет, больная идея у опероманов орать, что у них все сперли :) Я лишь как противодействие это говорю.

почему нельзя вскричать "АГА! Криворукий сайтостроитель! Сделал всё через тыл!

Потому что canvas -- один,  у него нет MS Canvas Extensions, так любимых IE, Оперой и некоторыми сайтостроителями.

Отсутствует

 

№12128-11-2005 18:17:33

Azathoth
Участник
 
Группа: Extensions
Откуда: Хабаровск
Зарегистрирован: 02-02-2005
Сообщений: 2692

Re: Firefox VS Opera II: в поисках истины

Sterkrig

Например? Просто я не люблю, когда меня авторитетом давят.

Например когда сложная форма, управляемая JS, то нажав "назад", получаем нерабочую (точнее работающую не правильно) форму. Это только один из примеров. Вы как пользователь не замечаете, что кешируется не просто содержимое textarea, а СОСТОЯНИЕ всех элементов формы, и это есть не всегда удобно. Если это допускать нельзя, то ставим no-cache и не портим себе нервы. И если Опера думает что она умнее, то пользователь рано или позно попадет на такой косяк, что в форме набирает одно, жмет сабмит, потом возвращается, исправляет.... и получает совсем не то что ожидает. Первым делом бежит ругать того, кто все это написал, а не корявый браузер.
Вот вам и полезная казалось бы фича...

Отредактировано Athathoth (01-12-2005 10:12:21)


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

Отсутствует

 

№12228-11-2005 18:26:34

Почесал
Участник
 
Группа: Members
Зарегистрирован: 24-02-2005
Сообщений: 3957

Re: Firefox VS Opera II: в поисках истины

Athathoth

Да ты чего! Все равно во всем виноват вебмастер, но никак не священная Опера!

Отсутствует

 

№12328-11-2005 19:42:44

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
Веб-сайт

Re: Firefox VS Opera II: в поисках истины

Почесал

Нет, больная идея у опероманов орать, что у них все сперли  Я лишь как противодействие это говорю.

Да ты чего! Все равно во всем виноват вебмастер, но никак не священная Опера!

Мн-да. Прямо и сказать уже ничего не могу.

Я всё отчётливее понимаю, куда делись profiT и иже с ним.

Athathoth

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

Можно подробней? Я лично ожыдаю нового сообщения (если форум там, или ещё что-нибудь подобное)


Ядрёная консоль делает меня сильней!

Отсутствует

 

№12429-11-2005 01:30:26

profiT
Участник
 
Группа: Members
Откуда: в Караганде
Зарегистрирован: 11-11-2004
Сообщений: 735

Re: Firefox VS Opera II: в поисках истины

Sterkrig

Я всё отчётливее понимаю, куда делись profiT и иже с ним.

Я в глубочайшем оффлайне. Если и выхожу в сеть, то только чтобы поработать над статиюшками на operafan.net (кстати: все туда!).

Ну и, проведу пару прощальных хуков, "чтобы помнили и знали".

Почесал пишет

В опере постоянно совершенно стандартные вещи не работают то тут то сям.

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

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

Кроме этого. Но та карта (как и ссылка) уже бита, так что вы остались без единственной козырной семёрки.

И вы, и Skat, и Athatoth, и Snik -- все обломились, пытаясь найти несоблюдение стандартов.

А на мои в ответ, обширнейшие, со ссылками (вплоть до параграфов) на стандарты указания глюков Файрфокса в ответ -- лишь стыдливое замалчивание.

Бурчание в сторону: "стоит только отойти-покурить, так сразу за спиной распоясываются... Думают -- не увижу."

По поводу canvas'а. Во-первых, перед началом надо уведомить кто ещё не знает, не хочет знать или просто забыл:

Иэн Хиксон (автор WebApps, в который входит canvas, поправьте меня кто может) -- был до этого года был сотрудником Оперы. В этом году его сманил Гугл.

Несовместимость Canvascape - "3D Walker" заключается во временно неработающей в 9TP1 функции rgb(r,g,b). Исправляется довольно просто (эх, пришлось вот даже пойти на нарушение копирайта):

Выделить код

Код:

<SCRIPT type="text/javascript"><!--
/*
This code is copyright by Benjamin Joffe.
You may not reproduce or modify this without
written permission by the origional author.
Email him: CanvasGame@gmail.com for suggestions.
*/


// corrections for opera 9.
function hexadecimal(n) {var r='0123456789ABCDEF';  var i=Math.floor(n/16); return r.charAt(i)+r.charAt(n-i*16); }



var map=document.getElementById("map");
var canvas;
var overlay;
//variables initiated at the bottom of the code...

var pi=Math.PI;

var total=0;

Number.prototype.range=function(){
	return (this+2*pi)%(2*pi);
}
Number.prototype.roundC=function(){
	return Math.round(this*100)/100;
}

var total=0;

var samples=200;


var arena=[];
arena[0]=[1,1,1,1,1,1,1,1,1,1]
arena[1]=[1,0,0,0,0,0,0,0,0,1]
arena[2]=[1,0,0,1,0,1,1,1,0,1]
arena[3]=[1,0,1,0,0,0,0,1,0,1]
arena[4]=[1,0,0,0,0,1,0,1,0,1]
arena[5]=[1,0,1,1,0,0,0,0,0,1]
arena[6]=[1,0,0,1,0,1,1,1,0,1]
arena[7]=[1,1,0,1,0,0,0,1,0,1]
arena[8]=[1,0,0,1,0,1,0,0,0,1]
arena[9]=[1,1,1,1,1,1,1,1,1,1]


var playerPos=[4,4]; // x,y (from top left)
var playerDir=0.4; // theta, facing right=0=2pi
var playerPosZ=1;
var key=[0,0,0,0,0]; // left, right, up, down

var playerVelY=0;


var face=[];

function wallDistance(theta){

	var data=[];
	face=[];

	var x = playerPos[0], y = playerPos[1];
	var deltaX, deltaY;
	var distX, distY;
	var stepX, stepY;
	var mapX, mapY
	
	var atX=Math.floor(x), atY=Math.floor(y);

	var thisRow=-1;
	var thisSide=-1;

	var lastHeight=0;

	for (var i=0; i<samples; i++) {
		theta+=pi/(3*samples)+2*pi;
		theta%=2*pi;

		mapX = atX, mapY = atY;

		deltaX=1/Math.cos(theta);
		deltaY=1/Math.sin(theta);

		if (deltaX>0) {
			stepX = 1;
			distX = (mapX + 1 - x) * deltaX;
		}
		else {
			stepX = -1;
			distX = (x - mapX) * (deltaX*=-1);		
		}
		if (deltaY>0) {
			stepY = 1;
			distY = (mapY + 1 - y) * deltaY;
		}
		else {
			stepY = -1;
			distY = (y - mapY) * (deltaY*=-1);
		}
		

		for (var j=0; j<10; j++) {
			if (distX < distY) {
				mapX += stepX;
				if (arena[mapX][mapY]) {
					if (thisRow!=mapX || thisSide!=0) {
						if (i>0) {
							data.push(i);
							data.push(lastHeight);
						}
						data.push(i);
						data.push(distX);
						thisSide=0;
						thisRow=mapX;
						face.push(1+stepX);
					}
					lastHeight=distX;
					break;
				}
				distX += deltaX;
			}
			else {
				mapY += stepY;
				if (arena[mapX][mapY]) {
					if (thisRow!=mapY || thisSide!=1) {
						if (i>0) {
							data.push(i);
							data.push(lastHeight);
						}	
						data.push(i);
						data.push(distY);
						thisSide=1;
						thisRow=mapY;
						face.push(2+stepY)
					}
					lastHeight=distY;
					break;
				}
				distY += deltaY;
			}
		}
	}
	data.push(i);
	data.push(lastHeight);
	
	return data;
}



function drawCanvas(){

	canvas.clearRect(0,0,400, 300);

	var theta = playerDir-pi/6;

	var wall=wallDistance(theta);

	map.clearRect(0,0,80,80);
	map.fillStyle="#3366CC";
	map.arc(playerPos[0]*8, playerPos[1]*8, 3, 0, 2*pi, true);
	map.fill();
	map.moveTo(8*playerPos[0], 8*playerPos[1]);


	var linGrad;
	
	var tl,tr,bl,br;
	
	var theta1,theta2,fix1,fix2;
	
	for (var i=0; i<wall.length; i+=4) {

		theta1=playerDir-pi/6 + pi*wall[i]/(3*samples);
		theta2=playerDir-pi/6 + pi*wall[i+2]/(3*samples);
		
		fix1 = Math.cos(theta1-playerDir);
		fix2 = Math.cos(theta2-playerDir);

		var h=2-playerPosZ;

		var wallH1=100/(wall[i+1]*fix1);
		var wallH2=100/(wall[i+3]*fix2);

		tl=[wall[i]*2, 150-wallH1*h];
		tr=[wall[i+2]*2, 150-wallH2*h]
		br=[wall[i+2]*2, tr[1]+wallH2*2];
		bl=[wall[i]*2, tl[1]+wallH1*2]

		var shade1=Math.floor(wallH1*2+20); if (shade1>255) shade1=255;
		var shade2=Math.floor(wallH2*2+20); if (shade2>255) shade2=255;

// corrections for opera 9. Replaced rgb(r,g,b) by #RRGGBB
		linGrad = canvas.createLinearGradient(tl[0],0,tr[0],0);
		linGrad.addColorStop(0, '#'+hexadecimal(face[i/4]%2==0 ? shade1 : 0)+hexadecimal(face[i/4]==1 ? shade1 : 0)+hexadecimal(face[i/4]==2 ? 0 : shade1));
		linGrad.addColorStop(1, '#'+hexadecimal(face[i/4]%2==0 ? shade2 : 0)+hexadecimal(face[i/4]==1 ? shade2 : 0)+hexadecimal(face[i/4]==2 ? 0 : shade2));

		canvas.beginPath();
		canvas.moveTo(tl[0], tl[1]);
		canvas.lineTo(tr[0], tr[1]);
		canvas.lineTo(br[0], br[1]);
		canvas.lineTo(bl[0], bl[1]);
		canvas.fillStyle = linGrad;
		canvas.fill();

	
		map.lineTo(playerPos[0]*8+Math.cos(theta1)*(wall[i+1])*8, playerPos[1]*8+Math.sin(theta1)*(wall[i+1])*8);
		map.lineTo(playerPos[0]*8+Math.cos(theta2)*(wall[i+3])*8, playerPos[1]*8+Math.sin(theta2)*(wall[i+3])*8);

		
	}

	map.fillStyle="#FF0000"
	map.fill();
	
}

function nearWall(x,y){
	var xx,yy;
	if (isNaN(x)) x=playerPos[0];
	if (isNaN(y)) y=playerPos[1];
	for (var i=-0.1; i<=0.1; i+=0.2) {
		xx=Math.floor(x+i)
		for (var j=-0.1; j<=0.1; j+=0.2) {
			yy=Math.floor(y+j);
			if (arena[xx][yy]) return true;
		}
	}
	return false;
}

function wobbleGun(){
	var mag=playerVelY;
	overlay.style.backgroundPosition=(10+Math.cos(total/6.23)*mag*90)+"px "+(10+Math.cos(total/5)*mag*90)+"px";
}


var jumpCycle=0;


function update(){

	total++;

	var change=false;

	if (jumpCycle) {
		jumpCycle--;
		change=true;
		playerPosZ = 1 + jumpCycle*(20-jumpCycle)/110;
	}
	else if (key[4]) jumpCycle=20;
	
	if (key[0]) {
		if (!key[1]) {
			playerDir-=0.07; //left
			change=true;
		}
	}
	else if (key[1]) {
		playerDir+=0.07; //right
		change=true;
	}

	if (change) {
		playerDir+=2*pi;
		playerDir%=2*pi;
		document.getElementById("sky").style.backgroundPosition=Math.floor(-playerDir/(2*pi)*2400)+"px 0";
	}

	if (key[2] && !key[3]) {
		if (playerVelY<0.1) playerVelY += 0.02;
	}
	else if (key[3] && !key[2]) {
		if (playerVelY>-0.1) playerVelY -= 0.02;
	}
	else {
		if (playerVelY<-0.02) playerVelY += 0.015;
		else if (playerVelY>0.02) playerVelY -= 0.015;
		else playerVelY=0;
	}
	
	
	if (playerVelY!=0) {

		var oldX=playerPos[0];;
		var oldY=playerPos[1];		
		var newX=oldX+Math.cos(playerDir)*playerVelY;
		var newY=oldY+Math.sin(playerDir)*playerVelY;

		if (!nearWall(newX, oldY)) {
			playerPos[0]=newX;
			oldX=newX;
			change=true;
		}
		if (!nearWall(oldX, newY)) {
			playerPos[1]=newY;
			change=true;
		}

	}
	
	if (playerVelY) wobbleGun();
	if (change) drawCanvas();
}


document.onkeydown=function(e){
	 switch (e.keyCode){
		case 65: case 37: key[0]=1; break; // left
		case 87: case 38: key[2]=1; break; // up
		case 68: case 39: key[1]=1; break; // right
		case 83: case 40: key[3]=1; break;// down
		case 32: key[4]=1; break; // space bar;
	}
}
document.onkeyup=function(e){
	 switch (e.keyCode){
		case 65: case 37: key[0]=0; break; // left
		case 87: case 38: key[2]=0; break; // up
		case 68: case 39: key[1]=0; break; // right
		case 83: case 40: key[3]=0; break;// down
		case 32: key[4]=0; break; // space bar;
	}
}


function initUnderMap(){
	var underMap=document.getElementById("underMap").getContext("2d");
	underMap.fillStyle="#FFF";
	underMap.fillRect(0,0, 200, 200);
	underMap.fillStyle="#444";
	for (var i=0; i<arena.length; i++) {
		for (var j=0; j<arena[i].length; j++) {
			if (arena[i][j]) underMap.fillRect(i*8, j*8, 8, 8);
		}	
	}
}

if (!map.getContext) {
	alert("BROWSER INCOMPATABILITY\n\nTo use this feature you need a browser that supports the\n<canvas> HTML element with JavaScript enabled such as\nFirefox 1.5 or Safari 1.3.");
}
else {
	map=map.getContext("2d");
	canvas=document.getElementById("canvas").getContext("2d");
	overlay=document.getElementById("overlay");
	document.getElementById("sky").style.backgroundPosition=Math.floor(-playerDir/(2*pi)*2400)+"px 0";
	drawCanvas();
	initUnderMap();
	setInterval(update, 35);
}




//--></SCRIPT>

А вот про скорость... Тут уже довольно тонкие материи начинаются. Дело в том, что Файрфокс тут как раз нарушает спецификацию, добиваясь большей скорости. Полагается рисовать "между делом", походу, делая всё остальное, то есть выводя что уже нарисовано каждую, допустим, секунду. А Файрфокс отдаёт все ресурсы на откуп скрипту и ждёт его окончания. Из-за этого мы и получаем все эти соообщения: "Внимание: скрипт не отвечает. Скрипт, исполняемый на этой странице, возможно, занят или не отвечает. Вы можете остановить его сейчас или продолжить и посмотреть сможет ли он закончить свою работу". Читайте.

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

Ещё одно нарушение спецификации Файрфокса в canvas'e -- рисование множества Мандельброта, которое уже приводили. Там прикол в том, что в Файрфоксе нельзя сохранить полученное изображение. Кнопка для открытия картинки в отдельном окне "Open as PNG" вызывает функцию "toDataURL()", которой в Файрфоксе нет вообще никакой. Ни без параметров (в формате PNG), ни с ними (можно задать другой формат). Описана эта функция в разделе 6.1. спецификации WebApps 1.

Отредактировано profiT (29-11-2005 01:40:06)


Плюсики рисовать здесь: [    ]

Отсутствует

 

№12529-11-2005 01:37:04

Bananas
Участник
 
Группа: Members
Откуда: Minsk, Belarus
Зарегистрирован: 12-03-2005
Сообщений: 1059
Веб-сайт

Re: Firefox VS Opera II: в поисках истины

Ещё одно нарушение спецификации Файрфокса в canvas'e -- рисование множества Мандельброта, которое уже приводили. Там прикол в том, что в Файрфоксе нельзя сохранить полученное изображение. Кнопка для открытия картинки в отдельном окне "Open as PNG" вызывает функцию "toDataURL()", которой в Файрфоксе нет вообще никакой. Ни без параметров (в формате PNG), ни с ними (можно задать другой формат). Описана эта функция в разделе 5.1. спецификации WebApps 1.

попробуйте "Open as PNG" в 9й опере и посмотрите что получится.
было написано requested url tooooo large
потом все-таки показала рисунок, а потом повисла и ни на что не отвечала. это геройский поступок))

Отредактировано Bananas (29-11-2005 01:46:13)


Sometimes I give myself the creeps,
Sometimes my mind plays tricks on me...

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]