スキップしてメイン コンテンツに移動

投稿

10月, 2008の投稿を表示しています

ActionScript 3.0でハロウィン

お菓子をくれなきゃ、いたずらするぞ! Trick or Treat!

ということで、ハロウィン。ActionScript 3.0を使って10分ほどで作成。カボチャをクリックすると色が変わる。

以下に、ソースコードを示す。

Halloween.as

// Halloween.as // by nox, 2008.10.31 package { import flash.display.*; import flash.text.*; import flash.events.*; import flash.utils.Timer; public class Halloween extends Sprite { // dafont.com http://www.dafont.com/ [Embed(systemFont="Halloween Borders", fontName="HalloweenFont", mimeType="application/x-font" )] private static const HalloweenFont:Class; private var txtHalloween:TextField = new TextField(); private var HalloweenStageWidth:int, HalloweenStageHeight:int; private var timer:Timer; private function ClickHandler(event:Event):void { var format:TextFormat = txtHalloween.getTextFormat(); format.color = Math.random() * 0xFFFFFF; txtHalloween.setTextFormat(format); …

ActionScript 3.0で少し早いクリスマス気分を味わう

クリスマスあたりを目処に簡単なゲームをActionScript 3.0で作ろうかと思って、その雛型を作ってみた。雛型なんでホントに形だけだけど。それでも赤と緑の色合いとクリスマスソングで気分だけはクリスマスっぽくなるなぁ。それにしても未だにActionScript 3.0の使い方がこんなんで良いのか疑問に思う。なんだか無駄の多いコードのような気がする。

以下のFlashコンテンツをマウスクリックなどでアクティブにして適当なキーを押すと始まる。MP3だけで2.5MBあるので少し重いかも。尚、音が鳴るので注意すること。因みに飛んでいる天使をクリックすると…。


BGMにtaitai studioフリーMp3素材集からHappy Christmas Partyを利用させてもらった。また、効果音は効果音gから。フォントについてはdafont.comからクリスマス関連のフォントを使用した。

以下、ソースコード。

ActionXmas.as

// ActionXmas.as // by nox, 2008.10.29 package { import flash.display.*; import flash.text.*; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.utils.Timer; public class ActionXmas extends Sprite { // taitai studio http://www.taitaistudio.com/ // taitai studio フリーMp3素材集 http://www.taitaistudio.com/mp3/ [Embed(source="xmas.mp3")] private static const SoundXmas:Class; // 効果音g http://sfxg.bufsiz.jp/index.html [Embed(source="slap01.mp3")]…

Processingで分子動力学計算

Processing面白いなぁ。以前はhttp://proce55ing.orgが公式サイトだったことから、Proce55ingとしても知られている。Java仕様のビジュアルデザイン用プログラミング言語なのだが、とても簡単に扱うことができる。プログラミングでアートする感じ。

そこで今回はなんちゃって分子動力学計算プログラムを作ってみた。もちろん原子をリアルタイムに計算しながら表示させている。ただし、コードを短くするために分子ではなく疑似原子単体同士の相互作用にしている。そのため計算している相互作用はvdW力とクーロン力のみだ。また特に工夫をしているわけでもなく全原子同士のすべての相互作用をそのまま計算している。分子動力学計算の詳細についてはPEACHによる生体分子の分子動力学シミュレーション(1)原理と方法あたりを参考にすると良いと思う。

実際のプログラムを以下に示す。num_atomsで原子数を指定しており、初期配置を比較的密集させてその状態で力を計算させている。また、左上にエネルギーを表示している。初期の高エネルギー状態から低エネルギー状態に安定化するのが見て取れる。その他の詳しいことは実際にソースコードを読めば分かると思う。短いしね。




以下、ソースコード。

simple_md.pde

/** * Simple molecular dynamics by nox, 2008.10.21. * * Perform molecular dynamics for pseudo-atoms without internal * interactions, such as bonds, angles, dihedrals. Only vdW and * Coulomb interactions. */ final int num_atoms = 20; Atom[] atoms = new Atom[num_atoms]; void setup() { size(360, 360, P3D); noStroke(); // initialize positions of atoms int cnt = 0; int num_side = ceil(pow(num_atoms, 1.0 / 3.0)); for (int…

2D物理演算ソフトウェアPhunを楽しむ

2D物理演算ソフトウェアのPhunは楽しい。Phunと云う名前自体が、Physics(物理)+Fun(楽しむ)の造語であり、名が体を見事に表している。

物理演算と聞くとなにやら難しそうだが、このPhunは少しも難しくない。もちろん壮大な設計図のもと、緻密で複雑な機械を作ろうとすれば大変だろうが、とりあえず四角や丸の置物、バネや水を出してみたりといったことはマウス操作でちょちょいのちょいだ。3歳の子供だってできるのだから誰にだってできるだろう。



まずはここに掲載されているPhunの動画を見て欲しい。ちょっとばかり楽しい気分になれる。因みに自分はリトルビッグプラネットのβテストが終わってしまったので、発売日までそれに代わる類似ソフトを探していたところPhunを知った。もしPhunを少しでも楽しめたのならリトルビッグプラネットに嵌ることは間違いないと思う。

ブルーレイディスクで録画データをバックアップ

自宅の居間に設置しているPCはほぼ録画専用になっていてHDD容量は500GBだ。しかし、この容量でも録画目的だと全然足りない。仕方がないので、MPEG-4に変換して保存したり、DVDにバックアップしてたりしたのだが、バックアップの手間が非常にかかるので、先日、ブルーレイディスク(BD)ドライブを購入した。

MPEG-4への変換は、Pythonスクリプトとmencoderを使って、タイトルから自動的にフォルダを割り振って変換するようにしてあるので、ある程度自動化できていたのだが、DVDへのバックアップについては、1枚4.8GBの容量では何度もドライブから出し入れしなくてはならず非常に厄介だった。BDだと一層で25GB、二層(DL)で50GBと、DVDに比べ容量が格段に大きいのでバックアップがとても楽になった。最近はBD-Rの値も下がり、一枚350円を切る値段になっていて、これなら許容できる。

と云うわけで、我が家では着々とBD化が進んでいる。そう言えば最近は市販のDVDはまったく購入しなくなってしまった。BDの画質を見た後だととてもDVDを購入する気にはなれないなぁ…。

C言語で複数のアルゴリズムを使って円周率を求める

以前、大学でプログラミング実習を教えたときの課題だった、複数のアルゴリズムで円周率を求めるプログラムが出てきたのでここに書いておく。実行時間も測定している。これはCで書いたけど、使用言語はFortranでも可だったはず。

出力結果:

Machin's formula: 3.14159265358979 Time: 0.437000s (1000000 times) Gauss-Legendre : 3.14159265358979 Time: 0.219000s (1000000 times) Count points : 3.14552000000000 Time: 0.265000s (10 times) Monte Carlo : 3.14394000000000 Time: 0.594000s (10 times) Circumference : 3.14159265358979 Time: 3.047000s (1000000 times) Integral : 3.14159265393433 Time: 0.375000s (10 times)

Machin's formula, Gauss-Legendre, Circumferenceは100万回計算、Count points, Monte Carlo, Integralは10回計算して時間を測定している。それにしても、算術幾何平均を使ったガウス-ルジャンドルのアルゴリズムは速いなぁ。

以下、ソースコード。

/*======================================================= ratio of the circumference of a circle to its diameter =======================================================*/ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> /*-----------…

PS3:「リトルビッグプラネット」信じられない面白さ

1年以上前に「LittleBigPlanet」というエントリを書いた。そしてとうとうリトルビッグプラネット日本語版が10月30日に発売する。それに先駆けて、βテスターの募集があったのだが、運よく日本地域枠の2万人に入ったようでβテストに参加することができた。因みに、米国、欧州でそれぞれ2万人の枠があり、全部で6万人のβテスターがいることになる。

早速、PSN経由で1GB弱のファイルをダウンロード、インストールし、プレイしてみたのだが、予想以上に楽しい。本当に楽しい。誰にでもすぐにできる簡単操作、自由にコーディネートできる愛くるしいリビッツ人形、世界中の人とのオンラインプレイ、想像力を刺激するステージのクリエイトなど。これほど予想を上回るできのソフトはアンチャーテッド以来かなぁ。アンチャーテッドとはジャンルがぜんぜん違うけど。

百聞は一見にしかずということで、まずはトレイラー動画を観ていただきたい。



どうですか? 面白そうですか? 実は自分はそれほど面白そうだと思わなかった。もし、この時点で凄く楽しそうと感じたなら、即、購入で間違いない。

動画ではそれほど面白そうだとは思わなかったけど、確かに実写のようなプレイ画面や驚くほどリアルな物理演算処理は凄いと思ったので、βテストに応募してプレイしてみたのだが、このとき初めて自分の考えが誤っている事に気が付いた。これはプレイしないとその凄さが分からない。百見は一プレイにしかず、である。正直、このゲームの楽しさ、面白さは文章では伝わらないと思うので、これ以上の説明はしない。しかし、週末のプレイを楽しみにしていたところ、子供たちに見つかって占領されてしまい、自分はあまりプレイできなかったことからも、その楽しさが伝わるはずだ。

やっとPS3の性能をちゃんと使った、次世代機らしい、素晴らしいゲームソフトが出てきた。老若男女を問わずに遊べるので是非多くの人にプレイして欲しい。