RichTextBox を下までスクロール の続き。
ScrollToCaret を使わない方法で、前の記事と違い、目で確認しなくてもよくなった。Focus も必要ない。
[System.Runtime.InteropServices.DllImport("USER32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wp, out Point lp);
private const int EM_SETSCROLLPOS = 0x04DE;
int lineHeight = this.richTextBox1.GetPositionFromCharIndex(
this.richTextBox1.GetFirstCharIndexFromLine(1)).Y - this.richTextBox1.GetPositionFromCharIndex(
this.richTextBox1.GetFirstCharIndexFromLine(0)).Y;
Point p = new Point(0, this.richTextBox1.Lines.Length * lineHeight - this.richTextBox1.ClientSize.Height);
// BorderStyle が None 以外だと、1 ずれる
if (this.richTextBox1.BorderStyle != BorderStyle.None)
{
++p.Y;
}
if (p.Y > 0)
{
SendMessage(this.richTextBox1.Handle, EM_SETSCROLLPOS, 0, out p);
}
lineHeight は一行の高さで、DOBON.NETプログラミング道掲示板 [One Topic All View / Re[2]: RichTextBoxで1行あたりの高さの求め方 / Page: 0] に書いてある方法で計算しています。
12/18 追記 続き を書いた。
2013年11月14日
RichTextBox を下までスクロール 続き
2013年11月13日
自作ゲーム、ヨーケイを公開
もうふりーむに載ってた。 早いなあ。スクリーンショットを見てもどういうゲームか分かりづらいかもしれないけど、一度プレイしてみて欲しいです。ソースファイルも入ってます。バグかもしれない現象や、気になったことがある場合、ここにコメントして頂けるとうれしいです。
説明が下手で、どう紹介すればいいのか悩むけど、とりあえず、3分間で高いスコアを記録することが目的のスコアアタックゲームです。
TechWin という雑誌に掲載された、ヨートンというゲームに影響されて作りました。
2013年11月12日
ようやくゲームを投稿した
マニュアルの記述に非常に手間取ったが、ようやく投稿できた。結局、ふりーむにした。どのくらいで掲載されるんだろうか。
初めてのことなので、本当に緊張した。
2013年11月09日
マニュアル製作中
操作の説明を書いてるが、説明の仕方がわからない。困った。
Readme.txt は、ちょっとReadme というソフトでなんとか書いたけど、操作を説明する Manual.txt が書けない。日本語が下手なのは自覚はしていたが、ここまで書けないとは思わなかった。
二日前の記事 で、ファイルの配置の値を変えたら誤検知されなくなったことを書いたが、思いついたコマンドを追加したら、今度は 2048 で誤検知されて、512 だと大丈夫になった。なんなんだよ。ファイルの配置って、このためにあるのかな。
あと、Windows8 で動作確認しようとしたら、BadImageFormatException って出て起動できなかった。64bit だとこうなるらしい。で、x64環境でBadImageFormatException - 3日目の坊主 に書いてある対処法で、32bit でも 64bit でも起動する exe を作れた。
2013年11月07日
自作ゲームを早く公開したいけど
やらなきゃいけないこと、わからないことが多くて大変。ゲーム自体は完成したと言えるんだけど。
まず、アセンブリバージョンとファイルバージョンの違いがわからない。一致させとけばいいのか。そもそもバージョンの付け方がわからないし。著作権は、Copyright 2013 の
の後に名前を書けばいいんだろうか。
など、一つ一つ検索しながら手探りで進めてるので、なかなか進まない。
Visual Studio で作成したプログラムが Avast に誤検知される
Avast の誤検知が多いらしいことは知っていたけど、自分が作ったゲームでそんな目に遭うとは思っていなかった。
Debug しようとすると Avast に止められて、まあ Release は大丈夫だろうと、とりあえず除外リストに追加。しばらくたって、いざ Release ビルドしてみると、これまた止められる。
コードを適当にコメントアウトするとビルドできるんだけど、それじゃゲームが動かないわけで、しばらく困ってた。検索の仕方が悪いのか、対処法が見つからないし。
自分だけが使うのであれば、ウイルスではないとわかってるわけだし、除外すればいいだけなんだけど、公開するつもりだし。
どこかに投稿するとして、受け付ける側が Avast を使っていた場合、審査の時点で不合格になるかもしれない。そうでなくても、Avast ユーザーは少なくないわけで、ウイルスではないから除外してくださいと言っても、信用されるとは限らない。
で、なんとかしなきゃいけないので、いろいろ変更してみたところ、ビルドの詳細設定にファイルの配置というのがあって、その数字を 2048 にすると誤検知されなかった。512 や 1024 だと Avast に止められた。
というわけで、Visual Studio でビルドすると誤検知されてしまう場合、ファイルの配置の数字を変えると、なんとかなるかもしれない。
Avast を入れていなければ、作ったゲームが誤検知されることに気づかなかったわけだし、Avast ユーザーでよかった(倒錯した結論)。