BBasmzは12/17に更新を停止しました。ありがとうございました!

BBasmzは12/17に更新を停止しました。

twitterやリアルで応援してくださった皆様、バグを指摘していた皆様、データを提供していただいた皆様、ツイートして頂いた皆様、botに使って頂いた皆様、ありがとうございます。
2ch、したらば、ウィキ、ネタ@うぃきでテンプレになったときはびっくりしました。ありがとうございます。

「引き継ぎたい!」という方がいらっしゃいましたら、下記にソースとドキュメントを用意しました。
僕はサポートはできませんが、これを見て頂いて「できそうだ」「やってみたい」「追加機能を入れてみたい」と感じた方は、forkして自分の情報に更新した後、開設後のサイトをコメント欄に投稿をお願い致します。
修正後のソースは好きな様に変更して頂いて問題無いです(一部、ライセンス付きのファイルを除く)

github
https://github.com/noizmaniac/BBasmz

デザインドキュメント
https://docs.google.com/document/d/1US1hj2gRs6fcskdlAi17js-hye1BYowuPV6fo6bYrmI

【とりあえずメモ】GithubをWindows環境でTortoiseGit使って操作するやり方

※とりあえずメモ。いつか書き直します…

  • msysGitでSSH公開鍵
    • スタートメニューからgitbash起動
      • ssh-keygen -t rsa
  • ファイルは以下にできる
    • C:\Users\ユーザ\.ssh
  • githubのサイトでリポジトリ作成
    • 上の名前のとなりにある
  • 公開鍵の設定をするため、その隣のAccountsettingから
    • SSH Keys
      • Add SSH
        • Titleは表示用
        • keyにid_rsa.pubの中身を入れて、Addkey
  • tortoiseGitの設定
    • ネットワーク
      • SSH
        • (msysGitのssh.exeを指定
        • C:\Program Files (x86)\Git\bin\ssh.exe
  • 右クリック→tortoiseGit→クローン
    • URLに、githubリポジトリsshを押して出た文字列を入れる
      • git@github.com:・・・
  • ファイルの扱い
    • 追加:ローカルリポジトリで管理するという登録
    • コミット:追加されたファイルをローカルリポジトリにコミット
    • プッシュ:リモートリポジトリ(github)にコミット
  • プッシュするときに
    • 宛先
      • 管理 ボタン
        • リモート:管理用
        • URL:git@github.com:・・・
        • Putty認証:空白でよい
      • 新規に追加/保存 ボタンを押す
    • OK

サクラエディタのビルド実行用jsマクロ作りました

ショートカットキーでslim→HTML変換できる、
サクラエディタJavaScriptマクロ作りました。

var shell = new ActiveXObject("WScript.Shell");
var file = Editor.GetFileName();	//開いているファイルのフルパス
var index = file.indexOf(".slim");
if(-1 != index){
	var name = file.substring(0, index); // 拡張子を切り飛ばす
	var runs = "C:/program/Ruby-2.0.0/bin/ruby.exe C:/program/Ruby-2.0.0/bin/slimrb \"" + name + ".slim\" \"" + name + ".html\"";
	var exec = shell.Exec(runs);
	while(0 == exec.Status){	//ステータスが0になるとExecが終了
		Editor.Sleep(100);
	}
	if(0 != exec.ExitCode){
		shell.Popup(exec.StdErr.ReadAll());
	}else{
		shell.Popup("htmlに変換しました");
	}
}

失敗した時にポップアップにStdErrを表示させるところがたいへんだった(小並感
別の言語でも、コマンド部分などを書き換えればいけると思います。

Statusが0になるのをsleepさせたいと思ったけど、
JavaScriptってそういうメソッドないみたい。
ぐぐったらみんなsleepメソッド実装してました。

※追記
コメントにて教えて頂きました!
サクラエディタのEditor.Sleep()を使えばsleepできます!
ソースコードも修正しました。
※追記ここまで

…おい!そこのお前!
サクラエディタのマクロはVBScriptで書けるから」とか言うな!
後で気づいたんだよチクショー!
もういいよ!寝る!

Windows環境でRubyインストールからslimを使うところまでのメモ

Windows環境でRubyインストールからslimを使うところまでのメモ。


・経緯

HTMLを記述するのがめんどいので、
簡単にできる方法がないかとぐぐったところ、
なんかそれっぽいことができそうな言語があったんですが、Ruby+Macの組み合わせばかり!
RubyユーザはUnixからの流れでMac使い多そうだもんな。
そもそも僕はRuby知らないしなあ。
むしろこのご時世、Web業界だとデフォで使われてそうだな。
ということで、Windows環境ではどうするかを調べたのでまとめときます。


HTML出力の言語を使うメリット
・タグづけの冗長さや閉じ忘れエラーなどから解放される気がします
・DOCTYPE宣言のわずらわしさから解放される気がします
・変数やIFなど柔軟さを持ち合わせている気がします
・連番を振る機能があればかなり便利ですよね

デメリット
・生成用のプログラムが必要。
 (Ruby on Railsだと組み込まれているみたい。そりゃ流行るわけだ)


で、いま流行っているのは haml と slim とのこと。
hamlはハムルって発音するんでしょうか。ネトゲユーザなら思うところがありますね(辛い思い出


hamlについてはこちらがわかりやすかったです。
http://fukuyama.co/haml2

slimは日本語訳が読みやすかったです。
https://github.com/yterajima/slim/blob/README_ja/README.md

おおきな違いとしては、
hamlは独自な書き方になってて、slimはhamlの反省点+Ruby的に処理を埋め込めると。
これからはじめるなら後発であるslim採用がよろしいかなと。


Windows環境にインストール

Windowsで動作させるには Ruby が必要なので、公式サイトから

http://www.ruby-lang.org/ja/downloads/

ActiveScriptRuby 安定版 のリンクをたどって、

http://www.artonx.org/data/asr/

Ruby-2.0.0-p0 Microsoft Installer Package(2013-02-24) をダウンロードしました。
msi形式なので、ダブルクリックでインストーラーを起動させます。
インストール時のフォルダは、デフォルトでは「C:\Program\Ruby-2.0.0\」となっていますが
後手順のslimのインストール時に、
ユーザによっては権限エラー(Permission Error)となるため、
別フォルダにいれるか、
インストール後にフォルダにアクセス権をつけるかで対応します。

Rubyのインストールが完了したら、次はslimをインストールします。
スタートメニューの Ruby-2.0.0 の Ruby-2.0 console を起動して
コンソールウィンドウで下記を実行。

gem install slim

これでインストールできました。

    • 追記ここから--

エンコーディングでエラーがでることがありますので、環境変数に「set RUBYOPT=-EUTF-8」を入れましょう。

参考:http://sugamasao.hatenablog.com/entry/2013/08/24/224521

    • 追記ここまで--

slimからHTMLに変換するには下記のような感じで。
slimの実行バッチファイルはruby/bin/slimrb.batになります。

slimrb 読込ファイル名.slim 出力ファイル名.html

毎回Rubyのコンソールを起動しておいて都度実行ってのもいいですが
以下のbatファイルのショートカットを作って、送るメニューに入れるとよい感じ。
(windows7 だと C:\Users\xxx\AppData\Roaming\Microsoft\Windows\SendTo)

@ECHO OFF
@"C:/program/Ruby-2.0.0/bin/ruby.exe" "C:/program/Ruby-2.0.0/bin/slimrb" %~p1%~n1.slim %~p1%~n1.html
IF %ERRORLEVEL% == 1 PAUSE


slimの記述はREADMEを見つつやってますが、詰まったところをメモ

・繰り返しをしたいときは、- をつけると、後ろにRuby記述ができます

- aryHeader = ["頭部","胴体","腕部","脚部"]
- for x in aryHeader do
	td
		| #{x}

こんなかんじで運用中です。
Eclipseで使えるプラグインなどがあればもう少し幸せになれるのん?とか考えつつ今日は寝ます…

【BBasmz】ヤーデ54追加!ツイートボタンを押すと現在装備中のURLを出力するようになりました(制限あり)

ヤーデ54追加!ツイートボタンを押すと現在装備中のURLを出力するようになりました(制限あり)
http://expz.net/bbasmz/
http://expz.net/bbasmz/?p=I1I1I1I111111111111111111111111111111111

●ヤーデ54は現在まだ未実装ですが、アセン検証用として追加しました。

●ツイートボタンを押すと現在装備中のURLを出力するようになりました(制限あり)

制限とは、ボタンを押した時に、twitter投稿用のポップアップブロックが発動することがあります。ポップアップブロック解除すれば普通に使えると思います。

なんでこんなことになっているかというと、クロスサイトスクリプティング対応策をとっているのですね。
BBasmzのサイトから、twitterのサイトを呼び出している処理なので「違うサイトですよ!なんか危なくないですか?!ポップアップブロックしますね!」っていう警告なんですね。ちなみに、chromeだと処理を実行したときは下のようなエラーが出ます。

Unsafe JavaScript attempt to access frame with URL http://expz.net/bbasmz/test/
 from frame with URL http://platform.twitter.com/widgets/tweet_button.1366232305.html#_=13671290…A%2F%2Fexpz.net%2Fbbasmz%2F%3Fp%3D1411111111111111111111111111111111111111.
 The frame requesting access set 'document.domain' to 'twitter.com', but the frame being accessed did not.
 Both must set 'document.domain' to the same value to allow access.

どうにかこれを外す方法ないかと試していたんですが、それよりボタンを押した時に「ああURL出力忘れてた…めんどいわ…」というガッカリを無くすほうが先かなと。いうことで(制限あり)として、実装しました。


あと、もうひとつ困っていたことがあって解決できたので記録しておきます。
twttr.widgets.load()で「Uncaught TypeError: Cannot call method 'load' of undefined」エラーが出てました。つまり「loadメソッドなんかねえよ」ってことで。load()は、tweetボタンの描画用メソッドで、URLパラメタ書き換わった次点で再描画を呼び出さないといけないので、すごい困りました!!!!1111
でぐぐったら下記がヒットしました。

Cannot update tweet button with AJax
https://dev.twitter.com/discussions/890

今回BBasmzで取った方法は、再描画ときにtwttr.ready()でload()を呼び出す方法ですね。一連流れは以下な感じです。

	//tweet
	$('#buttonTweet').empty();
	$('<a>')
		.attr('href', 'http://twitter.com/share')
		.attr('class', 'twitter-share-button')
		.attr('data-url', getOutputURL())
		.attr('data-text', '【BBasmz】')
		.attr('data-count', 'none')
		.attr('data-lang', 'ja')
		.appendTo('#buttonTweet');

	//twitterボタン再描画
	twttr.ready(function() {
		twttr.widgets.load();
	});

これマジでわかんなくて悩みましたわ…

と、いうことで!現場からは以上です!

【BBasmz】jQuery 2.0 に対応!高速になります!

IE8以前のサポートを廃止した「jQuery 2.0」、ついに正式版リリース
http://sourceforge.jp/magazine/13/04/19/183000

と!いうことで、jQuery2.0が出ましたので、早速対応しました。
これまでは、1.7.2を使っていました。

2.0にするメリットはスピードアップやバグが取れてたりなどなどです。BBasmzは画面中の至る所にある値にガンガンアクセスするアプリなので、かなり効果が出るんじゃないかと思っています。いや実際開発中も結構速いねーとか思って作ってました。

デメリットとして、IE 6/7/8 が未対応になります。どういうことかというと、jQueryはIE用に特別なロジックを組み入れていたわけで、それが重い原因だったってことなんすね。最近はIE9windows updateに上がっていたり、IE10もまあ安定しているというのでいいかなと。

具体的な対応内容(プログラム側メモ)
・2.0になって、checkboxの扱いが変わっていました。以前はattr('checked')でcheckedの文字列が戻ってきてたのが戻ってこなくなったので、is(':checked')にしました。

他に直したところ
・「比較」で、何もチェックボックスが選ばれていない場合は、全部表示するようにしました
・リペアフィールドで施設を追加(忘れてました)
・チップのコンフリクト見直し
・IE10の背景グラデーションの仕様が変わっていたので、最新に対応。

以上!
今後もBBasmzをよろしくお願いします!

【BBasmz】4/15の更新内容!

公式より引用。
http://borderbreak.com/game_version.html

▼特殊機能系

・索敵継続延長Ⅱ 索敵効果の継続時間が大きく延長される。
・水中移動適性Ⅱ 水や溶岩による移動速度低下が大きく軽減される。
・補助装備自動補給 補助装備の残弾数が減っている際、一定のペースで自動補給される。
・フェイタルアタックⅡ 敵機を撃破した際、格段に即時大破させやすくなる。
・近接武器適性 近接武器による攻撃後の隙が軽減される。
・近接武器適性Ⅱ 近接武器による攻撃後の隙が大きく軽減される。
・プリサイスショットⅡ クリティカルヒット時のダメージが大きく上昇する。

▼アクション系

・ニースタンプ 素早く跳び上がり、踏みつけ攻撃を行う。操作:ジャンプボタン×2
・ニースタンプⅡ 素早く跳び上がり、強力な踏みつけ攻撃を行う。操作:ジャンプボタン×2
・クイックジャンプ 素早く跳び上がり、上空で一定時間停滞する。操作:ジャンプボタン×2