謹賀新年
あけましておめでとうございます
新しい年が始まりました。旧年末にこのブログを設定しましたが、事実上今日からがスタートになると思っています。三日坊主にならないよう、やることを具体的に決めておかないといけません。
私はPCを使ってミニゲームを作ることを趣味としてるはずでした。にもかかわらず、去年は結局1つも作りませんでした。ネタを考えたりはしているのですが、製作に取り掛かるところまでにすらたどり着けずにいました。
計画性が無く途中でグダグタになるならともかく、作り始めることもできないというのは下手に考えすぎなのかもしれません。元々半月以内で終わるような小規模の製作しかしていないのだし、まずは仕様に無理があっても作ってみてそれから問題点を整理する方が「何かやってる」状態を維持できていいような気がします。
これらを踏まえて、このブログ的2008年の抱負は
Javaアプレットで3Dのアクションゲームを完成させること
にします。私のような三流プログラマには敷居が高すぎてクラクラしますが、やらなければならないことが尽きることなく出てくることでしょうし、なんとかやっていきたいと思います。
新しい年が始まりました。旧年末にこのブログを設定しましたが、事実上今日からがスタートになると思っています。三日坊主にならないよう、やることを具体的に決めておかないといけません。
私はPCを使ってミニゲームを作ることを趣味としてるはずでした。にもかかわらず、去年は結局1つも作りませんでした。ネタを考えたりはしているのですが、製作に取り掛かるところまでにすらたどり着けずにいました。
計画性が無く途中でグダグタになるならともかく、作り始めることもできないというのは下手に考えすぎなのかもしれません。元々半月以内で終わるような小規模の製作しかしていないのだし、まずは仕様に無理があっても作ってみてそれから問題点を整理する方が「何かやってる」状態を維持できていいような気がします。
これらを踏まえて、このブログ的2008年の抱負は
にします。私のような三流プログラマには敷居が高すぎてクラクラしますが、やらなければならないことが尽きることなく出てくることでしょうし、なんとかやっていきたいと思います。
スクリーンキャプチャにマウスポインタを含める
ウィンドウズ起動中に特定のウィンドウを録画する、身内用に作ってあったソフトに機能追加を行いました。
以前の用途は出力結果のみの録画だったのに対し、最近操作説明も録画したいと思うようになりました。そのためには今まで必要なかった「マウスポインタも映像に含める」必要があります。
キャプチャの方法はHDC hdc=GetDC(NULL);で画面全体のデバイスコンテキストを取得し、あらかじめ指定しておいたウィンドウの領域を自前のビットマップに描画するという手順で行っていました。当然マウスポインタまでは描画できません。
そこで、現在適用されているマウスポインタの画像(以下カーソル)を取得し、重ねて描画することになります。ただし別のプロセスが所有しているカーソルを取得するためにはスレッドをアタッチする必要が有ります。また、カーソルのホットスポットが左上ではない場合は描画位置を補正する必要があります。面倒な場合は固定カーソルとしてIDC_ARROWを使ってしまった方が手っ取り早いかもしれません。
ここにサンプルプログラムを掲載することはありませんが、以下のWindowsAPIを対象にWeb検索することで多くのサンプルを得ることが出来ましたので、参考までに列挙しておきます。
・GetCurrentThreadId
・GetWindowThreadProcessId
・AttachThreadInput
・GetCursor
・GetIconInfo
・DrawIcon
・DrawIconEx
以前の用途は出力結果のみの録画だったのに対し、最近操作説明も録画したいと思うようになりました。そのためには今まで必要なかった「マウスポインタも映像に含める」必要があります。
キャプチャの方法はHDC hdc=GetDC(NULL);で画面全体のデバイスコンテキストを取得し、あらかじめ指定しておいたウィンドウの領域を自前のビットマップに描画するという手順で行っていました。当然マウスポインタまでは描画できません。
そこで、現在適用されているマウスポインタの画像(以下カーソル)を取得し、重ねて描画することになります。ただし別のプロセスが所有しているカーソルを取得するためにはスレッドをアタッチする必要が有ります。また、カーソルのホットスポットが左上ではない場合は描画位置を補正する必要があります。面倒な場合は固定カーソルとしてIDC_ARROWを使ってしまった方が手っ取り早いかもしれません。
ここにサンプルプログラムを掲載することはありませんが、以下のWindowsAPIを対象にWeb検索することで多くのサンプルを得ることが出来ましたので、参考までに列挙しておきます。
・GetCurrentThreadId
・GetWindowThreadProcessId
・AttachThreadInput
・GetCursor
・GetIconInfo
・DrawIcon
・DrawIconEx
ブログのスタイル変更
まずは形から、ということでスキンを適用してみました。サクッと終えるつもりが殆ど徹夜状態に、トホホ…。
私は古いタイプのPCオタなので、白い背景に黒の文字ではまぶしくて目が疲れてしまいます。そこで、スキンの一覧の中から、スタンダードカテゴリの「夜空」を選びました。これで画面は真っ黒。細かい編集も許可されているみたいで嬉しい。
各パーツは境界線がはっきりしているほうが見やすいと思い、スタイルシートを編集して背景色の変更を行いました。シンプルで自分好みになりとりあえず満足。一部画像と変更した色とが合っていない部分もありますが、そのうち調整していこうと思います。
ページ全体の背景に星空っぽい画像を作成してみましたが、画面にホコリがついてるように見えてしまいいまいちでした。
私は古いタイプのPCオタなので、白い背景に黒の文字ではまぶしくて目が疲れてしまいます。そこで、スキンの一覧の中から、スタンダードカテゴリの「夜空」を選びました。これで画面は真っ黒。細かい編集も許可されているみたいで嬉しい。
各パーツは境界線がはっきりしているほうが見やすいと思い、スタイルシートを編集して背景色の変更を行いました。シンプルで自分好みになりとりあえず満足。一部画像と変更した色とが合っていない部分もありますが、そのうち調整していこうと思います。
ページ全体の背景に星空っぽい画像を作成してみましたが、画面にホコリがついてるように見えてしまいいまいちでした。
ブログはじめました
友人がブログを始めるとのことで、便乗して私もやってみることにしました。
以前からフリーで遊べるミニゲームを作ることを趣味としていて、最近かなりご無沙汰していましたが、来年からはもう少し積極的に取り組んでみたいと思っています。
以前からフリーで遊べるミニゲームを作ることを趣味としていて、最近かなりご無沙汰していましたが、来年からはもう少し積極的に取り組んでみたいと思っています。