読者です 読者をやめる 読者になる 読者になる

Unityでインディゲーム道!

プログラム、Unity初心者がインディゲーム制作を目指して日々思うことなどを書き綴ります。

Unityを触る前に。アプリを作ろう!【RGBスライダー】

プログラミング

 

何か簡単なものを自分で考えて、作るのがプログラミング上達の一歩!!というわけで以前に作ってみた、簡単なアプリを今の自分がレビューしています。

 

 

自分で考えて作る、ということ

 今回はUnityの前にプログラミングの習得に専念していたときに作った

ほんとにちょっとしたアプリについてです。

 

プログラミングにおいては、とりあえず自分の好きなものを作ってみればいいと思うよ、という謎アドヴァイスがあって困惑していたのですが、

文法がなんとなくわかりかけ始めた頃、とりあえず何か作ってみようと思い立ちました。確かに自分で何かしら作ってみないことには始まらないんですよね。

 

そこで思いついたのが昔のFFなどにあったウィンドウの色を変えられる機能でした。

まぁ何かしらゲームに絡めたほうがいいだろうとのことだったんですが。

 

 

アプリの概要

RGBというのは三原色である、赤緑青をそれぞれ0から255までの数値として、それらの値を組みあわせることでいろいろな色を作る方式なわけですが、

このアプリは単純です。

とにかく3つのスライダーがあって、それを動かすとそれに応じてウィンドウの色が変わるというものです。たったそれだけのものです。

 

操作にリアルタイムでレスポンスがあるものをつくって見たかったのでそういう意味でもちょうど良いものでした。

 

ちなみにこれはもともとはWPFで作ったアプリですが、WPFはいろいろ説明がややこしいのでWindows Formアプリで作り直しました。

(というかWPFってどうなんすかね?WinFormで簡単に出来ることがややこしくなってるんですが!!(怒り))

 

このアプリに必要なものは、

 

・RGBの各々の値を格納する3つの変数。
・数値を変える操作用のスライドバー(Track Bar)
・そのRGBの値の変化に応じてウィンドウの色を変える関数、method
・各RGB値を表示する機能。(オプション)

 

基本的にはこれだけです。オプションのRGB値表示機能はあくまでオマケですが、あるとその色のRGB値が具体的にわかるというものなので、あった方がアプリの価値が上がるかなと。

 

まずは完成品を見てみましょう!

 

f:id:miur-us:20161119025626p:plain

ほんとにシンプルすぎるアプリです。でもアプリはアプリですから!

 

 

f:id:miur-us:20161119025706p:plain

 

f:id:miur-us:20161119025718p:plain

こういう淡い色も。

 

f:id:miur-us:20161119025735p:plain

 目に優しくない色も。

 

 

アプリのコードについて

というわけでコードも確認していきます。

 

f:id:miur-us:20161119033258p:plain

f:id:miur-us:20161119033305p:plain

 

これだけです。

Form1はアプリのフォーム本体ですね、そのクラスに

Rval, Gval, Bval

と3つの変数をフィールドとして宣言します。

こうすることでコントロールであるスライダーと、色を反映させるmethodをまたがせることが出来ます。

 

 

そんで肝心な色を反映させるmethodはWindowColorSet()としました。

ウィンドウのカラーはBackColorで設定できるので、そこにRGB値から色をつくれる

FromArgb()というmethodを使うことで各RGB値の現在の値をぶち込みます!

 

そして最後は各スライダーの動作についてです。順序はこうなります。

(スライダーは最小値を0、最大値を255として設定しています。)

 

・スライダーを動かす毎にリアルタイムに反映させるので_Scrollイベント関数を使う。

 これによって以下の動作がスライダーを動かすたびに発生する。

・スライダーの値を各変数に代入する。

・その値をToString()関数を使い文字に変換、ラべルTextに代入し表示させる。

・WindowColorSet関数を起動させ、即座に色の変化を反映させる。

 

 

というものです。単純なんですけど始めて自力で作れたときはうれしかったですね。

 

 

こんな感じ、習作アプリの記事をかいて復習していこうかと思います。