全体表示

[ リスト | 詳細 ]

記事検索
検索
ブラウザで日付入力のインターフェイスを実現…
jQuery とプラグインを使用するのが最近は主流なのかな、と検索でたまたま最初に見つかった、
simple jQuery date-picker plugin
を組み込んだ。

わりといい感じなのでそのまま使用することにしたのだが、日付を入力した後の text 変更イベントが発生しないようだ。(jQuery の change イベントハンドラが呼び出されない)

どうも、jQuery の change イベントはフォーカス後、フォーカスを失ったところで値の変更を検出しているらしい。

やっぱり日付選択したらアクションして欲しいよね、ということで:
日付選択後に text に日付を挿入しているのはスクリプト内の closeIt 関数
[cal.js]
function closeIt (el, datepicker, dateObj) { 
	if (dateObj && dateObj.constructor == Date)
		el.val(jQuery.fn.simpleDatepicker.formatOutput(dateObj));
	datepicker.remove();
	datepicker = null;
	jQuery.data(el.get(0), "simpleDatepicker", { hasDatepicker : false });
}
セットした後に、値が変更されていたら change イベントを呼ぶようにする
function closeIt (el, datepicker, dateObj) { 
	datepicker.remove();
	datepicker = null;
	if (dateObj && dateObj.constructor == Date) {
		var oldval = el.val();
		el.val(jQuery.fn.simpleDatepicker.formatOutput(dateObj));
		if (oldval != el.val()) {
			el.change();		
		}
	}
	jQuery.data(el.get(0), "simpleDatepicker", { hasDatepicker : false });
}

※ちなみに
jQuery Text Change Event を使って twitter をインクリメンタル検索するサンプルを書いた - ess sup
で紹介されているようなプラグインでもイベントは発生しない様子。恐らくはフォーカスを得たときだけ検査するようにしているのだろうと思われる

ひとしきり満悦した後、
日付入力のためのjQueryプラグイン 10選 - Sometime PHP みたいなものを見つけて、ひょっとすると jQuery UI Library にある DatePicker ではできたりするんかなぁ、とか思いながらそっとウィンドウを閉じたのだった。


mkII対応 1画面ゲームリスト集


プチコンmkIIではランチャーメニューができたので、プログラムの実行は便利になったのだがプログラム終了後にメニューに戻るようになってしまったので、プログラム本体に再プレイ機能を追加

#今までもギリだったのにさらにつらく…

【プチコン1画面ソフトmkII vol.37&38】

プチコンmkIIで追加されたファイルランチャーでは、プログラム終了後にランチャーへ戻るようになっています。

【GOSIGHT35】移植版GOKIVADER パピコン風】では、延々とプレーした後、ゲームオーバーになるとメニューへ戻ってしまいますので、スコアを確認することもできず、もう一度プレーする気になれません(いや、それはまた別の問題だろう)

今までのソフトすべてがそうですが(^^;


そこで、mkII対応版として、ゲームオーバー後、スコア表示してAボタンで再プレイができるように改良しました。

「ゴキストッパー」を操って襲い来るゴキベーダーたちを撃退してください。
防衛ラインを突破されるとゲームオーバーです。

イメージ 1



















デスレーベルでは5レーン→6レーン、ベーダーたちの侵攻速度がだんだんと上るようにして単調だったスコアアタックをエキサイティングにしてみました。


【プチコン1画面ソフトmkII vol.37】 GOKIVADER for プチコンmkII

左、上、右 or Y、X、A で「ゴキストッパー」を操ります。
対応した位置にゴキストッパーがワープします。一瞬です。凡人には見えません。

QRコード(クリックで拡大) PRG:PMAN37
イメージ 2

【プチコン1画面ソフトmkII vol.38】 GOKIVADERmkII

ベーダーが6列侵攻してくるので、左、上、右、Y、X、A で「ゴキストッパー」を操り、撃退してください。
だんだんと侵攻速度が上昇します。

8175点あたりに限界がありますが、それ以前に心が萎えると思います。もし、8000点を越えた人がいらっしゃったら御連絡ください。特別バージョンを作って差し上げますw
※2012.05.15修正。大体260秒くらい

QRコード(クリックで拡大) PRG:PMAN38
イメージ 3

結局のところ


【GOSIGHT35】移植版GOKIVADERでいろいろ研究したけれど、RND()関数、周期短すぎ。

ただ、いろいろ条件はある模様。今回の使い方ではどうにも周期が数十程度になってしまった。せめて100近い周期があれば…

ということはGOKIの出方が同じパターンを繰り返すことになるので、この手のゲームとしてはちょっと厳しい…(やってみればわかります)


また、RND()関数ではゲームのリプレイなどで重要になる再現性がないので、そのあたりを考慮すると自分で気に入った擬似乱数を実装する必要がある。

おちゃめさん(@ochame_nako)さんがTwitterでつぶやいておられた(1)(2)擬似乱数ルーチンをメモ代わりに紹介

プチコンのRNDは再現性がないので疑似乱数を作ってみた。Y=(Y+1)%4095:X=(X*405504+Y)%4096/4096  
これでXに0〜1の値が入る。(X、Yに適当な初期値を設定しておく) 周期が長いためGPSETで画面を埋め尽くすことも可能です。
昨日書いた疑似乱数だけど数字を変えて乱数の発生パターンを検証してみた結果「405504」よりも「479232」の方が規則性が少ないことが分かった。乱数の発生周期は16773120なので普通に使う分では同じパターンが出てくることはほぼないはず。 

X,Yの初期値をどう与えよう?面倒ならば
X=RND(4096)/4096:Y=RND(4096)
でOK(笑)
2011.03.15の記事を再編集

プチコン倶楽部 GOSIGHT 企画

…ってこんなネタわかる人はそうとうなアラフォーだな


こんな制限の下でプログラミングを楽しみます。
- 当時の憧れだった高橋はるみ女史に近づくべく、1日1本、なんでもいいので動くものを作る
- パクリ、一部改変のみでもプライドが許せばOK
- ソースコードは1画面に収める

※2011年40歳当時の決意であり、今は形骸化

実行前に下記コマンドで VRAM 初期化
左+Rボタン+STARTボタン


1画面ゲームリスト集


一日一本は早々に断念でしたが、とりあえず遊べるものを紹介

【GOSIGHT】1画面ゲームリスト集 - 初代プチコン用。mkIIでは一部正しく動かないかも
【GOSIGHTmkII】1画面ゲームリスト集 for mkII - プチコンmkII用。初代では動きません

1画面でないゲームリスト集

【プチコン】ぷちぱん! - 子供の頃電気屋の店頭でサルのように遊んでいた記憶

.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事