問題タブ [impactjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
144 参照

javascript - 進行方向に弾丸を発射する

弾丸を 8 方向のうちの 1 方向に発射する方法を考え出すのに苦労しています。

プレイヤーは、コンパスの方向 0、45、90、135、180 などのみを指すことができます。

そこで必要なのは、プレイヤーが向いている方向に弾丸を一定の速度で送るために spawnEntity で使用できる数式です。

私はこれを試しました;

呼び出しは次のようになります。

しかし、すべてがラジアンであり、コンパス度にしたいと思います。

0 投票する
1 に答える
134 参照

javascript - Impact JavaScript ゲームエンジンでコード化された webapp をローカルにデプロイすると、chrome で CORS が発生する

ローカルホストを必要とせずにローカルで実行できる (file:///C:/... を使用) ことができる webapp (impact js ゲームエンジンで開発) を作成しようとしていますが、chrome で動作させる必要があります。 .

クロムで機能しない主な問題は、CORSの問題により、クロムがメディア(主にpng / jpgの画像)をメディアフォルダーからロードできないようにすることです。

数日間読んでいくつかの方法を試した後、この問題を解決できません。これについて経験のある方は、可能かどうか教えてください。可能であれば、これについてどのような方法をとればよいでしょうか。

私が試した方法:

1) img.crossOrigin = "anonymous" の設定 (失敗、これはまだ chrome によってブロックされています)

2) フラグ --allow-file-access-from-files を指定して chrome を開く (動作しましたが、エンド ユーザーにとって実行可能な方法ではありません)

3) 画像を読み取り、それらをデータ uri 形式に変換する (失敗しました。固有の COR の問題により、データ uri 変換が機能していないようです)

4) appcache を使用してすべての画像をブラウザーのキャッシュにキャッシュしようとしました (失敗しました。Web サーバーからアクセスされていないため、機能していないようです)

更新:Impact.imageソースコードを編集して、画像にロードする時点でsrcをデータURLに変換しようとしています

何らかの理由で画像が関数にロードされていません。getBase64Image 関数に画像をロードしても機能しますか?

0 投票する
1 に答える
451 参照

collision - エンティティの長方形ではなく、より正確なカスタム形状のコリジョン ボックスを定義することは可能ですか?

エンティティの長方形ではなく、より正確なカスタム形状のコリジョン ボックスを定義することは可能ですか? 可能かどうか、またその方法を教えてください。

0 投票する
1 に答える
89 参照

javascript - JavaScript の 2 次元配列が間違ったデータを返す

ゲーム マップのコリジョン レイヤーとフォアグラウンド レイヤーを表す 2D 配列があります。プレイヤーの位置に基づいて適切なタイルを取得して、タイルの番号を読み取ろうとしています。ただし、配列から特定のタイルを呼び出すと、間違った番号が返されるか、Cannot read property 'index here' of undefined. 配列を見て、プレイヤーの位置からのインデックスがゼロ以外の値を返す必要があることを確認しましたが、ゼロまたは未定義のメッセージを返します。タイルの位置を見つけるために使用しているコードは次のとおりです。

参照用のデータ配列は次のとおりです。

0 投票する
0 に答える
219 参照

javascript - impactjs saving higscore with php and sql

Alright, so me and my buddy is creating a game and a website, he is working on the game, and i am working on the site. The game is built using the ImpactJS engine, and everything works fine and so, but the problem we have ecountered is how we should save the highscore. Currently we got a website built, where you can log in and then play, and our idea is that after you finish the level (or when you die) you get a score, then that score gets send to the database along with the current user thats logged in. We got the function that would do that, but the problem is that we dont know how we should send the score from the javascript file, to the actuall database.

So this is how things are looking right now: First we actually got the highscore function in the main.js

Main.js

We understand that its the +score that we have to insert into the database.

Then we got the DB class, thats going to insert the data into the database (and by the way, im working object oriented since this is a school project and we have to do it this way)

DB.php

And then lastly we got the highscore class:

Highscore.php

Yeah, so basicaly we dont know how we should get the +score from the external javascript file, and send it into to php... We did do some research and found out that maybe we should use Ajax for this? Anyhow, anybody can lend a hand?

0 投票する
1 に答える
1047 参照

javascript - javascript localStorage の実​​装方法

実績クラスの値の 1 つに localStorage を実装したいと考えています。つまり、基本的にこのクラスが行うことは、バックエンド データベースからプレーヤー データを取得し、プレーヤーが特定のタスクをクリアすると、実績のロックが解除されるということです。今のところ、次のように定義された実績は1つだけです

実績:{ 1:{name:'First_Achievement',status:1} },

ステータス フィールドは、実績のフラグのように機能します。ステータスが 1 の場合、アチーブメントはまだロックされており、ステータスが 0 になった場合、アチーブメントはロック解除されます。

これは、実績が解除されたときのスケルトン コードです。このコード ブロックは、私のゲームで 10 秒ごとにチェックされ、特定のタスクがクリアされて実績のロックが解除されているかどうかを確認します。

したがって、ゲームを実行すると、これは正常に機能します。「this.Achievements[1].status」は、次回ゲームを開始するまで 0 に設定されます。「this.Achievements[1].status」を 1 に戻し、ステータスが 1 に戻されると if ループが再び実行されます。ゲームを実行するたびにではありません。

では、ここで localStorage を実装するにはどうすればよいでしょうか。「Achievements.status」フィールドを localStorage に格納して、if ループが毎回ではなく 1 回だけ実行されるようにする必要があると思います。または、これを実装できる他の方法はありますか?

私は次のことを試しました

localStorage.setItem(this.Achievements[1].status,0);

しかし、それは機能しません

どんな助けでも大歓迎です!ありがとう!

0 投票する
2 に答える
175 参照

javascript - 異なるシステムの localStorage

localStorage の仕組みについて質問がありました。ドキュメントを読んだところ、Web ゲームにうまく実装できました。ImpactJS エンジンとこのプラグインを使用しています -> https://github.com/jsantell/ImpactStorageを目的に使用しています。私はまだWeb上の永続データの概念全体に非常に慣れていませんが

私たちのゲームでは、約 1000 以上のチーム (各チームには約 5 人のプレイヤーがいます) が、さまざまなブラウザーやさまざまなマシンでゲームをプレイすることを想定しています。

これで、すべてのチームの情報がデータベースに保存され、それぞれに一意の ID が作成されます。各チームには、さまざまなゲームプレイ要素に使用している約 40 の localStorage キー値があります。

将来何らかの問題が発生する前に、localStorage に使用する値がすべて持続し、さまざまなシステム、さまざまなブラウザーで動作することを確認したいと思います。つまり、localStorage のいずれかのキーの値が更新された場合、同じチームの他の異なるシステムでもキーを更新できますか?

今のところ、1 台のマシンと 3 つの異なるブラウザーでテストしたところ、値はどこでも更新されますが、別のマシンでも動作しますか?

そのようなシナリオで localStorage が正確にどのように機能するかを誰かが簡単な言葉で簡単に説明できたら?

ありがとう!