2006-03-01から1ヶ月間の記事一覧

方向ベクトルと長さ

http://d.hatena.ne.jp/kenmo/20050817#p1 で 「移動量は極座標にするべきだにゃーー!!」 なんてことを書いたわけですが、 これにはちょっとした欠点がありまして、、。 それは、極座標同士の加算・減算の手順が面倒、ということです。 例えば、 45°方向に…

数学物理本

ついカッとなって。ゲームプログラミングのための数学と物理作者: DANNY KODICEK,加藤諒,秋山謙一,杉山明,中村達也出版社/メーカー: ボーンデジタル発売日: 2006/03/25メディア: 大型本購入: 4人 クリック: 430回この商品を含むブログ (23件) を見るホントは…

バイナリデータの扱い

Pythonリファレンスブックなどというものを買ったのですが、 それを見ていたら、バイナリデータを簡単に扱える方法がのっていました。 >>> import struct >>> c = 'a' >>> struct.pack("c", c) 'a' >>> struct.pack("I", 2948509150) '\xde\xad\xbe\xaf' >>>…

理論領域と感覚領域の作り方

たいぶ前から、ずーっと頭の中をぐるぐる回っていたこの記事。 http://ab2.blog6.fc2.com/blog-entry-29.html 「面白いゲームを作りたーい」 と考えているkenmoが、 この理論領域と感覚領域の作り方を考察してみました。 感覚領域の作り方 kenmoが考えている…

レベルデザインめも

kenmoが妄想中のレベルデザインをめも書きします。 経験曲線 レベルデザインの基本は、少しずつ難易度を上げていくことなのですが、 その上げ方を曲線を描くようになだらかにすることで、 心地よいレベルデザインとなります。 ただ、単純な2次曲線にすると…

面白いと思って作ったゲームが、実際作ってみたら面白くなかった!さてどうする?

えーと、バカっぽいタイトルでゴメンナサイ(´Д`; kenmoはよくこの状態になります。 例えば、構想段階では、 「このゲームやべぇ…、、。面白い!面白すぎるぞ!」 とか思ったりするのですが、 作りこんでいくうちに、 「…?あれ?…全然面白くないんですけ…

今日の作業メモ

朝8時に起きて、フレームワークの整備。 キーボード・マウス・ジョイスティックの入力を共通化した。 これで、デバイス間の差異が(たぶん)なくなった。 ヘルオフでるーと雨さんに指摘された、ワイヤーの射出角度まわりを調整。 あと、不自然なワイヤー状…

ゲームヘル2000オフ会

行ってきまちた。 参加された方、おつかれさまでしたー。 kenmo的にかなり収穫が多くて、なかなか良かったです。 お蔵入りしていたワイヤーゲームもプレイしてもらって、 色々感想をいただきありがとうございましたー(´▽`; アクションゲームはジャンプが…

CSVファイルからクラスを作る方法

例えば、こんなCSVから、ヘッダ部分の属性を持つ、データクラスを作りたいとします。 name,hp,mp,str,vit,agi,dex,int,men hoge,100,15,10,9,4,6,4,6 piyo,80,0,9,6,4,7,6,4 momo,90,50,8,8,3,3,10,12#!/usr/bin/env python # -*- coding: utf-8 -*- import …

ログ出力クラス

Pythonでは、以下のようにすると、自動的にコンソールとログに同時に出力できるようになります。 #!/usr/bin/env python # -*- coding: utf-8 -*- import traceback, sys class Logger: FILE_INFO = open("info.log", "w") FILE_ERR = open("error.log", "w"…

ゲームヘル2000オフ 3/19(日)

明日は、ゲームヘル2000のオフ会ですー。 kenmoはゲームヘルメンバーでもないのに、 OMEGAさんやD.K.さんなど有名人に会えるからという、 下心まる出しの突然参加者です。 自作ゲームを持ってくる方もいるみたいなので、 kenmoも、お蔵入りになっていたゲー…

ワイヤーフレームもどき

スクロールする背景を作るのは結構面倒です。 そこで、ワイヤーフレームもどきを作ってみるのはどうでしょうかー? という提案です。 http://kenmo.blog58.fc2.com/blog-entry-3.html 早速、proce55ingで作ってみました。

フィボナッチ数列

フィボナッチ数列のジェネレーター生成関数です。 #!/usr/bin/env python # -*- coding: utf-8 -*- def makeFibonacci(): def fibonacci(): # フィボナッチ数列のジェネレーター a0, a1 ,a2 = 1, 0, 0 while True: yield a0 a2 = a1 a1 = a0 a0 = a1 + a2 re…

Proce55ingメモ

めもめも。 ウィンドウ生成 size(w, h); // w:幅 h:高さ 描画系 background(0xffffff); // 背景塗りつぶし(0xffffffはRGB) fill(0xff, 0xff, 0xff); // 塗りつぶし色を設定(RGB) point(x, y); // x,yに点を描画 line(x1, y1, x2, y2); // x1,y1〜x2,y2に…

今日の弾幕

カニバサミ弾です。 <bulletml> <action label="top"> <repeat> <times>1</times> <action> <fire> <direction type="absolute">0</direction> <speed>4</speed> <bulletRef label="seed1"/> </fire> </action> </repeat> <repeat> <times>1</times> <action> </action></repeat></action></bulletml>

proce55ing

今更ですが、proce55ingをやってみることに。 インストール Processingはここからダウンロード。「↓Windows」をポチッと。 http://www.proce55ing.net/download/index.html 解凍して、C:\processingとかの、日本語パスでないところに置いて、インストール完…

流体シミュレーション

http://hassii.blog39.fc2.com/blog-entry-9.html#more うわー、これ面白いー。 やっていて思ったのが、ゲームおける「感覚的な面白さ」を出すには、 リアルな物理シミュレーションを使う、 ということです。 こういうのをやると、物理の勉強をしたくなりま…

今日の弾幕

ありがちな、ちょっと速めのゆるい誘導弾です。 <bulletml> <action label="top"> <repeat> <times>8</times> <action> <fire> <direction type="aim">360*$rand</direction> <speed>5</speed> <bulletRef label="seed"/> </fire> <wait>10</wait> </action> </repeat> <wait>12…</wait></action></bulletml>

アルファブレンドを使った、ちょっとしたエフェクト

偶然発見したテクニック?です。 例えば、こんな元画像があるとします。 こいつをアルファ値を8とか、すごく小さい値にして、 連続で重ね合わせます。 そうすると、 こんな感じのエフェクトができてしまいます。 この手のエフェクトは、大抵ピクセルにアクセ…

今日の弾幕

サーフィンで波を切るように発生する弾幕です。 <bulletml> <action label="top"> <fire> <direction type="absolute">-135</direction> <speed>3</speed> <bulletRef label="seed"/> </fire> <wait>40</wait> <fire> <direction type="absolute">-45</direction> <speed>3</speed></fire></action></bulletml>

平方根

会社のプログラム見ていたら、平方根を求める関数があったので、 Pythonで書いてみました。 def sqrt(var): if var <= 0: return 0 Xn_1 = var # 漸化式の和 Xn = Xn_1 + 1 # 漸化式の和の1つ前 while Xn_1 < Xn: Xn = Xn_1 Xn_1 = (Xn + (var / Xn)) / 2.0…

今日の弾幕

一定時間で180°方向転換して戻っていくという、ブーメラン的な弾幕です。 近づいて避けたりするとアウトです。 <bulletml> <action label="top"> <fire> <direction type="absolute">-35</direction> <speed>6</speed> <bulletRef label="seed"/> </fire> <wait>60</wait> <fire> </fire></action></bulletml>

今日の弾幕

うろ覚え大往生1ボス。 扇型のばら撒き弾に、狙い撃ち散弾銃です。 <bulletml> <action label="top"> <fire> <bulletRef label="shotgun"/> </fire> <repeat> <times>17</times> <action> <fire> <direction type="absolute">-180+10*$cnt</direction> <speed>3</speed> <bullet/> </bullet/></fire></action></repeat></action></bulletml>

PyBMLサンプル

白い弾幕くんより、大往生3ボスを。 <bulletml> <action label="top"> <repeat> <times>3</times> <action> <fire> <direction type="absolute">-60+30*$cnt</direction> <speed>3</speed> <bulletRef label="roll"> <param>60</param> </bulletRef> </fire> </action> </repeat></action></bulletml>

PyBML

BulletMLをPython用に作ってみました。 ただしkenmoの力不足のため、本家の仕様と結構異なるところがあります。 actionRefが使えない bulletの子要素に複数のactionを指定できない bullet時にメインループに制御を返してしまう fire時のspeedは親に依存 dire…

ソケットプログラミング

http://pleac.sourceforge.net/pleac_python/sockets.htmlを参考に作成しましたー。 まずはクライアントソケットです。 #!/usr/bin/env python # -*- coding: utf-8 -*- import socket class Client: """ クライアントソケット """ def __init__(self, ip_ad…

Pythonでのマイクロスレッド

http://www.gamasutra.com/features/20020821/dawson_pfv.htm を見て知りましたー。 Pythonだとこんなに簡単にマイクロスレッドが、実装できてしまうんですねー。 …今まで知らなかったのが悔やまれます、、。 ウサギとカメのゲーム #!/usr/bin/env python # …

めも

仕事用のメモです。 Apacheのインストール失敗時の回避方法。 インストール時にこんなエラーが出たら、、 (OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、ま たはポートのどれか 1 つ のみを使用できます。 : make_sock: c…

めも

タイマーリセット タイマーのリセット処理は、こう書いてもいいけど、 timer = 0 TIMER_MAX = 16 for i in range(25): print timer timer += 1 if timer >= TIMER_MAX: timer = 0 こういう風に書くこともできる。 timer = 0 TIMER_MAX = 16 for i in range(2…

Builderパターンによる調合システムの構築

今回は、Builderパターンを使って、最近はやりの「調合システム」を構築してみます。 kenmoの勝手な考察ですが、調合システムは、 単体では弱いが、組み合わせをすることにより強力なアイテムになる 「あとアレがあれば、強力なアイテムが作れるのにー」とい…