C#は電気羊の夢を見るか?(引っ越し中)

dtiブログが閉鎖とのことでhttp://tanocs.blog.fc2.com/へ引っ越します。

小技、格言とかいろいろ

・エクセルの小技
Ctrl + 6 ×2回 オブジェクトが消える
Ctrl + 0 行を畳める
Ctrl + Shift + 7 罫線が引ける

シート右クリック→全てのシート→印刷プレビュー
とするとブック全体のプレビューになる。
応用で、シフトを押しながらシートを選択して行けば、
選択したシートだけのプレビューになる。


・C# の小技
System.Diagnostics.Debugger.Launch();
とすると無理やりデバッガを起動できる。


デザイナ上のbutton.textの改行はtextプロパティのプルダウンメーニュから出来る
プルダウンせずにALT+Enterや¥nではできない。

object型は(int)objectとキャストせずに
int.Parse(object.toString());とする

小数点を扱う場合、小数点誤差を考えること
特に整数に直す場合、この誤差が大きくなることが多々ある。
この場合はdecimal型を利用する


int a=1;
int b=5;
float c = (float)(a / b);
cの値は0になる

0.2にするためには
float c = (float)a / b;
float c = a / (float)b;
float c = (float)a / (float)b;

言うまでもなく
float c = a / b;
は0


・C#のトラブル回避術
文字列比較にstring.emptyはナンセンス。
長さを測って判定する。

DBのnull判定のみは危険。
想定していない空白データが入ってくる危険性を考慮する。

DatatableのRowsはRemoveAtで削除する
Deleteだと空白行が残る

またキーがない場合は直接削除出来無い
また、削除するためにforを使用する場合デクリメントで行うこと、
さもないと添字エラーが発生する


・知ってそうで、知らなかったこと
『メッセージボックス』は、基本的には1行または複数行のメッセージと、
「はい」「いいえ」や「OK」「キャンセル」などのボタンだけが表示されるウィンドウの事で、
『ダイアログボックス』は、ユーザに対して何らかの入力を求めるための
コントロールが配置されているウィンドウの事。

IMEの表示で[_A]となっているのは『半角英数モード』で
[ A]は『直接入力モード』と言う
このエントリーをはてなブックマークに追加
LINEで送る

かまいたちシェーディング

かまいたちシェーダ


狙って作ったわけじゃぁない。
中途半端なところで深度バッファにNull入れたらこうなった(;´Д`)

恐らくスプライトバッチの描画の際深度情報がすっ飛んでひっくり返ってしまった結果だと思う。

リクエストとかあればちゃんと調査しようと思う。


どうでも良いけど、色合いからか「きみのためなら死ねる」とかも思い出した。
このエントリーをはてなブックマークに追加
LINEで送る

Google日本語入力をつかっていると

VisualStudioで最近プルダウンメニューの動きがおかしいなぁと思っていたのですが、
どうやら、Google日本語入力の性なんだけども、Microsoft様が別件で出してるHotfixで直るとのこと。


意外と不便をしていたので、これは助かる。

http://support.microsoft.com/kb/956625
このエントリーをはてなブックマークに追加
LINEで送る

スマートなトグル処理

なんと言うか、インタフェースを作る上で当たり前の事だけに、
わざわざサンプルになっていない事が多い『一回だけボタンを押す処理』

いつもは”妙ちきりん”なフラグをボタン一個一個に用意して処理していたのだが、
この処理を書くたびにソースが汚れていく・・・

しかし、これと言った方法がどこかに掛かれている事も無く、
これだ!と言う解のあるサンプルに出会わなかったのもあって、
ずっとこの適当なフラグ処理だった。

しかし、ようやく「なるほど!これだ!」というソースに出会ったのでメモしておく。


メンバに
KeyboardState lastKeyboardState = new KeyboardState();
って感じで前の入力状態を保持しておく

あとはupdateメソッド内で
if (keyboardState.IsKeyDown(Keys.T) && lastKeyboardState.IsKeyUp(Keys.T))
とかってしてやればトグル処理になる。

updateメソッドの最後に
lastKeyboardState = keyboardState;
とやるのもお忘れなく。


これなら、一つ一つのキーの状態を一々保持する必要が無いので、
ソースの美しさを保ちつつ、好きなだけトグル処理を入れられる。

独学でやってると、こういう「あたりまえ」が抜けやすくて困る。
このエントリーをはてなブックマークに追加
LINEで送る

弱ったぞ・・・

予想だにしていなかった事態に陥った。
とか言いつつ、単に事前調査不足なだけだったりしますが。

まぁともかく、その問題はXNAがモーフとかモーフィングアニメーションとか
頂点アニメーションとかバーテクスアニメーションとかシェイプアニメーションとか
そんな感じに言われてるものに対応していない事だ。


まぁどうせ、その辺にサンプルが・・・ない!
って感じでお手上げ ┐(´ー`)┌

ただまぁ、一応、作るには作れる、と思う。
モーションブラーの副産物で複数頂点をGPUに送る部分はできているので、
ソースモデルとターゲットモデルを設定して、その割合から頂点を求めれば良いはずなので、
そんな感じのカスタムシェーダで実装すれば多分出来るはず。


But!しかし!だ。
肝心要のモデルエクスポーターが無い。

今使っているBlenderでいえばShape keyの値をエクスポートできない。
どうしたもんかなー

とうとうPythonやる・・のかぁ?
このエントリーをはてなブックマークに追加
LINEで送る

 | HOME | 

PAGE TOP ▲

Appendix

■春条

■春条

生息地は愛知
車と甘い物が好きな31歳
特技は無限昼寝

MONOからSharpDXを使う
変態的な手法で、
.NET Frameworkを使わずに
ゲーム作りやってます。

Search

Calender

« | 2010-05 | »
S M T W T F S
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

Twitter

Recent Entries

DTIブログポータルへ
このブログを通報
Report Abuse

利用規約