アナログ時計って難しい・・①
どうもおはようございます。
伊関です。
今日も今日とていい天気でございます。
今日から造幣局の桜の通り抜けが始まりますね。
え?もちろん行く予定なんてないですよ?
ちょっと時事ネタ言ってみたかっただけですよ?
別にさみしくなんかないですよ?
と、ちょっとした茶番にお付き合いいただいたところで、
前回のブログで言っておりました、アナログ時計なんかを作ってみちゃおうと思ったのですが、
やはりハードルが高い・・・。
デジタル時計なんかは意外と簡単に作れちゃったりするんですが、
画面に表示したものを動かすだけでこんなに大変なのかと驚かされます。
ほんとゲームなんかの開発してる人ってすごい・・・。
クソゲーじゃんwwとか酷評して本当にすみません。
さてまず基本中の基本ですが、針を動かすためには”線”がなくてはなりません。
紙の上に書くだけなら、子供でも簡単に書けるものですが、C#ではそうはいかない。
パソコンソフトの定番ペイントツールだって、いろんなコードが組まれて成り立ってるわけです。
それをとりあえずアナログ時計の前段階でやってみました。
・線を表示してみた
先ずボタンを配置し、[ Graphics g = this.CtrateGraphics(); ]と入力。このthisというコードは「私の~を実行せよ」という意味。なのでこの場合は「私のCreateGraphics(描画ツール)を実行せよ」という意味になります。この下に[ g.DrawLine(Pens.色,座標); ]で線を引く。しかし忘れてはならないのはこの下に[ g.Dispose(); ]という解放コードを付ける必要があります。(意味はよくわからない)これでボタンを押すと線が表示されるようになるのです。
・線を消してみた
今回は線を描くだけではなく線を消してみたいと思います。これは”動作をしてるようにみせる”には重要で、表示上では実際に物理法則に従って動くわけではありません。表示する→消える→表示する→消えるを細かく繰り返すことで動いて見えるのです。パラパラ漫画やアニメと同じようなものだといっていいでしょう。
さてその方法だが、こちらもボタンを設置しその中に入力していきます。コードはボタンを表示したときに入力した[ Graphics g = this.CtrateGraphics(); ]をコピペして、その下に[ g.Clear(Color,色,); ]を追加するだけ。別の場所に書くときは表示と同じように[ g.Dispose(); ]を末につける。
これで例えばFormのBackGroundColor(背景色)を黒にして、Clearの色も黒にしたら、ボタンを押すと表示した文字が消えます。
そしてまたボタンを押すと表示されるわけです。
以上です。
線を表示したり消したりするだけでこれだけあるわけです・・。
いや、逆に考えよう!
まだまだできるようになることが山ほどあるんだ!
ポジティブに!ポジティブに・・・。
では!