問題タブ [allegro]

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 投票する
5 に答える
137 参照

c++ - 古いプロジェクトでいくつかのメモリエラーを追跡するソフトウェア?

2年前からゲームのプログラミングをしています。ときどきメモリ エラー (つまり、関数が返すはずのものではなくジャンクを返す、または Linux でのみ発生し、GDB や Windows では決して発生しないクラッシュ) がランダムに発生することがあります。つまり、私はそれを修正しようとしましたが、数か月後に同じエラーが戻ってきて私を悩ませました。

その問題を解決するのに役立つソフトウェア(Valgrindではなく、すでに試しました...エラーが見つかりません)がありますか?または、これらのエラーを解決する方法はありますか? それらを永久に修正したい。

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

c++ - Allegro 4.2.1、bmp 背景色を削除

allegro 4.2.1 でゲームを作成していますが、特定の色を削除して非表示にする方法を教えてください。背景色は (255, 0, 255) です。私は次のサイトにアクセスしましたが、あまり役に立ちませんでした。

http://www.allegro.cc/forums/thread/599210http://www.cpp-home.com/tutorials/258_1.htm

誰かが私に例を提供してくれたら、とてもうれしいです。

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

c - テクスチャ管理/ポインタの質問

私は私の小さなサイドプロジェクトのためのテクスチャ管理とアニメーションソリューションに取り組んでいます。プロジェクトはレンダリングと入力にAllegroを使用していますが、私の質問は主にCとメモリ管理を中心に展開しています。ポインターに関してはひどいので、アプローチについての考えと洞察を得るために、ここに投稿したいと思いました。

基本的に私がやろうとしているのは、すべてのテクスチャリソースを中央マネージャー(textureManager)にロードすることです。これは基本的にALLEGRO_BITMAPオブジェクトを含む構造体の配列です。textureManager内に保存されているテクスチャは、ほとんどが完全なスプライトシートです。

そこから、アニメーション固有の情報を含むanim(ation)構造体があります(textureManager内の対応するテクスチャへのポインタとともに)。

アイデアを与えるために、プレーヤーの「ウォーク」アニメーションをセットアップして再生する方法を次に示します。

アニメーションの現在のフレームのレンダリングは、textureManagerに格納されているスプライトシートの特定の領域をブリットする場合にすぎません。

参考までに、anim.hとanim.cのコードを次に示します。私がここでやっていることは、おそらくいくつかの理由でひどいアプローチだと確信しています。それらについて聞きたいです!私は落とし穴に自分自身を開いていますか?これは私が期待しているように機能しますか?

anim.h

anim.c

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

c - C/C++ Allegro プログラムにより Windows 7 が Aero Basic に切り替わる

私は allegro ライブラリを試しています。これまでに得たコードは次のとおりです。

正常に動作しますが、実行すると、プログラムのウィンドウが開いているときに、Windows 7 のテーマが Aero から Aero Basic に変更されます。意味がわからない場合は、次のポップアップが表示されます (これは Google から取得したため、Windows 7 ではなく Vista と表示されています)。

http://www.suitedcowboys.com/wp-content/uploads/2007/01/010607_0906_HelloVistai28.png
(出典:suitedcowboys.com

  1. なんで?
  2. これが起こらないようにするにはどうすればよいですか?
0 投票する
3 に答える
1047 参照

c++ - allegro 関数で使用するために int を文字列に変換します

allegro を使用して次のコードを実行しようとしています。

textout_ex(スクリーン、フォント、numbComments、100、100、グリーン、ブラック);

numbComments は整数で、この関数の関数プロトタイプは

そして、私の理解によれば、この整数を3番目の位置に渡すことはできません。

したがって、整数を char*s に変換する必要があります。

助けてください?

もちろん、実際の関数プロトタイプを変更することはできません

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

c++ - パッケージを使用して Dev-C++ に Allegro をインストールする

Allegro を Dev-C++ にインストールしようとしていますが、手動で行うのではなく、新しいバージョンが利用可能なパッケージに含まれていることに気付きました。

ここはマネージャーにあります。

ここでは、ヘッダー ファイルが含まれていることを示しています。

最も単純な Allegro プログラムを実行しようとしても、認識されません

誰でもこれを修正する方法を知っていますか? またはそれを行うより良い方法はありますか?ありがとう。

0 投票する
5 に答える
550 参照

c++ - C ++:関数がインラインで割り当てられたポインターを受け入れないようにするにはどうすればよいですか?

質問を正確に表現する方法がわからなかったので、次に例を示します。

この関数プロトタイプを考えると:

この使用を防ぎたい:

代わりに、以前に作成したオブジェクトが必要です。

また

ありがとう。


編集

明確な例を次に示します。

ユーザーが渡す画像はすべて、オブジェクトの画像にコピーされます。

渡された画像をコピーした後で割り当てを解除し、その画像をプログラムの他の場所で使用すると、アクセス違反でプログラムがクラッシュします。

ストレージをインラインで割り当て、割り当てを解除しないと、メモリリークが発生します。実行中のプログラムの過程でSetImageメソッドを複数回呼び出すと、問題はさらに複雑になります。

代替ライブラリの使用やAllegroライブラリ自体に関するコメントは無視されますが、それが恐ろしいことはすでにわかっています。仕方がない。

0 投票する
8 に答える
29988 参照

c++ - C++ でベクター グラフィック (.svg) をレンダリングする

私と友人は、グラフィックスが .svg ファイルである 2D ゲームに取り組んでおり、最初にラスター化するか、表面に直接レンダリングすることで適切にスケーリングします (これには、ある時点でラスター化が必要になります)。

問題は、.svg ファイルを取得し、最終的に allegro でレンダリングできるようにするライブラリを見つけるために一日中探していたことです。私の知る限り、それには allegro が読み取れるある種のフォーマットへのラスター化が含まれ、それから allegro は「平坦化された」画像をレンダリングできます。

では、.SVG ファイルを取得して「フラット化」してレンダリングできるようにするために使用できる C++ ライブラリは何ですか? ライブラリは明らかにスケーリングもサポートする必要があるため、ベクター グラフィックをスケーリングしてからラスタライズできます。

Windows と Visual C++ Express 2010 を使用しています。

Cairo を試してみましたが、.svg ファイルの書き込みのみが許可され、.svg ファイルの読み取りは許可されません。また、Cario で動作する librsvg も調べましたが、Windows で適切に動作させるには多くの問題がありました (GNOME の依存関係がたくさんあるため)。これらを(Windowsで)機能させるためのガイドがあれば、それも素晴らしいでしょう。

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

c++ - C/C++ Allegro プログラムが実行されない

デフォルトのエラーメッセージ「error loading picture.bmp」が毎回ポップアップして実行されない

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

visual-c++ - VisualC++を使用してAllegroをコンパイルすることはできません

アレグロライブラリをダウンロードしました

新しい空のプロジェクトを作成してから、ソースファイルを追加します

次のコード行を追加します。

コンパイルすると、次のエラーが発生します。

c:\ allegro \ include \ allegro5 \ internal \ alconfig.h(28):致命的なエラーC1083:インクルードファイルを開くことができません:'allegro5 / platform / alplatf.h':そのようなファイルまたはディレクトリはありません

だから私はalconfig.hに行き、変更します:

に:

これで、このエラーが発生します

c:\ allegro \ include \ allegro5 \ platform \ alplatf.h.cmake(2):致命的なエラーC1021:無効なプリプロセッサコマンド'cmakedefine'

だから私はそれ#include "../../allegro5/platform/alplatf.h.cmake"が言うステートメントを取り除きます:

c:\ allegro \ include \ allegro5 \ internal \ alconfig.h(57):致命的なエラーC1189:#error:プラットフォームはサポートされていません

そこから行くのかわからない、窓を走らせているので本当に困惑している