円と円というより、円と点だったので、それっぽくしてみた
当たってないとき
当たっているとき
マウスポインタが円に入ったらtrue。円から出ていたらfalse。
// 当たり判定のある円の中心 int tx = this.PointToScreen(new Point(0,0)).X + 150; int ty = this.PointToScreen(new Point(0, 0)).Y + 150; // コントロール上のマウスの位置を取得 int x = Control.MousePosition.X; int y = Control.MousePosition.Y; int r1 = 100; // 当たり判定のある円の半径 int r2 = 0; // マウスポインタの半径 int a = tx - x; int b = ty - y; int r = r1 + r2; if (a * a + b * b <= r * r) // マウスポインタが円の中に入っていれば { //略 }
参考サイト
private void match_button1_Click(object sender, EventArgs e) { try { Regex rx = new Regex(regex_textBox.Text); TextBox[] tb = { match_textBox1, match_textBox2, match_textBox3, match_textBox4, match_textBox5 }; // マッチtextboxを空に for (int i = 0; i < tb.Length; i++ ) { tb[i].Text = ""; } // マッチしなかったら、 if (!rx.IsMatch(string_textBox.Text)) { MessageBox.Show("マッチしませんでした", "Match false"); return; } Match m = rx.Match(string_textBox.Text); // マッチした文字列をテキストボックスにいれる for (int i = 0; (i < m.Length) && (i < tb.Length); i++) { tb[i].Text = m.Groups[i].ToString(); } } catch(Exception ex) { MessageBox.Show(ex.ToString(), "error"); } }
参考サイト
標準では、IME はMicrosoft IMEがつかわれている。だけど、あまりいい変換をしてくれない。とんでもない変換をしてくれるのもしばしば。また、なぜか自分の環境では単語登録ができない。
Macの方ではATOKをつかっていて、こちらは標準のものと比べれば、よく働いてくれている。だけど、金がかかるので、自分のもっているOS全部にATOKをいれるのは、金銭的につらい。
フリーのもので、なにかないかと探してみて、Social IMEを発見した。これは、Social IME利用者の間で辞書を共有するというもの。これがなかなか便利。マイナーな単語が登録されていたりして、これが面白い。
問題点は、予測が重いこと。ケータイでよく使われている機能ですね。便利だけど、つかうとフリーズしたかのように重いのがきつい。単語の変換するたびに通信しているようなので、回線が細いときついのかも。
もうひとつの問題点は過去に選んだ単語が、次に変換されるとき、変換候補一覧の単語の位置が変わらないこと。たとえば、Microsoft IMEならば、"おれ"と入力して、"折れ"を選んだとき、つぎに"おれ"と入力したとき、"折れ"が変換候補の上の方ににくる。しかし、Social IMEでは、変換候補の単語の位置は変わらない。よくつかう単語の場合、変換したい候補が後ろのほうだと、いちいちそのページの位置に移動しなくちゃならない。
これらが、けっこう面倒なので、日本語だけを入力するときはMicrosoft IMEで、顔文字を入力するときはSocial IMEを使っている。すっかり顔文字入力用になってしまった。その登録単語数は魅力的ですし。
やはり、日本語入力をきちんとしたいなら、ATOKを買ったほうがいいかな、と思う今日この頃。
ちなみに、IMEの切替のショートカットキーは"Ctrl+SHIFT"でできます。
Ustreamとか、justin.tvとかいろいろあるけど、これらのページを開くと、ブラウザが強制終了してしまう。今日、blogtvというサイトでも試してみたけど、だめだった。javascriptをオフにしていると全く問題ないので、javascriptがなにかしてるんだと思うけど、よくわからない。ウェブカメラ関係のなにかだと思うけれど。
うちの今の使用しているOSは、MacOS10.5でBootcampを用いて、WindowsXPを利用している。ブラウザ強制終了は、Windowsのブラウザだけで、発生する。Macのブラウザでは起こらなかった。
はてなで同じような問題に直面している人がいたけれど、その人はMacの場合だったし、問題が解決したわけではなかった。ふむ、どうしたものか。
参考サイト
コメントがあるにもかかわらず、コメントフィードが表示されていなかったので、なぜか調べてみた。
実際のコメントフィードは作成されていたので、Feed2JSが原因と思った。Feed2JSによるタイトルの最大表示数を、コメントフィードにあるタイトル数より大きくすると表示されなくなるみたい。最大表示数を、タイトル全部表示するようにするか、フィードのタイトル数より少なく設定すれば、表示されるみたいだね。
たとえば、Feed2JSで作成されたコードの一部が、
<script language="JavaScript" src="http://feed2js.org//feed2js.php?src=http%3A%2F%2Frockmanjuno.blogspot.com%2Ffeeds%2Fposts%2Fdefault&chan=y& num=10 &desc=1&utf=y" type="text/javascript"></script>のようであったら、
<script language="JavaScript" src="http://feed2js.org//feed2js.php?src=http%3A%2F%2Frockmanjuno.blogspot.com%2Ffeeds%2Fposts%2Fdefault&chan=y& num=5 &desc=1&utf=y" type="text/javascript"></script>に直せばいい。つまり、num=...の後につづく数字を変えてあげればいい。Feed2JSでつくりなおしてもいいけどね。
それにしても、まあ、ブログ全体のコメント数が、少ないと起こる問題だよね。(´・ω・`)ショボ~ン
シリアライズ、デシリアライズを簡単(笑)にするクラスを、ジェネリクスを用いて作成。意外に時間がかかった。デシリアライズしたオブジェクトから、画像のパスを受け取り、それをPictureBoxで描画させようと思ったけど、そこまでいけなかった。
public class XMLSerializerClass<T> { private T Object_Type; public System.Xml.Serialization.XmlSerializer Serializer; public T ObjectSelf { get { return Object_Type; } set { this.Object_Type = value; Serializer = new System.Xml.Serialization.XmlSerializer(value.GetType()); } } /// <summary> /// コンストラクタ /// </summary> /// <param name="obj"></param> public XMLSerializerClass(T obj) { Serializer = new System.Xml.Serialization.XmlSerializer(obj.GetType()); this.ObjectSelf = obj; } //略 }
このままだと、「常に規定値 null を使用します」と言われてしまうけど。わがんね。
動的に作成したPictureBox5つに、emf画像を読みこませて表示。また、jpg画像も表示させてみた。まえに書いたけど、兄弟のPictureBoxは透過しない。親子なら可能。そのため、赤い丸の周りは、フォームの背景画像が表示されている。PictureBoxで表示したjpg画像は表示されない。すっかり忘れていたけれど。
private PictureBox[] pb; private void createPictureBox() { this.pb = new PictureBox[5]; for (int i = 0; i < pb.Length; i++) { this.pb[i] = new PictureBox(); this.pb[i].Height = 10; this.pb[i].Width = 20; this.pb[i].BackColor = Color.Transparent; // このコントロールをフォームに追加する // これをしないと表示されない this.Controls.Add(this.pb[i]); } } private void loadPicture( string file_name ) { Bitmap bitmap = new Bitmap(file_name); int limit = pb.Length; for (int i = 0; i < limit; i++ ) { this.pb[i].Image = bitmap; this.pb[i].Width = this.pb[i].Image.Width; this.pb[i].Height = this.pb[i].Image.Height; } }
参考サイト
今回は、なかなかのアップデートだった。サブ武器DE.50 AE、メイン武器M3 GREASEGUNも登場。新たなスチールマップ、工場ダブルオーが登場。
なぜ、ダブルオーなのか詳しく。ガンダムの見すぎじゃないだろうか。好きだけど。その旨を良しとする!
早速、DE.50 AEを購入。エイムがしょぼい自分にはきついかもだけど、音がいい! 音だけでも満足です。たまにだけど、活躍する場面はあるしね。画像を撮った後に、DEで1killだけできた。
さらに、メイン武器も飽きてきたので、G36を購入。新しい武器は楽しい。スコープがいい感じ。PaperMan wikiにも書いてあったけど、見本と違ってテカテカしてないのが、ちょっと残念。とりあえず、しばらくはG36で遊んでみよう。
スコープが実用的で、楽しかった。いつになるかわからなけど、今からAUGの実装が楽しみだ。
主にXmlSerializerの勉強。画像は作成したXMLを、XMLEDITOR.NETで開いた様子。
いちいち、XmlWriterとかでXMLをつくるのは面倒。XmlSerializerをつかえば、オブジェクトの内容(publicのみ)を、簡単にXMLとして保存、読み出しができる。独自クラスも可能。ArrayListはキャストが必要だけど、シリアライズ可能みたい。便利な分、いくつかの問題もあるようだけど。
詰まったところ。独自クラスをシリアライズするときは、classの前に、publicを忘れないように。publicを忘れると、「保護レベルの設定が原因で '(省略)' にアクセスできません。パブリックの型のみ処理できます。」と怒られる。
public class tes { //.... }
エラーメッセージの日本語を解読するのに、時間がかかる・・・。
参考サイト