スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ハイドライドもどきゲームを作った

twitter上でこっそりうpしたゲームですが、思いの外好評だったのでブログでも公開。

120124ハイドライドもどき.zip
ハイドライドもどき2

ハイドライドのコピーを作ろうかと思ったけど、面倒なので似た感じに。
土日で1本ゲーム作ろうという個人的試み。
結果的に3日ほど掛かってしまいました。

クリア時間目安:5分~20分
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【動作環境】
OS:Windows 2000、XP、Vista、7(32bit/64bit)XPで動作確認
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【インストール】
HDDにそのままフォルダごとコピーしてください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【操作方法】
WASDキー移動
体当たりで攻撃
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【クリア条件】
3匹の妖精を助けて、ボスを倒してください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【攻略のヒント】
すぐ終わるゲームなのでセーブはありません。
レベル上がるのも早いから別にいいかなと…
半キャラずらしというか、かするように当てるとノーダメで攻撃できます。
まともに突っ込むと大ダメージを受けます。

汎用チャットマクロツール『ステルスボタン』を作った筈だった

はじめに

Wizardry Onlineで遊んでいると、チャットが非常に不便じゃないですか?
このゲームに限らず、せかせかとした移動中にチャットすることは困難ですよね?
PK、PKKとの粋な会話もままならない…
というわけで作ってみました。
チャットマクロツール。

ご安心ください。
あくまでWindowsに仮想キーを送信するソフトであって、WizOn専用のソフトというわけではありません。
ゲームの通信を傍受したり、クライアントソフトを解析したり、そういうややこしいことは一切していません。
単にユーザーのwindowsへの入力を補助するだけのツールです。
これが駄目ならIMEの辞書登録すら駄目ってことになると思うので、規約には抵触しないと考えます。

特定の操作をユーザーがすると、
クリップボードに台詞セット→Enterキー→Ctrl+Vキー→EnterキーのマクロをWindowsに送信するだけです。
結果的に、アクティブなウィンドウにユーザーがキー入力したのと同じ結果になります。(理論上は)

オチから言うと、Wizardry Online では使えませんでした。
※理由は後述します。
ですので、単なるコンセプトモデルの説明になります。


続きを読む

肩がぶつかって喧嘩になることがきっかけで動く、衝突駆動式スプレッドシート型言語MMF2

これはEsolang Advent Calendar 2011 3日目の記事になります。
「参加者==執筆者」ということに気付かず,大幅に遅れてすみません。

私が書くのは、MMF2というゲームオーサリングツールを使うことによって得た新しい言語パラダイムです。
「新しい言語パラダイム」とか壮大なことを言っていますが、単に私が無知なだけで、既に似たようなものやそれを上回るものが幾らでも転がっている可能性は高いです。
もし、そうならお気軽にツッコんでください。
近親相姦気味のEsolang界に新しい血を注ぎ込むことができれば幸いです。


Multimedia Fusion(MMF)2の大雑把な説明


海外製汎用ゲームツクール
イ゙ェアアアアで有名な「呪いの館」を作ったKlik&Playの後継ソフト

売り文句:プログラム不要!コードを書かずにクリックだけでゲームが作れるよ!
現実:クリックと限られた記述力のコードでガリガリ書かないと作れないよ!

MMFそのものの紹介記事やテクニック集ではないので詳細は省きます。
あくまでMMFを使うことによって得た言語パラダイムとしての側面から紹介していきます。


続きを読む

ウサギでもわかるプログラミング初心者講座 04 関数の宣言と定義

■関数の定義の仕方


第1回でサラっと流しておいてなんだが、今さら関数の定義の仕方を簡単に説明する。
教科書通りのベタな内容で特にたいしたことは解説しない。
既知ならサラっと読み流してくれていい。
次回が本題

#include <stdio.h>
#include <iostream>
// プロトタイプ宣言
int 三角形の面積(int 底辺, int 高さ);

int main()
{
printf("三角形の面積①は%dです\n", 三角形の面積(3, 4));

int ていへん, たかさ;
std::cout << "テイヘンを入力してください" << std::endl;
std::cin >> ていへん; // ※ユーザー入力を受け付ける

std::cout << "タカサを入力してください" << std::endl;
std::cin >> たかさ; // ※ユーザー入力を受け付ける

std::cout << "三角形の面積②は" << 三角形の面積(ていへん, たかさ) << "です" << std::endl;

system("pause");
}

// 関数定義
int 三角形の面積(int 底辺, int 高さ)
{
int 答え = 底辺 * 高さ / 2;
return 答え;
}

※printfやcin、coutについては詳しく解説しない。ググるか入門書を見ればすぐにみつかるし、読めばなんとなくわかるように書いた。

■プロトタイプ宣言


こんな関数がありますよ!という宣言。関数のカタログ的なものになる。
本当は宣言せずにいきなり定義を書いてもいいのだが、色々と面倒な問題があるので必須だと思って差し支えない。
(何が問題かは面倒なので、今は解説しない)

本当は
int 三角形の面積(int, int);
と、引数の型だけでもいいのだが、筆者の趣味で必ず『仮引数名』を入れている
int 三角形の面積(int 底辺, int 高さ) ;
※お尻のセミコロン「 ; 」を忘れないこと

■関数定義


その関数がどんな動作をするのか具体的に書く。
『仮引数名』(例では、「底辺」 と 「高さ」)は必須
{ }内に中身の処理を書く。
※( )や{ }の後ろにセミコロンは要らない

■仮引数名について第1回の補足


実際の処理を書くための仮の名前
第1回では
// 定数
const int 窓横幅 = 640;

// 関数のプロトタイプ宣言
int ライブラリ初期化(bool ウィンドウモード, int 窓横幅, int 窓縦幅);

偶然同じ名前になってしまっていますが、
たまたま同じであることに注意してください。
※決して「ライブラリ初期化関数が 窓横幅 しか受け付けない」わけではないです!

if(ライブラリ初期化(true, 窓横幅, 窓縦幅) == -1) { return -1;}

if(ライブラリ初期化(true, 500, 窓縦幅) == -1) { return -1;}
などと任意の数字や変数に変えても、もちろん動作します。

if(ライブラリ初期化(true, , ) == -1) { return -1;}
などと逆に書けば、
if(ライブラリ初期化(true, 480, 640) == -1) { return -1;}
と書いたことと同じになり、縦長のウィンドウのゲームが立ち上がります



ウサギでもわかるプログラミング初心者講座 03 命名規則

■名前の大切さ


適切な名前を付けることは、非常に大切であることは第1回でも説きました。
プログラムとは名前を付けることそのものであると。
コードの読み易さの9割以上は「名前の良し悪し」で決まります。

■英語名 VS 日本語名


第1回では、読み易さの都合で日本語名を使用しました。
でも、大半のプログラマは日本語名を嫌がります。

欠点として
・半角全角の切替が面倒
・全角スペースが不用意にコードに混じってエラー
・全角数字が不用意に入ってエラー
・日本人にしか読めないコード
・何かカッコ悪い
・VisualStudioのインテリセンス(入力補完)が利かず不便
・表記揺れが激しく自由に書け過ぎる
・大文字小文字がなく、型名や定数の命名に不便
などがあります。

利点としては
・漢字は視認性が高い
・英語、プログラムに疎い人にでも読み易い
・業務用アプリの固有名詞などは日本語の方が分り易い
・ライブラリや言語の予約語と衝突しない、自作であることが自明
などがあります。

■でも、世の中のサンプルって英語名だよね


ググッてサンプルを探すと99%が英語名です。
他人のコードもある程度読めないと不便ですよね。
それに自分が書いたコードを他人に評価して貰うときに俺俺ルールで書いてしまうと
非常に読み難くなります。
プログラムに個性は求められません。(特に命名には)
一般的な命名規則に軽く目を通しておきましょう。
関数名の命名規則
プログラミングに出る!英単語
良いネーミングをするために覚えておきたい英語のルール5つ
この辺に目を通しておけば取り敢えず大丈夫でしょう。

■ローマ字変数名が許されるのは小学生までだよね?


99.9%のプログラマにダサいと評判のローマ字変数名ですが一応利点があります。
・予約後と被らない。任意に付けることが可能な名前だと自明になる(初学者にやさしい)
それっぽい英語名が入門書に書かれていると、初心者の場合
「この名前じゃないと動かないのかな?」
と悩むことになります。
ローマ字名なら
「あ、好きな名前を付けていいんだ」
とわかりやすくなります。筆者の体験談です。
あと、無理に英語を捻り出すよりローマ字にした方がどうしても分り易いときがあります。
「自機」筆者にはいい名前が思い付きません。
下手に紛らわしい英語名を付けるより「jiki]の方が自明だと思います。

■規則に従うよりも大切なことは、紛らわしくないこと


杓子定規に規則に従うあまり、読み難くなったら本末転倒です。
1番大切なことは「1意に解釈できる」ことです。
頭を1度空っぽにして名前をもう1度みてください。
「知らないひとが見たら、別の意味に誤解しないか?」
とその可能性をよく考えてみてください。
「1週間すれば、他人のコード」
という格言があります。
未来の他人である自分に向けて、分り易い名前を残しましょう。

■記憶喪失になっても、コメントがなくても分かるように名前を付けよ


第1回でも同じことを言いましたが、大事なことなので2回言いました。
名前は本当に大切です。
適切な名前さえ付ければ醜いコメントは99%カット出来ます。
これはプログラマ以外の職業でも大切なことです。
不適切なメール件名、ファイル名、書類名は余計な仕事を増やす種になります。
不適切な子供の命名は、その子の人生を台無しにします。
是非、適切な名前を付けて快適な人生を!
最新記事
最新コメント
検索用タグ

ゲーム プログラム 15年前のノート Unity3D C# ハイドライド DXライブラリ C++ WizOn Kuin 

プロフィール

@kurisaka_konabe

Author:@kurisaka_konabe
作ったフリーソフトの補足説明サイト

あと、凡人による凡人の為の講座を書き始めました。
(※コメントを可能に変更)

メールフォーム

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。