サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大阪万博
toburau.hatenablog.jp
プログラミングにおける不安と学びのプロセス - 人間とウェブの未来 プログラミングを学んで技術を向上していくことに関してのブログ記事。 自分を振り返ってみると、最近はまったく新しいコードを書くということは減ってきて、今までの知識やコードを組み合わせていくということが増えてきた。出来上がるまでの時間は早くなり、バグも少なくなってはいるけど、新しい知識はあまり増えていないかも。 テクノロジーに関して現状維持は衰退と同じなので、もっと新しいことにも挑戦しないと。 それにはもっといろいろなコードを読むようにしなくては。
関数型プログラミングをストーリーで解説した本。 関数型プログラミングの考え方が出来るようになれば、もっといろいろと効率良く出来るのではないかと期待して覚えようとするのだが、毎回挫折している。 関数型言語メインでコードを書くようなことはあまり無いとは思うけど、少なくとも考え方は覚えたい。このストーリーで解説した本で前よりは理解できるようになるだろうか。 4/26 追記 コメントやAmazonのレビューによると、この本はハズレらしい。 本屋で見たときにもっとじっくり中身を確認してからにすべきだったか。
Effectvie C++ 第1章3項 STLのiteratorでのconstの場合。iteratorの宣言にconstを付けるとiterator自体がconstとなり、参照先のデータはconstとはならず変更できる。 std::vector<int> v; const std::vector<int>::iterator p = v.begin(); *p = 123; // これはOK p++; // これはできない 参照先のデータを変更できないようにconstとするにはconst_iteratorを使う。 std::vector<int> v; std::vector<int>::const_iterator p = v.begin(); *p = 123; // これはできない p++; // これはOK
私がVisualC#を使って常駐ソフトを作った方法のまとめ。 使用したソフトはMicrosoft Visual C# 2005 Express Editon。 1.新しいプロジェクトの作成 通常のアプリケーションを作るときと同じように、メニューの「ファイル」から「新しいプロジェクト」を選び、Windowsアプリケーションを選択してプロジェクトを作成。 2.ウィンドウを表示しないようにする 起動直後からウィンドウを表示しないようにするために、フォームのWindowStateプロパティをMinimizedに設定。またタスクバーにも表示しないようにするため、ShotInTaskbarプロパティをfalseに設定。Visibleプロパティもfalseに。 this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false
Effectvie C++ 第1章3項 constについての項目。あいかわらずconstは苦手。バグを防ぐためにも値を変更しないばあいにはcosntを付ける癖をつけたい。 ポインタにconstを付けるときは位置によってポインタ自身がconstなのか参照している先のデータがconstなのか決まる。 char text[] = "test"; // ポインタ、データはconstでない char* p = text; // ポインタはconstでなく, データはconst const char* p = text; // ポインタはconstで, データはconstでない char* const p = text; // ポインタ、データはconst const char* const p = text; 基本はconstが*の左にあるとデータがconst、constが*の右にあるとポインタがc
バイナリファイルを出力するには、ofstreamを使えばよい。コンストラクタの第2引数にifstream::binaryを付けてストリームを作成し、write()を使う。 プログラムは次の通り。 #include <iostream> #include <fstream> using namespace std; bool writeFile( const char* name, const char* buff, int size) { ofstream outputFile(name, ifstream::binary); if( !outputFile.is_open() ) return false; outputFile.write(buff, size); outputFile.close(); return true; } int main() { char data[] =
typeid演算子を使えばクラス名の文字列を取得することが出来る。ASSERTなどのデバッグで表示するのに便利だろう。 const char* name = typeid(変数名).name(); また派生クラスのインスタンスを親クラスのポインタに代入して使うと、ポインタを見ただけではインスタンスがどの派生クラスから生成されたのか分からなくなってしまう。こんなときにもtypeid演算子が使える。というかもともとこちらが本来の使い方だろう。 でも、いろんな派生クラスを親クラスのポインタで同じように扱えて便利なのがポリモーフィズムなんだから、あんまり使うことはないかもしれない。 このような実行時の型情報をRTTI(Run Time Type Information)という。 #include <stdio.h> #include <typeinfo> class CParent { publi
バッチファイルでは引数を%で取得することが出来る。たとえば次のようなバッチファイルtest.batがあったとき。 @echo off echo %1実行すると次のようになる。 > test.bat 123 123ここで引数にファイル名をフルパスで指定したときに、バッチファイル内ではファイル名だけ取得したいとする。そのような場合は %~n で取得できる。 @echo off echo %~n1> test.bat testdir\file.txt file拡張子は %~x で取得できるので、拡張子も付けたかったら、 @echo off echo %~n1%~x1> test.bat testdir\file.txt file.txtそのほか、バッチファイルにはさまざまな機能があり、思っていたよりもいろんなことが出来る。 今回参考にしたサイトのページはこちら。 コマンドプロンプトを使ってみよう
DirectXのサンプルを見ていたら、DXUT.hに確保したメモリを安全に解放するためのマクロがあったので引用。 #ifndef SAFE_DELETE #define SAFE_DELETE(p) { if (p) { delete (p); (p)=NULL; } } #endif #ifndef SAFE_DELETE_ARRAY #define SAFE_DELETE_ARRAY(p) { if (p) { delete[] (p); (p)=NULL; } } #endif #ifndef SAFE_RELEASE #define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } #endifSAFE_RELEASEはインターフェイスの参照カウンタを減少させるもの。カウンタが0になったら解放される。 ポインタがNUL
ホバーのスケールを0.1倍したら、吹っ飛んでしまったのを調べてみたところ、どうやらコリジョンの問題のようだった。 ホバーの周りにデバッグ用の赤いラインがいくつか出ており、コリジョンにヒットしたところに四角が表示されていた。どうやらレイキャストでチェックしているようだった。 ホバー本体のスケールを0.1倍しても、そのレイキャストのサイズは変わらないので、ホバリングしている高さは変わっていなかったし、建物の近くに配置するとコリジョンで反発してしまっていた。 このレイキャストにもスケールをかけたいのだが、どこで処理しているのか分からなかった。 ゲームだとサイズ変更して配置することはよくありそうだが、そういったパラメータは用意されていないのだろうか。 今回の無料コンテンツの「Gaea」のオブジェクトを配置してレベルを作成。 「KB3D_GAE_BldgLG]という建物が名前の末尾にAからJの付いた
このページを最初にブックマークしてみませんか?
『ゲームが作れるようになるまでがんばる日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く