【pygame】pythonでゲーム製作【ぱいがめ】
■ このスレッドは過去ログ倉庫に格納されています
オブジェクト指向スクリプト言語のpythonでゲーム作ろうぜ!!
>>1
ひろまさ乙
ところでおまいらゲームループどうやって組んでる? 10 'ループ カイシ
………
120 GOTO 10
ひろまさって誰だyo
>ゲームループどうやって組んでる?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/923.txt
おれは↑みないなクラスで作っといて
class Main(EventHandler):
def __init__(self):
EventHandler.__init__(self)
self.event_map[] = self.onKeyDown #イベント登録
def onKeyDown(self, event):
途中で投稿してもたorz
class Main(EventHandler):
def __init__(self):
EventHandler.__init__(self)
self.event_map[KEYDOWN] = self.onKeyDown #イベント登録
def onKeyDown(self, event): #キーが押されたときの処理
#ほげほげ
def update(self): #1フレームに一回呼ばれる処理
#はげはげ
main = Main()
main.eventloop()
みたいな感じなんだがどうなんだろ
Windowsでやってみようとしたけど、いきなりhello, worldで躓きました。
メモ帳でprint "Hello, world"と書いて、test.pyで保存。
pythonのあるディレクトリにpathを通して、
コマンドプロンプトからpython test.pyとやったら、
File "<stdin>", line 1
python test.py
^
Syntax Error: invaild syntax
だってさ。何なんでしょ?
あと、test.pyをダブルクリックすると、pythonインタプリタが起動して
Hello,worldと表示した後、すぐに閉じるけど、Cのsystem("pause")みたいなのは
無いんでしょうか? 勘違いしてた。
コマンドプロンプトからは実行できた。
でも、python.exe上から実行できない。 >Cのsystem("pause")みたいなの
raw_input()
もしくは
import os
os.system("pause")
かな
>python.exe上から実行できない。
たとえばpython.exeからhoge.pyを実行したい場合は
import hoge
2回目以降は
reload(hoge)
でできまつ >ひろまささん
うまくできました。
ありがとうございます。 http://www.unixuser.org/~euske/doc/pygame/ChimpLineByLine-j.html >>12
そこはむしろ「Python によるゲームプログラミング実況中継」の方が面白い. panda3DやSoya3DもPython使うからスレ違いじゃないよね。 3Dエンジンだとこんなのも、あるみたいですね。
PyOgre
http://www.ogre3d.org/wiki/index.php/PyOgre
あと、Pythonのyield文を使ったジェネレータは、
メッセージループの中でスレッドっぽく使えて、
ゲームプログラミングで非常に便利かと。 さすが海外ではメジャーなPythonだね。pygame、Panda3D 、Soya 3D、PyOgre探せばまだ出て来そうだな。 海外の主要なフリー3DエンジンのPythonバインディングはほぼ揃ってると思っていいよ。
Crystal space
http://crystalspace3d.org/docs/online/manual-cvs/cs_4.19.4.php
Vemom - Irrlicht for Python
ttp://www.stenhard.net/news.php
Panda3Dも良さげだが、漏れは今Soya 3Dで遊び始めてる。
Pure Python(Pyrexも混ざってるけど)でエンジンを記述する心意気が気に入ったw
扱いやすさという意味では、かなり扱いやすい部類だと思う。
tutorial案外充実してるしね。
低レベルのテキストコンポーネントsoya.widgetでは日本語も表示できるのは確認。
Portalとかセルシェーディングとか、さりげに面白い機能持ってるのよね。
pandaってのは黒人と白人の共存を意味してんのかね? 色々有り過ぎて迷うな。それぞれの特徴、機能、使いやすさ、情報量などをまとめた物が欲しいよ 長文になるがまとめてみた。
PandaやSoyaみたいなほぼPython専用じゃないのは、
エンジンの比較についてはこっち見るとよかろう、
(Ogre、CrystalSpace、Irrlichtあたりね)
各種ライブラリ紹介スレ
ttp://pc8.2ch.net/test/read.cgi/gamedev/1008220559/
SoyaとPandaについては、どっちも日本語情報は皆無だな。
ただし、どっちも本サイトのチュートリアルは充実してるので、
英語さえ無問題ならかなり使いやすい。
機能的にはPandaの方が上っぽいが、
PandaはPythonのライブラリというわけじゃなく、
「3D拡張された専用Python2.2インタプリタ」という感じなので、
2.3以降の言語機能が使えなかったり、
Panda以外のライブラリと組み合わせにくいのが欠点か。
あと、Mac非対応なのも欠点かな。
モデルフォーマットは独自形式だけど、
obj、3ds、X形式等主要なフォーマットからのコンバータ同梱なので、
案外困らない。
Soyaは普通のPythonライブラリなので、他のライブラリと組み合わせるなら、
こっちの方が扱いやすいかな。
総合的な機能ではPandaに劣るけど、先にあったように
Pandaも持ってないような面白い機能(Portal)がある。
アニメーションモデルがCal3dというオープン系フォーマットオンリーなので、
Cal3dが吐けるモデラ(Max、Maya、Blender、MilkShape)が必要なのが欠点かな。 >>30
ありがとう
どちらも甲乙付け難いですね。僕は機能の多いPandaを使ってみます。 #頭をほぐす計算ゲーム?
import random
p=0
for i in range(20):
a=int(random.uniform(1,9))
b=int(random.uniform(1,9))
print("%d + %d =") % (a,b)
c=input()
if c == (a+b):
p=p+1
print("%d/20")%p
#スレ汚しごめん インデンテーションして、
import random
p=0
for i in range(20):
a=int(random.uniform(1,9))
b=int(random.uniform(1,9))
print("%d + %d =") % (a,b)
c=input()
if c == (a+b):
p=p+1
print("%d/20")%p うはw
import random
p=0
for i in range(20):
a=int(random.uniform(1,9))
b=int(random.uniform(1,9))
print("%d + %d =") % (a,b)
c=input()
if c == (a+b):
p=p+1
print("%d/20")%p
こうですか?
pythonの勉強になった。ありがとう ツーちゃんねるの仕様。
最近OpenGLとかいじり始めたんだが、ファンクションネームをグーグルで検索するとPythonの
ラッパーのドキュメンテーションの方が先に引っかかるな。 Pythonのお勉強スレのまとめwiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/ Panda3DがPython2.4対応になってるね
ところで日本語表示って出来る? 1.0.5の時にフォントに日本語指定して、utf8エンコードしてやれば出せるのは確認した。
1.1.0に変わってから確認してる暇がないorz フォント指定とエンコードをutf8にした上で
Config.prc に text-encoding utf8 を追加したらいけた
ttp://www.panda3d.org/wiki/index.php/Text_Rendering
保守
pygameサイトの看板がクリスマス使用になってる Blender 2.41 が出てるけど,Blender Game Engine とか Python API 試した人いる? eff
ttp://hp.vector.co.jp/authors/VA012411/
国産の3Dゲーム用モジュールだって
フレームワークとしても一線を超えてるんじゃない?
少し試したところボーンアニメのサンプルが
うまく動かなかったけど。 つ ttp://directpython.sf.net >48
0.2が出てるな。出たばかりみたいだし期待。 pygame用のpy2exeを0.5.xでも使えるように改造してみた。
ttp://gamdev.org/up/img/5036.zip
中見ればなんとなく分かると思う。
exeに変換するときはダブルクリックでもいけます。 Pygameでゲームを作ろう
ttp://pygamebegin.web.fc2.com/index.html Pygameでゲームを作ろう
ttp://www.halb-katze.jp/
に移動してた。
しかし、活気無さ過ぎるなこのスレ。 最近pygameの存在を知り、早速勉強をはじめようと思った矢先・・・
なにこの閑古鳥 夏休みなんだからpygameでなんかつくってみれ
と保守のついでに書いてみる。 pygameで画像の一部分を切り取って画面上に表示することは可能ですか? >>62
Surface.blit(source, dest, area=None, special_flags = 0): return Rect
source: 貼り付けるサーフェス
dest: 位置を指定するためのRect
area: 切り抜く位置(省略時はサーフェス全部をそのままはっつけ)
special_flags: 貼り付け方法(乗算とかの指定)
画像を読み込んで、そこから一部分を切り取ってサーフェスにするのなら下の方法。
tmpimg = tmp.subsurface(tmprect)
tmp: 読み込んだサーフェス
tmprect: 切り抜くサイズのRect
tmpimg: 切り抜いたサーフェス pygameいじってみようかと思ってたらやっぱりスレあるのね。
とりあえず、pythonの言語仕様を覚えてからまた来るわ。 Pythonの言語仕様は一通り読んでみたよ。なかなか面白いね。
pygameの方はまだドキュメントが少ないかな。もっと流行って欲しいね。 Pythonプログラミングの練習がてら
ゲーム作ってるけど、難しいねぇこれ
2Dはともかく3Dになると他の知識ないときっついわ 何が難しいってゲーム作ったりAPIとかを使いこなしたり
プログラムをくみ上げたりするのが難しいんだよな。 上で国産のフレームワークが話に挙がってるけど
日本語なのはありがたいが、チュートリアル皆無なのが痛いな
日本語である意味が消えうせてる
意味わかるんだったら英語版でも大丈夫だからな
チュートリアルさえ充実すれば最強なんじゃないかな Panda3D弄ってるけど
ファイルフォーマットが面倒だな・・・。
多機能なのはいいんだが
Mayaか3DSMAXないと変換できないようなことが書いてあったから敷居高いな 悪い、適当なことほざいてた
試しにXファイル読めるかやってみたら読めたわ
モーションもXファイルの中で指定してやれば動くな
結構いけそうな気がしてきた モーションを指定してやり
動かしてみる・・・すると超高速で動いてる罠
Xファイルを直に開くと普通に動く
どこ参照してるんだろうこれは pygameつかってサウンドカードから録音したいんだけど、APIがみつからん。
ひょっとしてそういう機能はないってこと? >>78
どうもありがとう。
windows環境なので、以下のサイトの recordwin32.py でいくことにしました。
http://www.johnnypops.demon.co.uk/python/
pymediaもよさだったんだけど、python2.4向けのバイナリパッケージがなかったんでやめました。 Panda3Dでは
モーションレートを直接弄れるようだけども
Xファイルのみだとモーションの座標だけ反映されるようなので
アニメーションにならずにパラパラアニメっぽくなるな
やっぱフォーマットそろえないとダメか
形状ファイルはXでもよさそうだがモーションはeggにしないとアウトっぽいな 今後の目標立ててやった方がいいか
1、Panda3Dのソースを弄り3Dモデルを表示させ、モーションも導入(今ここ
2、移動が手動で出来るようにする
3、カメラも手動で動かせるようにする
4、モデルの速度でモーションが変わるようにする(歩く→走る)
5、ジャンプを出来るようにする
6、フィールドとモデルの統合性をとる
細かく分ければもっとありそうだけど、こんなもんかな・・・。
何かこうしたら良いっていうアイディアあったらください
っていうか過疎凄まじいねぇ、ゲ製作板自体人いないのはあるけども・・・。 ここ数日かけて国内外の主要3DCGソフトを試してみるも
どうにも馴染まない・・・。
MQOとRokDeBoneでモーションつけるのが一番楽に感じる
プログラミングの内容よりも
モデリングに時間をとられて全然進まないなぁ
とりあえずカメラを自キャラにあわせたいけども
なかなか出来ない panda3Dは機能も申し分ないんだけど
英語できないと豊富なドキュメントすらまともに扱えないっていう罠がなぁ
日本語化できたら最強だと思うんだがなぁ >>84
ねずみ会社の日本担当者が翻訳したりとかしないかねえ…
Panda3d使ってるトゥーンタウンオンラインは日本でもサービス
してるから。。。 >>85
開発してるのが海の向こうだし
期待するだけ無駄かなぁ
まあでも3Dエンジンで日本語ドキュメントが充実してるのって
殆ど無いし事実上英語できないとろくに弄れないのは事実だよね
それだったら自作でエンジン作るしかないし
エンジン作れるくらいだったら普通は困らない Vectorを使うあたりまで来たけど
リファレンスと格闘中・・・。
vector関係のクラスがかなりあってどれがどれか全くわからねぇ・・・。
気紛れにHSPをダウンロードしてみてファイル覗いてみたんだけど
わかりやすい、やっぱ日本語ってのは凄まじい利点だね
でもそれじゃPythonを使うっていう目的が果たせない
とにかくPandaで頑張ろう・・・。 pythonかじりたてでもpygameって使えるんですか? 使えるよ。
サンプルとかチュートリアルが英語だけど、頑張ればなんとでもなる。 >>89
俺なんてPythonの基礎とかろくに覚えずに即Pygame使ってるぞ
なんとかなるもんだ >>89
ゲーム作りながら勉強になる、と思えばいいんだよ。 旅行なんかで忙しくて全然。
何からやれば良いのか、また調べて見ます ひょっとして
main() {
printf("HelloWorld");
}
どまり? 最近、Pythonを勉強し始めたんだけど古い情報多いな。
pygameで作ったプログラムのWindows実行ファイルの作り方を調べるだけで半日以上潰した。 ■ このスレッドは過去ログ倉庫に格納されています