アセンブリに比べたら革新的な書きやすさ、とか思ってたけど、いい加減うんざりしてきたね。要所要所にいらっとくるのだよ。javascriptのようなサーバーサイドらしからぬ不安定感もあるし。だいたい他のメンバーが触れるようにってことでこうなったのに俺し…
ZendFramework 1.7.5 value } の連想配列を渡す protected function _filterRule(array $filterRule) { $fields = $filterRule[self::FIELDS]; if (!is_array($fields)) return paren…
unique なカラムのチェックをバリデート時に行いたい。Table scheme CREATE TABLE `page` ( `id` int PRIMARY KEY, `user_id` int, `url` varchar(255), UNIQUE (`user_id`, `url`) ); My/Validate/Unique.php
関数名にも一貫性がないけど、頻繁に使うものなら名前くらいは覚えられる。が引数の順序の一貫性のなさにはまいるね。
public void AddEventHandler(object target, string eventName) { EventInfo e = target.GetType().GetEvent(eventName); EventHandler handler = (sender, args) => {}; e.AddEventHandler(target, handler); } リフレクションを使えばとりあえずできるが…
ゲーム開発でありがちな、フレームごとに呼び出して順次状態が変わっていくような処理を書く時は、処理を任意の位置で中断できるコルーチンというのを使うとよかったりするらしい。C# だと yield。なるほどねー。もっとまわりくどく書いてたよ。
解決策がなさそうなので面倒にならないようにうまいことやれ、くらいか
public class EventTestClass { public event EventHandler NewEvent = delegate { }; protected void OnNewEvent() { NewEvent(this, EventArgs.Empty); } } http://www.dailycoding.com/Posts/avoiding_event__null_check.aspx ふむふむ(あとで確かめる)
さてそろそろオリジナルのゲームをつくろうかなと思ったところで、ファミコンで作ろうとすると並大抵でなく苦労するであろうことに気付いてしまった
VRAMのアクセスはVBlank中にしなくてはいけない。VBlank中かどうかを確認できたらいいと思うんだけど、そういうことはできるのだろうか。 renderLoop: ; VRAM に書き込むコード lda $2002 bmi renderLoop ; VBlank 中は $2002 の 7bit on のようにしたいのだ…
手軽に8bitの乱数っぽいものを作りたい。 N := (N xor $AA) + 73; http://www.programmersheaven.com/mb/Console/100277/100277/nes-random-numbers/ 試す。 irb(main):001:0> hash = {}; (0..0x100).inject(0) {|rnd, i| print rnd, ' '; print "\n#{i} / c…
ギコ猫でもわかるファミコンプログラミング - ラスタースクロール を MMC3 で書き換えたもの。画面走査のタイミングのプログラムだなんて、ファミコンはおっかない世界だねぇ。 参考文書 http://bobrost.com/nes/files/mmc3irqs.txt http://www.media.imit.ch…
回答のチェックなどはなく、ただ操作できるってだけだけど。ファミコンむずかしすぎ
数字をカウントするだけ。プログラムの雛形にと思ってメモ。わけもわからず書いている部分が減ってきてよい感じです。 ;;; 秒数をカウントして表示 .inesprg 1 ; プログラムバンク数 .ineschr 1 ; CHR データバンク数 .inesmir 0 ; 水平ミラーリング .inesma…
カーソルを動かせるようになった。それだけなのに大変なの ;;; use nesasm ;;; カーソルを動かしてひらがなを指すだけのプログラム .inesprg 1 ; プログラムに使うバンクの数 .ineschr 1 ; bg, sprite データに使うバンクの数 .inesmir 0 ; 水平ミラーリング…
アセンブラがことのほか難しい ;;; use nesasm ;;; http://alohakun.blog7.fc2.com/blog-entry-909.html を下地に作成 .inesprg 1 ; プログラムに使うバンクの数 .ineschr 1 ; CHR データに使うバンクの数 .inesmir 0 ; 水平ミラーリング .inesmap 0 ; マッ…
plain text とやるのが定石なのかな?ファイル末尾にはできないけど...ヒアドキュメントでいいか...
仮想メンバ関数がある場合、当該C++クラスはObjective-Cのインスタンス変数として機能しません。 #import <Cocoa/Cocoa.h> struct Class0 { void foo(); }; struct Class1 { virtual void foo(); }; struct Class2 { Class2(int i, int j); }; @interface Foo :NSObject { C</cocoa/cocoa.h>…
Java 1.5.0 http://blog.zakura.jp/cal/2008/04/javaurldecoder.html修正したバージョンをあげている人が見つからなかったので書いた。 import java.io.*; import java.util.*; public class URLDecoder { public static String decode(String s) throws Uns…
素直に Hibernate を使っとけ。アノテーションを使えばそれほど設定は面倒でない -> http://www.fk.urban.ne.jp/home/kishida/kouza/hibernateanno.html。多少の冗長さは我慢(Java を使っているあなたなら、この程度の冗長さを”多少”と呼べる心の広さを持ち…
例えば、今コーディングしている状況はですね、次のような user defaults があって Root: PaletteWindows: - PaletteNames: - Inspector - Navigator パレットウィンドウがいくつかあって、そのウィンドウの中にまたいくつかパレットが入っている、photoshop…
OS X 10.5.4 cell のサブクラスを作って expansionFrameWithFrame:inView: で NSZeroRect を返せ
OS X 10.5.4 NSTableView のリファレンスを見るとそのものずばりの事が書いてある tableView:shouldTrackCell:forTableColumn:row: For example, this allows you to have an NSButtonCell in a table which does not change the selection, but can still b…
OS X 10.5.4 http://developer.apple.com/documentation/DeveloperTools/Conceptual/IBPlugInGuide/Introduction/chapter_1_section_1.html そんなばかな
OS X 10.5.4 パレット内にtextfieldを置くなどしてキーイベントをとりたいときは、windowのcanBecomeKeyWindowでYESを返し、パレット内のサブビューでacceptsFirstMouse:がYESを返すようにする。ボタンなど組み込みのUIは最初からacceptsFirstMouse:がYESの…
OS X 10.5.4 たとえば次のようによぶと [view bind:@"value" toObject:model withKeyPath:@"name" options:nil]; 陰でNSBinderなどが働いて、model の name に変化がないか監視しはじめる。model の setName: などが呼ばれると、監視している人は view の va…
OS X 10.5.4 方法(1) CGBitmapContextCreate() で作った CGContext から CGImage を作って表示 CGContextRef bitmapContext = CGBitmapContextCreate(buffer, ... ); CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPor…
OS X 10.5.4 かわりに HIViewDrawCGImage を使う。 #include <Carbon/Carbon.h> して Carbon.framework をプロジェクトに追加すると使える。よくわからないけど。</carbon/carbon.h>
OS X 10.5.4 http://www.stripe-net.jp/cocoa/program/blog20080208.html?page=comments コメントも参照。これでインスタンス変数を追加したりしなくても双方向に通知がいく、と思われる
OS X 10.5.4 Interface Builder 3.1 NSPanelのサブクラスを作って以下のメソッドを上書き。 - (BOOL)canBecomeKeyWindow { return NO; } - (BOOL)canBecomeMainWindow { return NO; } Interface Builder で Panel を作って、今作ったクラスにして、Utility …