C#

C#で映画のエンドロールみたいな

投稿日:

はじめに

先日YouTubeでC#でテトリスを1時間で作成する動画を観ました。

解説しながらテキストエディタを使って少しずつコーディングしては、ビルド&実行を繰り返してどのような動きをするのかとてもわかりやすい動画でした。

私も動画を一時停止させながらVisualStudioでコーディングして無事に動作させることが出来ました。

その動画はこちら

他にもRPGを作成する動画もあったので拝見し「登録」させてもらいました。

 

テトリスのソースコードを改良したら映画のエンドロールが作れそうだなと思い作ってみました。

 

出来上がりイメージ

ソースのダウンロード

VisualStudio 2019 Comunityで作成したソースファイルをzip圧縮してあります。

 

ちょこっと解説

プログラムを実行するとMainフォームが表示されます。

テキストボックスと開始ボタンが設置してあります。

「開始」ボタンをクリックすると別のフォームが表示されて、テキストボックスに記入された内容を下から上にスクロールされていきます。

背景が真っ黒だと味気ないので星空(?)の感じにしてみました。

 

ソースコード

メインフォームでは、開始ボタンが押されたときにエンドロール用フォームをテキストの内容を渡して表示するだけのシンプルなものです。

 

 

フォームが表示されたときに(RollForm_Load)次の設定を実施します。

・ウィンドウのサイズ設定

・背景表示用の画像を読み込んでTILE_SIZEで分解して配列(mTile)に保存

・分解した画像を画面いっぱいにランダム配置するための配列(mTileLayout)に保存

必要な設定が終わったら、無限ループに突入します。

ループ内では一定間隔でOnTimer()を呼び出します。

 

OnTimer()では、Tick()を呼び出してESCキーが押されたフラグ(mKeyEsc)が0では無い場合にフォーム画面を更新します。

 

Tick()では、テキストがスムーズにスクロールするようにY軸(縦軸)カウンタを更新してます。

 

フォームの描画処理(RollForm_Paint)では、背景画像の表示とテキストの表示を実施しています。

テキストはセンタリングさせるようにしております。

 

最後に

今回は、ほとんど流用したソース(汗)ではありますが大変勉強になりました。

VisualStudioを使うとコントールを配置して何かを行うという固定観念にとらわれがちですが、プログラムはもっと自由で良いのだなぁと再認識したところです。

また、スクロールさせるテキストがひとまとめにしてあるため、フォントサイズを細かく変更できません。映画のエンドロールでは、ロゴ画像もスクロールさせるようにしてあげる必要もありそうです。

工夫次第ではまだまだ楽しめそうなので改良版を公開出来る日が来るかもしれませんし来ないかもしれません(笑)

 

スポンサードリンク

スポンサードリンク

-C#
-, , ,

Copyright© あきらちんの技術メモ , 2023 All Rights Reserved Powered by STINGER.