タグ付けされた質問 「pygame」

Pythonプログラミング言語に基づくゲーム開発ライブラリ。Pythonと一緒に簡単に使用できるようにSDLをラップします。

2
PygameでSNESモード7(アフィン変換)効果を実行する
pygameでモード7 /マリオカートタイプの効果を行う方法についての簡単な答えなどはありますか? 私は広範囲にグーグルで調べましたが、私が思いつくことのできるドキュメントはすべて、他の言語(asm、c)の多数のページであり、多くの奇妙に見える方程式などがあります。 理想的には、数学的な用語よりも英語で説明されたものを見つけたいです。 PILまたはpygameを使用して、画像/テクスチャ、またはその他必要なものを操作できます。 私は本当にpygameでモード7の効果を達成したいのですが、私はウィットの終わりに近いようです。ヘルプは大歓迎です。あなたが提供できるすべてのリソースや説明は、たとえそれらが私が望んでいるほど単純ではない場合でも、素晴らしいでしょう。 私がそれを理解できるなら、私は初心者ページのためにモード7をする決定的な方法を書きます。 編集:モード7 doc:http : //www.coranac.com/tonc/text/mode7.htm
19 pygame 

3
フラクタルベースの手続き型都市レイアウトに適したアルゴリズムは何ですか?
バックグラウンド Minecraftサーバーを実行して、かなり大規模なスターターシティを設計します。ルールの看板や暴徒の籠のような一連のものがあり、そこに建物を置きたいです。都市自体は非常に大きく、広がるでしょう。できれば最大1000 x 1000ブロックの大きさです。 建物自体は、すべての3ブロックの倍数のように、特定のベースキューブに基づくキューブまたは長方形のフットプリントを持ちます。道路と建物間の距離は、道路の重要性に応じて、5〜11ブロックの幅であることが好ましいでしょう。 都市の計画を開始するとき、建物がどれだけ大きくなり、いくつあるかを正確に知ることができます。 問題 問題は、都市のレイアウトを設計することです。明らかにそのような規模で、私は都市計画の背景ではなくプログラミングの背景から来ているので、問題に頭を包み始めることさえ非常に困難です。 問題は、具体的には、都市ができるだけ自然に見えるようにすることです。もちろん、これは単純なグリッドパターンに基づいて構築するのはかなり簡単ですが、グリッド、またはグリッドのように見えるものは可能な限り避けたいと思います。 質問 コードを使用して設計するために、どのアルゴリズムを追求できますか?Minecraftは既に地形生成でフラクタルを使用しており、都市はフラクタルパターンで自然に成長しているように見えるので、何らかの方法でフラクタルを使用すると最も自然に見えると考えていました。 いくつかの点でテトリスを演奏するアルゴリズムに似ていると思うので、誰かがその方向に存在する解決策を持っているなら、それも助けになるでしょう。使用したい形状を定義できる場所を描いており、ソフトウェアは、建物の均等な分布に最も「最適な」ソリューションが見つかるまで繰り返します。 Pythonを使用して、できればpygameを使用して視覚的にこの問題を解決するのに役立つ何かが既に存在しますか? 当然、これはゲームデザインにおける一般的な都市の生成にも興味深い影響を与えるため、最適なソリューションが何であるかを非常に楽しみにしています。 編集 明確にするために、建物はゲーム内で設計および構築されるため、この時点でレイアウトを探しています。

2
マウスを動かすと、スプライトプレーヤーの動きが速くなるのはなぜですか?
Pygame(Pythonライブラリ)で作られたシンプルなゲームを開発しようとしています。 のspriteオブジェクトがあり、player矢印キーを使用して移動します。マウスを動かさないと、スプライトは普通に動きますが、マウスを動かすと、スプライトは速く動きます(x2やx3など)。playerオブジェクトが内部にあるcharsGroupVAR。 ゲームをW7とUbuntuで実行しました。両方のOSで同じことが起こります。 NPCや弾丸のように動くエンティティがもっとありますが、影響を受けるのはプレイヤーだけです。これを考えると、問題はおそらくプレイヤーの移動システム(矢印キー)と直接関係があると思います。 オブジェクトのupdate()メソッドは次のplayerとおりです。 def update(self): for event in pygame.event.get(): key = pygame.key.get_pressed() mouseX, mouseY = pygame.mouse.get_pos() if event.type == pygame.MOUSEBUTTONDOWN: self.bulletsGroup.add(Bullet(pygame.image.load("bullet.png"), self.rect.x + (self.image.get_width()/2), self.rect.y + (self.image.get_height()/2), mouseX, mouseY, 50, 50)) if key[pygame.K_RIGHT]: if not self.checkCollision(): self.rect.x += 10 else: self.rect.x -= 10 if key[pygame.K_LEFT]: if not self.checkCollision(): …

2
「実際の単位」をピクセルにスケーリングする一般的なパターンは?
これは、これに対するもう1つの質問です。 描画領域(現在は800x600ピクセル)に合わせるために、世界の表現(現在は160Kmx160Km)をスケーリングするための一般的/典型的/最良のパターンがあるかどうかを知りたいです。 私は少なくとも4つの異なるアプローチを考えることができます。 ナイーブ(これまでのやり方)sc(vector)渡されたベクトルの縮小されたコピーを返すだけのグローバル関数を実装しました。もちろんこれは機能しますが、次のようなコードを書く必要があります。 drawCircle(sc(radius), sc(position)) ラッピング関数。私はいくつかの関数を定義でき、それぞれが元のミドルウェアの関数をラップしています。たとえば、myDrawCircle最初にスケーリングが必要な引数をスケーリングし、次にdrawCircle後者を呼び出すように定義できます。これにより、コードが読みやすくなり、メンテナンスが容易になりますが、馬鹿げているように思える多くのラッピング関数を作成する必要があります。 関数デコレータ。既存のミドルウェア関数を装飾して、クラスのインスタンス化であるすべてのパラメーターに自動スケーリングを提供することもできますVector3Dが、問題はこれらの関数も同じパラメーターで動作listするVector2Dことであり、デコレーターは知る方法がありません。スケーリングする必要があるリスト(半径など)とスケーリングしないリスト(RGB値)。 表面の初期化。描画する表面を定義するときに、倍率を定義できます(そのため、パラメーターとしてピクセルではなくメートルを使用します)。これは私にとって透過的に機能し、私の選択するソリューションになりますが、もちろんミドルウェアに実装する必要があるため、実際のオプションではありません。 ...とにかく、これは非常に一般的な問題なので、見つけられなかったこの問題をエレガントに解決する確立されたパターンがあるのだろうか。 PS:このプロジェクトではpython(pygameを使用)を使用していますが、python / pygame固有の回答は非常に高く評価されていますが、具体的な実装ではなく、パターンの一般的/高レベルの説明に興味があります。 あなたの時間と専門知識を事前にありがとう。

6
pygameのフレームレートを速くする
ゲームをプロファイリングすると、趣味のゲームの実行時間の大部分がブリットコールとフリップコールの間にあることがわかります。現在、約13 fpsでのみ動作しています。私のビデオカードはかなりまともなので、私の推測では、pygameはそれを使用していません。 これを速くするためにpygameで設定する必要があるグラフィック/表示オプションを誰かが知っていますか?それとも、pygameを選んだので、これは私が一緒に暮らさなければならないものですか?

1
gluLookAtはどのように機能しますか?
私の理解から、 gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 以下と同等です。 glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); しかし、ModelViewマトリックスを出力すると、への呼び出しがglTranslatef()正しく機能していないようです。コードスニペットは次のとおりです。 #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …

2
ブリッティング速度を上げますか?
私はPyGameの2Dサイドスクローラーで作業しています。マップごとに1つのテクスチャを使用します(これはテクスチャの実際のサイズです)。 次に、次のコードを使用して画像を読み込みます。 sprite = pygame.image.load("Maps/MapTesting.png") sprite.convert() sprite = pygame.transform.scale(sprite, (sprite.get_width()*6, sprite.get_height()*6)) ご覧のように、テクスチャは6回爆破されて実際のマップテクスチャが作成されます。平均して、このテクスチャは約4500x800です。画面全体が汚れているため(横スクロールのおかげで)、このテクスチャはフレームごとに画面にブリットする必要があります。これは次のコードを使用して行います。 screen.blit(sprite, (0, 0), (cameraposx, cameraposy, windowheight, windowwidth)) そしてそれは機能します。問題は、それがかなり遅いということです。まともなPCでわずか40 FPSを取得します。60FPSを目指しているのに、実際のAI /オブジェクトが何も実行されていません。どうすればこれをスピードアップできますか? 上記のコードはサニタイズされ、コンテキストから除外されていることに注意してください。完全なコードはここにあります:https : //github.com/nightcracker/PyGG2 最後に重要なことですが、上の画像は8ビットのように見えるかもしれませんが、ゲームにはより多くのビット深度を必要とする要素があります。
9 pygame 

0
OpenFLを使用したSceneManagerの実装
OpenFLとHaxeを使用して基本的なSceneManagerを実装しようとしています。OpenFLとHaxeの使用経験はあまりないので、いくつか問題があります。 以下は、SceneManagerクラスの設計方法です。 package; import openfl.display.Sprite; import openfl.Lib; class SceneManager extends Sprite { private var currentScene: ...; public function new(rootScene: ...) { super(); currentScene = rootScene; Lib.current.addChild(currentScene); } public function changeScene(newScene: ...): Void { Lib.current.removeChild(currentScene); currentScene = newScene; Lib.current.addChild(SceneTwo); } } 「...」は、どのシーンでも保持できる一般的な「クラス」タイプに置き換える必要があります。 誰かがこれを解決するのを手伝ってくれるなら、私は本当に感謝するでしょう。

1
OpenGLで頂点を描画する最も効率的な方法
私はOpenGL 3Dゲームを書いています。地形や使用中のオブジェクト用の多数の三角形があります。 私はOpenGL公式ガイドから勉強していて、最初に提示された方法は、描画したい各頂点のglVertex後に関数を呼び出すglBeginことです。 ただし、何千もの三角形を描く必要がある場合、この方法はかなり古くて非効率的です。各フレームで変化しない情報をグラフィックカードのメモリに保存する方法があるので、各フレームをレンダリングすると、その情報はすでにそこにあります。より「不安定な」情報については、おそらくフレームごとに新しい頂点データを送信する必要があるため、別の手法の方が効率的かもしれません。 私の質問に来ます:頂点情報をハードウェアに送信し、レンダリングするための指示を与えるために使用される最も近代的で効率的なOpenGL関数と技術の明確な説明をお願いします。 フレーム中にめったに変化しない頂点データをレンダリングするための順序を送信するための最良の方法とOpenGLツールは何ですか(私は地形とオブジェクトについて考えます)、フレーム中に大きく変化する頂点データを送信するための最良の方法は何ですか?

3
PyGame QIXクローン、塗りつぶし領域
私はPyGameで遊んでいます。 今私はQIXクローンを実装しようとしています。 ゲームループがあり、画面上でプレーヤー(カーソル)を移動できます。 QIXでは、プレーヤーの動きによって画面に痕跡(尾)が残り、ポリラインが作成されます。 画面境界を持つポリラインがポリゴンを作成する場合、領域は塗りつぶされます。 どうすればこの動作を実現できますか? 尾をどのようにメモリに保存しますか? 塗りつぶす必要のある閉じた形状を構築するときにそれを検出する方法は? 私は正確な実用的なソリューションを必要としません、いくつかのポインター、アルゴ名はクールでしょう。 開始時、灰色の境界線のみがあり、プレーヤーがカーソルを移動できます。 最初のシナリオ: ユーザーは、カーソルをポイントAからポイントBに移動し、赤いマルチラインをポイントCまで描画します。この時点で、境界を越えているため、ポイントAは自動的にポイントCに接続され、塗りつぶされるべきポリゴンが作成されます(私の図面上のそのオレンジ色のもの)。ポリゴンの塗りつぶしはPyGameでは非常に簡単です。私がポイントのシーケンスを提供し、残りはPyGameが処理するためです。 2番目のシナリオ: ユーザーはボーダーをポイントDに移動し、そこからラインEに線を引きます。前のポリゴンのラインと交差しているため、ラインとボーダーで別のポリゴンを作成できるので、それも塗りつぶす必要があります。(緑色のもの)。 3番目のシナリオ: プレイヤーはポリゴン上をさらに移動し(既存のポリゴンライン上を移動できます)、ポイントGからポイントFにラインを描画します。ここでも、境界線と既存のラインのため、別のポリゴン(青色のポリゴン)を塗りつぶす必要があります。

5
Pygameに適したUIウィジェットツールキットはありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 Pygameに適した最新のウィジェットツールキットはありますか?私はPGUを見てきましたが、それは明らかにメンテナンスされていません。

4
2Dゲームの作成にはどの言語とツールを選択すればよいですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張ディスカッションを誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 最近、私は子供の頃の趣味(プログラミングゲーム)に戻り、とても楽しいと感じました。私はPyGame(Pythonの場合)を数か月いじり、教育目的でいくつかのプロジェクトを作成しました。PyGameは素晴らしいですが、PyGameを使用する商用ゲームはそれほど多くはありません。私は自分の時間を最善の方法で投資し、理想的には将来的にさらに費用をかけたいと思っています。 私の好きな事: 一人で物事を行う。私は巨大な企業で働いてWorld of Duty-7を少し作ることを夢見ていません LÖVE(Luaの場合)やPyGameなどのフレームワーク。私はそれなしでそれらの派手なピクセルを描く方法を理解することができるとは思えません クロスプラットフォームのもの。 無料のもの。 私が好きではないもの: C ++は私を怖がらせますが、私がどれほど愚かであるかを自由に教えてください GameMaker、RPGmakerなどのIDE。私は自分のツールを作るのが好きです。 私の目標は、テラリア、スーパーミートボーイ、DefConなどの2Dゲームを作成することです。目標を達成するには、どの言語とツールを選択する必要がありますか?
7 2d  pygame  love2d 

8
pyGameの代替?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張ディスカッションを誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 私は「pyGame」についての本からゲームプログラミングについて何かを学んでいます。pyGameは単純ですが、Pythonは少し複雑で、プログラミングに関する私の以前の知識とは異なります。 私は「古典的な」言語を知っています:C#(またC / C ++)、Java ...多くの人々がPythonを愛していることを知っていますが、私にとっては学ぶのが少し難しいです! だから私は「pyGame」のようなものを探していますが、Javaまたはc#用です...私がpygameで行うことができるのとほとんど同じことを行うことができるライブラリです(したがって..少ないコードでより多くのことを行う...そして頭痛) 。
7 python  pygame 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.