タグ

ブックマーク / gup.monster (5)

  • DXライブラリとC++でRPGのサンプルを作りました - Gobble up pudding

    DXライブラリとC++によるソースコードを公開しています。 ソースコード ソースの中身の詳細については Github上のReadMe.mdを参照してください。 タイトルに一部ちょっと嘘があります。作ったという部分です。 自分で全部作ったのではなく、下記に掲載しているソースを参考にさせていただいて Cで書かれていたものをC++で書き直しました。 自分で作るにもRPGってどうやって作ればいいんだろ…ってとこがありましたので 一部処理を微妙に変更したり削ったりして勉強しました。 写経ってのの+αの行為ですね。これがまた面白かったです。 dixqさんから許可を頂き載せています。 参考にさせていただいた(パクった)ソースはこちら http://dixq.net/sakuhin.html にあるDXライブラリによるRPGのサンプルです。 10年程前に書かれたもののようです。 また、このようなメッセージ

    DXライブラリとC++でRPGのサンプルを作りました - Gobble up pudding
  • クラス設計が難しいと改めて思い知る - Gobble up pudding

    クラス設計は難しい... 前回のエントリーで書いたテトリス Windows APIC++でテトリス - Gobble up pudding のプログラムを書いて、オブジェクト指向というよりクラス設計は難しい、 当に難しい!!ということを痛感しました。 絶対にコレ!っていう定石みたいのがほとんどないからなのでしょうか。 一方、フレームワークやライブラリを作っている人のクラス設計は当に綺麗。 一方僕の書くようなものはともすれば 気を付けてはいるものの 密結合になりがちだったり、 汎用性に欠けたり、変更に弱かったりします。 この差はなんなんでしょうか。センスなんでしょうか? 経験なんでしょうか。 たぶん経験が大きいと思われます。 テトリスで考えてみる... 今回のテトリスの例で考えてみます。 これは私の現在の設計の大まかなやり方 (設計といっても頭で考えながらとりあえず実装してみて トライ

    クラス設計が難しいと改めて思い知る - Gobble up pudding
  • Windows APIとC++でテトリス - Gobble up pudding

    Windows APIC++でテトリス作りました。 全ソースコードを載せていたわけではないので、いくつか質問があったのもありGitHubにすべてのソースコードを置きました。 なお、Windows APIのWndProc周りをクラス化しているので記事のと少しソースコードが変わっています。 Initial Commitとの差分を見ていただければどこが変わったかわかるかと思います。 なお、以前はVisual Studio 2013でビルドしていましたが、Visual Studio 2017 (Community)でビルドしました。 ちゃんとC++書くならSTLみたいなのでない限りヘッダと実装を分けましょう。面倒なんでC#/Javaのような感じで書いてしまってますが。 GDIでも結構いろいろ作れますね。 テトリスのブロックに画像ファイルは使っていません。 プログラムにBitmapとして描画させて

    Windows APIとC++でテトリス - Gobble up pudding
  • ハイパー簡易暗号化プログラム - Gobble up pudding

    前回書いたエントリーの 関数内で宣言した配列変数をreturnしてはいけない - Gobble up puddingの 具体的なサンプルってことで書いただけです。 こんなの暗号化じゃねーってはなしですが、まぁ許してください(´・ω・`) 家族に見られちゃまずいあんなファイルやこんなファイルを暗号化するプログラムです。 拡張子変えただけじゃ、奥様は見破りますよ!!!! なんて。何の話をしているのだろう。 Cで書きました。でもコンパイルはC++としてコンパイルしたほうがいいかも。 ちょい自信ないです。 使い方は簡単。Visual studio(Visual C++)でコンパイルして、 exeファイルができるので、そのexeファイルに暗号化したいファイルを ドラッグ&ドロップすると暗号化完了です。 「秘密のファイル.avi」というファイルを放り込むと 「秘密のファイル.avi.kkkkk」という

    ハイパー簡易暗号化プログラム - Gobble up pudding
  • 関数内で宣言した配列変数をreturnしてはいけない - Gobble up pudding

    C言語では関数内で宣言した配列変数を素直にreturnする方法がありません。 知らないとこんなコードを書きがちですが、 この書き方では関数内で積まれたスタックがリターン時に解放されてしまうので、 返したアドレスが無効になってしまって、たまたま動くこともありますが、 最悪セグメンテーションフォールトになっちゃいます。 とあるパスの前のパスを返す get_directory()というのを考えてみます。 例) 例えば渡されたパスが/home/user1/hoge.txtだとすると/home/user1/というのを返す場合を考えてみます。 例1 ダメな例 コンパイル $ gcc -o string1.exe string1.c retarr.c: 関数 ‘get_directory’ 内: retarr.c:18:5: 警告: 関数が局所変数のアドレスを返します [-Wreturn-local-a

    関数内で宣言した配列変数をreturnしてはいけない - Gobble up pudding
  • 1