Um Hilfe zu erhalten, Sie sich anschauen sollten Bereitstellung einer nichtminimierten Version Ihres Skripts.
Ich sehe, dass es 8ms setIntervals in Ihrem Code gibt. Wie oben erwähnt, geht Firefox (noch) nie unter 10 ms. Das Spiel in FFox 4 ist sehr angenehm. Ich sah zwei sehr kleine Hickups, die eindeutig durch Müllsammlung verursacht wurden. Chrome hat in dieser Hinsicht einen Vorteil gegenüber dem Fox. Obwohl SpiderMonkey (das GC in Firefox behandelt) sich von 3.5 auf 3.6 dramatisch verbessert hat, ist es immer noch nicht gut genug für viele Spiele. In 4.0 ist es viel besser, aber immer noch nicht so gut wie in Chrome oder Opera. (Es wird gerade gearbeitet.)
Wenn ich das Spiel anschaue und kurz auf deinen Code schaue, sehe ich keine Komplexität, die dazu führen würde, dass Firefox mit dem, was vor sich geht, nicht umgehen kann. Auch Firefox 4 hat hardwarebeschleunigtes Canvas, das geringfügig schneller ist als IE9 und viel schneller als Chrome.
Es gibt eine Vorstellung im Web, dass Chrome schneller ist als Gecko, wenn es um Canvas geht, aber das liegt daran, dass Leute ihre Seiten selten profilieren. Tatsächlich ist Canvas in Firefox 3.6 bereits mindestens so schnell wie in Chrome, aber viele Tests zeigen es nicht, da das JavaScript langsamer ist. (Und einige JavaScript-Tests sind langsamer, weil Firefox den Test-Kabelbaum nicht gut verarbeitet.)
All dies führt zu vielen Verwirrungen und Fehlinformationen. Die Quintessenz ist, dass Ihr Spiel in Firefox 4 in Ordnung sein sollte. Sie sollten sehen, ob Sie etwas tun können, um unnötige GC zu vermeiden. Z.B. Verwenden Sie Variablen erneut oder erstellen Sie unnötige neue Variablen?
Allerdings war es in Opera 10.53 nicht angenehm. Nicht, weil Opera mit der Geschwindigkeit nicht mithalten konnte, aber statt das untere Stück zu bewegen, wurde es stationär gehalten und stattdessen das gesamte Spielfeld bewegt. (Ich schaffte es trotzdem, bei meinem ersten Versuch auf Stufe 17 zu gehen.) In Opera 10.6 wird die Seite nicht richtig geladen.
Sie müssen wahrscheinlich Ihren Code debuggen - oder vielleicht einen Fehler mit Opera einreichen, wenn es eine Regression ist. (Ich werde diesen Tweet ihre Aufmerksamkeit zu bekommen.)
nettes Projekt, btw :) – galambalazs
Addictive Spiel. Level 17 mit 83 Ausweichen auf Chrome und Level 1 mit 0 Ausweichen bei Firefox. Das Ding war bei Firefox so verdammt langsam, dass ich die Bar bewegen musste. – Anurag
vielleicht 8ms Intervall ist zu klein für ff .. – galambalazs