Pygameプレーヤー

Hello world 、%Username%。 最近、Habréでpythonに関する記事がたくさんあることに気付きました。 はい、言語は人気を集めています。 やれやれ! そこで私はこの言語に参加することにしました。 すぐに、私は世界という言葉にうんざりして、必要なものを書きたいと思いました。見た目が良くなかったか、重すぎました。 少し怠け者だったので、仕事に取り掛かりました。



脚本を書く最初の段階で、彼は選択に直面しました。 pyqtとライブラリを使用してサウンドを操作するか、pygameを使用します。 私は2番目のものを選んだ、私はそれを非常に後悔した。 プロセスが開始されました。 ここに完全なコードを投稿するのではなく、ここであなたを待っています

ただし、コードにコメントを付けないというひどい習慣のため、pygameを使用する主なポイントをここで強調します。



コンセプトは、プログラムのメインサイクルで情報が処理され、画像が条件付きで変更されるという事実にあります。



実行中:

...



pygame.display.init()

pygame.font.init()

pygame.mixer.init(frequency=44100, size=-16, channels=2, buffer=4096)








使用済みモジュールの初期化。

一般に、理論的には、これらすべてをpygame.init()に置き換えることができますが、より堅実に見え、内部の偏執狂は速度について少し心配しなくなります。 また、最後の行を明確にする必要があります

周波数= 44100-サウンドサンプリング周波数、デフォルト22050(音はひどい)

size = -16-ひどいブードゥー教の魔法。誰かがこのパラメーターの目的を明確にしてくれたら感謝します。

チャンネル= 2-再生するチャンネルの数を指定します

バッファ= 4096-バッファサイズ



pygame.mixer.music.set_volume(self.logic.volume)

再生音量を指定します。 このメソッドは、個々のファイルではなく、プログラム全体のボリュームを示すことに注意することが重要です。



self.screen = pygame.display.set_mode((600,230))







このメソッドは、メインウィンドウとメインサーフェスを作成します。 ご想像のとおり、これは引数として、将来のウィンドウの解像度を取ります。



pygame.display.set_caption(u"Ktulhu fhtang")







メインウィンドウのタイトルを指定します。



self.ui = pygame.font.Font("Arial.ttf",32)







ファイルから新しいフォントをロードします。 ファイルからアップロードする必要はありませんが、sysFont zaparkよりも少し簡単に思えます。

引数として、ファイル名とフォントサイズを取ります。



self.ui.render(u"Play",True,(0,0,0))







このメソッドを使用すると、最初の引数で受け取ったテキストが描画されます。 2番目の引数はテキストスムージングです。 3番目の引数は、形式(r、g、b)の色の値です。 魔法の手紙u ""を入れると、pygameがUnicodeを描画できることに注意してください



self.screen.fill((255,255,255))







通常、画面だけでなく、プリミティブを含む任意のSurfaceで、指定された色で画面をペイントします。



self.screen.blit(self.play,(0,0))







非常に重要なブリットメソッドであり、2つの引数を取ります。 1-任意のSurfaceオブジェクト、2-レイヤーを描画する座標。 このメソッドは何をしますか? 受け入れられたサーフェスを、それが適用されるサーフェスにアタッチします。 この場合、self.playはメインサーフェスにアタッチされます。



event = pygame.event.poll()







サイクルの1回の実行で収集されたすべてのイベントを変数に保存します。



pygame.display.flip()







画面上の画像を更新する方法。 それなしでは、黒い画面以外は表示されません



pygame.time.wait(25)







pythonは非常に高速な言語ではないため、多くのfpsが強力なコンピューターでもロードするため、サイクルを実行するたびに25ミリ秒待機させます。 FPSは測定しませんでしたが、プロセッサーはロードされておらず、レンダリング速度は十分です。



pygameの選択を後悔したのはなぜですか? 全体的な問題は、バージョン3のタグを含むmp3ファイルを再生しようとすると(既に多く存在する)、pygameがハングし、これが非常に不快になることです。 唯一の方法は、ライブラリを変更することです。このバグがいつ修正されるかわかりません。



rghost.ru/38700690-上記の記事で説明したFrankinsteinです。



コードが最も論理的で適切に設計されたふりをしていないことは知っていますが、それでもキックしないでください



All Articles