問題タブ [angelscript]

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 に答える
139 参照

c++ - AngelScript でグローバル関数を使用する

C++ アプリケーション内で AngelScripts グローバル関数を使用する際に問題があります。

私の .cpp ファイルには、次の関数があります。

私はそれを使用して登録しています:

私の .as ファイルでは、次のように関数を呼び出します。

したがって、この場合、x を 1、y を 2 にしたいのですが、cout で値を出力すると、x = 4318096 と y = 4318100 のようになります。

自分のミスがどこにあるのかわかりません。私が得ることができる助けに感謝します。

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

c++ - Angelscript で glm::vec3 ベースの値型の代入演算子を登録する

以下を使用して、Angelscript に Vec3 値型を登録しました。

その型のコンストラクタとデストラクタ関数も登録しました。

別のタイプ「Transform」を登録し、C++ クラス メソッド「const glm::vec3& GetTranslation()」に対応するメソッド「Vec3 GetTranslation()」を指定しました。

これは、Angelscript で 2 つを使用する方法です。

そして、私はこのエラーが発生しています:

代入演算子または演算子を登録する正しい方法は何ですか?

私はこれを試しました:

そして、このコンパイルエラーが発生しました:

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

c++ - AngelScript から C++ に変数を渡す

AngelScript から C++ に変数を渡したいです。
私はすでに AngelScript から C++ に、またその逆に関数を渡すことができました。
C++ から AngelScript に変数を渡すこともできますが、その逆の方法がわかりません。
マニュアルは私を助けませんでした、または私はその部分を監督しました.
ヒントを教えてください。

編集:

コメントで述べたように、ここでは私がすでにできたことです。

私のtest.asファイルで:

私のtest.cppファイル:

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

c++ - A* 経路探索が最短経路をたどらない

私の A* パスファインディング関数は常に意図した目的地に到着しますが、ほとんどの場合、少し道に迷ってしまいます。次に例を示します。

[私の問題を示す素敵な画像を作成しましたが、評判が 10 に達するまで投稿されないようです。すみません、私は新しいです。:P]

基本的に、実際にパスにタイルを追加することなく、可能な限り左または上にプルします。gScore の計算、または隣接するタイルの gScores に基づいてタイルの親を再割り当てできる部分の問題のように思えますが、どこが間違っているのかわかりません。何週間も自分のコードをくまなく調べ、何十ものオンライン投稿を閲覧しましたが、まだ行き詰っています。参考までに、私が使用しなければならないコンパイラ/デバッガは、ブレークポイントやステップスルー デバッグをサポートしていないため、単純なテキスト出力に固執しています。誰かが私が間違っていることを見つけることができますか?

主な機能は次のとおりです (注: これはすべて Angelscript です。C++ に基づいていますが、小さな違いがあります)。

私のヒューリスティックは、マンハッタン法を使用しています。

そして最後に、これが私のパス再構築関数です:

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

shift-reduce-conflict - 皮肉な還元還元問題

私はこの同じ問題をほぼ2週間理解しようとしています。最初はシフト削減エラーでしたが、現在は削減削減問題です。私はそれを非常に多くの方法で試しましたが、今では助けが必要なところまで来ました. 私は多くの言語をコーディングしており、ほぼ 10 年前にコーディングを始めましたが、実際にヘルプを投稿したのはこれが初めてです。

パーサー クラスから BNF 文法を取得した、人気のあるスクリプト エンジンである Angel Script の文法クラスを作成しようとしています。ここで言語リファレンスを見つけることができますhttp://www.angelcode.com/angelscript/sdk/docs/manual/doc_script.html

そして、各ルールのクラス内に、コピーしようとしている BNF 文法のコメントを追加しました。現時点では、私が定義したキーワードを実際には使用していません。競合なしで動作するようになったら、戻ってクリーンアップを試みます。ここに私のクラスがありますhttp://pastebin.com/FydCTqmU

Dll を作成して文法エクスプローラーで実行するだけで、すべてのエラーが表示されます。ほとんどのエラーはすべて同じ問題に起因しているように見えるので、おそらくそれを修正できれば、ほとんどすべてが修正されると思います. 文法をより具体的ではないセクションに分割するのに役立つアプリを作成しましたが、それがより多くのreduce-reduceの問題にぶつかったと思います。

うまくいけばreduce-reduceエラーを通過できるようにコードを圧縮しようとしましたが、まったく同じままのようですが、見た目が雑然としています。誰かが私がそれを正しくするのを手伝ってくれるなら、私は喜んで数百ドルをペイパル経由で送ります. 私はこれを2週間以上続けてきたので、あきらめようとしています。私のメールアドレスは Anth0ny229@live.com です。

shift-reduce から reduce-reduce エラーに変わりました。何をしても問題が発生するようです。頭を包むことができず、本当に助けが必要です。私が言ったように、私は私に電子メールを送るだけで助けのために誰かにお金を払って喜んでいます. 私は、babelua のような Visual Studio 拡張機能を作成して、人々が Visual Studio を使用して Angel Script Scripts を記述できるようにすることを計画しています。また、うまくいけば、デバッグ サポートも追加します。これは素晴らしい追加になると思うので無料になります。したがって、最終的に機能する限り、誰かが何らかの形で支援できる場合は、彼らが報われることを確認して喜んでください. ありがとうございました。

状態 S0 (不十分) 入力に対する削減-削減競合: const 識別子 void int8 int16 int32 int64 int uint8 uint16 uint32 uint64 uint float double bool ? auto :: シフト項目:

アイテムを減らす:

トランジション:

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

c - AngelScript のカスタム構造体

多分誰かが知っています。c-アプリケーションから AngelScript-script にカスタム c-struct を送信するにはどうすればよいですか? 現時点では、標準型 (char*、uint8_t) のみを使用しています。

よろしくお願いします。

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

arrays - Angelscriptを使用して配列要素にアクセスするにはどうすればよいですか?

作成中のゲーム用の単純なインベントリ システムを作成しようとしています。インベントリには、インベントリ内のアイテムごとに「アイテム名」と「アイテムの説明」の 2 つの情報が必要です。

Angelscriptのウェブサイトから読んだ情報は、作成するように言っています

それぞれ 2 つの要素を持つ文字列の配列。

どうやらこれは

これは2つの要素を意味しますか?
配列内のこれらの 2 つの要素にアクセスするにはどうすればよいですか?

以下のコードは機能しているように見えますが、期待どおりの動作をしません。

出力

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

class - AngelScript - 暗黙のデフォルト コンストラクターが実行されないようにする

私は現在、いくつかの簡単な AngelScript をテストしていますが、オブジェクトがクラスからどのように初期化されるかに関して、少し奇妙なことに気付きました。

次のようなクラスを定義するとしましょう。

これを行うことで、このクラスのオブジェクトを作成できます。

ただし、これを行うことでオブジェクトを作成することもできるようです:

ここでの問題はobj.i、それが未定義であるためデフォルト値になることです。MyClass obj = MyClass(5);さらに、デフォルトのコンストラクターをクラスに追加し、それぞれに print 関数呼び出しを追加すると、一致するパラメーターを持つコンストラクターだけでなく、両方のコンストラクターが呼び出されることがわかります。この「ゴースト」インスタンスの多くのプロパティを不必要に初期化する可能性があるため、これは危険に思えます。

ハンドルを使用することで、この二重の初期化を回避できますが、これは解決策というよりも回避策のように思えます。

したがって、私の質問は次のように要約されます。

  1. 特定のコンストラクターの呼び出しを要求できますか?
  2. デフォルトのコンストラクターが実行されないようにすることはできますか?
  3. オブジェクトを作成するときに必要なパラメータを処理する適切な方法は何ですか?

これは純粋に AngelScript スクリプト言語であり、ホスト アプリケーションの C++ コードとは完全に分離されていることに注意してください。ホストは 2010 年のもので、オープンソースではなく、実装に関する私の知識は非常に限られているため、問題がそこにある場合は変更できません。