TheoryOfContraints official blog -25ページ目

webexeってアプリを作りました

https://github.com/kubohisa/hsp_webexe

HSPのフォーラムを見ていて、ふと思い浮かんだので。WEBを全画面に表示するアプリを作ってみた

システムとしては

・全画面ウィンドウを作る
・HSPの機能でインターネットエクスプローラを全画面で表示する
・webフォルダのindex.htmlを呼び出して表示

で、exeファイルをクリックすると全画面にウェブを表示できるアプリが出来てますが

ウェブブラウザーのおまけでJavascriptと言うゲームが作れるのがあるんですけど。おまけのなので、しょぼいので、覚えやすいので、ゲームクリエーターになるんだ!って子供向けのJavascriptの本が多いのですが。ウェブブラウザーでしか遊べない

これを使えば、ウェブブラウザーのゲームをexeアプリに出来るのです!

本意ですか? アホなゲームオタクでもJavascriotならゲームを作れるだろうと思うので、Javascriotでウィンドウズなexeファイルなゲームが作れたら、ゲーム作ってコミケに来るんじゃないの?って思いを込めてます

まぁ、アイコンはHSPのアイコンになるので、それを変更するアプリは見つけてもらうしかないのですが

あと、手元にJavascriptのゲームが無かったので動かないゲームライブラリもあるかもしれませんが。それはインターネットエクスプローラーが悪いので、どーにもならないので対応できません。バグや機能追加のリクエストがあれば伺いますが

それから、全画面表示をなくしてゲームを終了する時はESCボタンを押して、「はい」をクリックでウィンドウズの画面に戻りますので

ゲームを作るのが難しくなくなるのは良い事だと思いますよ
ヽ(*・ω・)人(・ω・*)ノ

お礼ですか。任意ですけど、できれば出来たゲームなどをダウンロードでも良いので無料でくださいませませ…

それにしてもHSPのソースリストをgithubに持ってったら、タブ表示が無くなる現象が起きている。なぜなのか?




ライブラリの作り方

HSPと言うアプリを作る開発言語=コンピュータ語は癖が強すぎて扱いにくいけど。マニュアルにもない部分もあるので、本当に使いずらい

とりあえず、ライブラリの実装の基本は見えたのでまとめておく

-------
#module

; ローカル変数の設定
    a = 0

#deffunc test_init
    ; モジュールの前処理や初期化などの処理の関数
    a = 100
    return

#deffunc test_hoge1
    ; ローカル変数の変更
    a = a + 40
    return

#defcfunc test_get
    ; ローカル変数の取得はなるべくreturn文を使って関数で。そうでなければ、グローバル変数に置く
    test_out@ = a
    return a

#deffunc test_exit onexit
    ; ライブラリの後処理はアプリ終了時に起動する
    return

$global
    test_out = 0 ; 他のライブラリから見るためのグローバル変数の設定
    test_init ; 初期化関数の実行

-------
てな作り方になります。ブログに直接書きなぐっているのでバグがあるかもしれませんが。見本として

HSPはオブジェクト指向も使えますが。とりあえずはオブジェクト指向は使わないけどデータの安全は保障できるカプセル化を行うというか、配列変数によるデータベースのシングルトンなライブラリのイメージの実装です

ライブラリやローカル変数の部分はマニュアルにもあまりないので、その辺の部分もテキストで読めれればな、と思います
(b^-゜)




乱数発生アルゴリズムを発明した話

http://www.4gamer.net/games/042/G004287/20140905040/

で、昔のゲームの乱数発生アルゴリズム=ルーレット機能をどう作ったかが読める

昔は1バイト=0から255までの数字をどうルーレットでデタラメに取り出すのか?と言うので苦労していたそうだ。と言うか、昔、MSXと言うマイコンでアセンブラでアプリを作ってたりしたので、すごくリアルタイムで、MSX FAN誌のアセンブラ講座とかで読みましたよ…

まぁ、敵キャラの出現場所やタイミングや、じゃんけんでどれを出すかなどを人工知能が決めるのはルーレットで決めるので、すごく大切なアルゴリズムな訳です

で、その昔のゲームの乱数発生アルゴリズムの条件は

・0から255までの数字がまんべんなく出る
・繰り返し同じパターンで数字が出てこない

が理想な訳です。で、HSPで乱数発生ライブラリを作ってみた

-------
; randomlib.as
; program: Hisao Ookubo,

#module 

; 乱数の取得
#defcfunc rnd256 int a
r = rnd256_seed_@(rnd256_count_@)
rnd256_count_@ = rnd256_count_@ + 1
if (rnd256_count_@ >= 256) {
rnd256_count_@ = 0
rnd256shufful
}
r = r \ a
return r

; 変数のシャッフル
#deffunc rnd256shufful
repeat 256
r = rnd(256)
temp = rnd256_seed_@(cnt)
rnd256_seed_@(cnt) = rnd256_seed_@(r)
rnd256_seed_@(r) = temp
loop
return 

#global

; ライブラリの初期化
randomize ; システム乱数の初期化
dim rnd256_seed_, 256 ; 変数の初期化
repeat 256
rnd256_seed_(cnt) = cnt
loop
rnd256_count_ = 0
rnd256shufful ; 変数発生

-------

昔のファミコンやマイコン風に言うと

まず、256バイトのバッファーにそれぞれ0から255までの数字をまんべんなく置く
バッファーをシャッフルする
バッファーから数字を一つずつ取り出し、バッファーが無くなればシャッフルする

すると、昔のゲームの乱数発生アルゴリズムの条件を満たす、マジックと言うか手品程度の凄い乱数発生ルーチンができる

昔のファミコンやマイコンとは違ってメモリが豊富なので、256バイトものメモリを使って富豪な実装ができるのです

って、確か、ファイナルファンタジーの乱数アルゴリズムはデータテーブル使ってたよ… まぁ、ROMでですけれど

まぁ、おバカな発想な乱数発生アルゴリズムですよ。「シャッフル法」とでも呼んでおきます
( ´艸`)

とりあえず、これでファミコン風乱数発生アルゴリズムは確保できたぞ
ヽ(*・ω・)人(・ω・*)ノ

シャッフル時にシステムの乱数を使っているけど、ザイログなアセンブラならRレジスタとか使うのだろうな… まぁ、使えるファミコン風乱数発生ライブラリを作るのが目的なので




久しぶりにプログラミング

HSPと言うテレビゲームを作るためのアプリがありまして、暇つぶしにプログラミングをしてました

 

とりあえず、ファミコンの画面256×240の大きさを全画面表示するライブラリを作ってました。やはり、テレビゲームを作るならファミコンらしく作りたい

('-'*)(,_,*)('-'*)(,_,*) うんうん

 

そのソースリスト

 

-------

; screenlib.as
; program: Hisao ookubo.

 

#module

 

#deffunc screen_init
   width ,,0,0                ; 全画面表示
    chgdisp 1
    
    bgscr 0,640,480,0,0,0    ; 枠の無いウィンドウ
    gsel 0
    
    buffer 1, 256, 240 ; nes size.
    
    return

 

#deffunc screen_clear
    gradf 0,0,256,240,1,0,128    ; 画面クリア
    return
    
#deffunc screen_put
    gsel 0
    pos 0,0
    gzoom 640, 480, 1, 0, 0, 256, 240
    return
    
#deffunc screen_exit onexit
    chgdisp
    return

#global
-------

 

256×240な仮想画面バッファー1をgsel 1を使って画面データを作って、それをscreen_putで表示スクリーンへ持って行ってますので、まぁ、HSPerな方々はソースリストを読めば見えるとは思いますが

 

画面クリアー機能はHELPのソースまんま残っているので、変更するつもりですけど

 

久しぶりのプログラムは楽しい。でも、HSPのバグは多いな。ライブラリを変更したら、main.hspソースも変更を行わないと正常にコンパイルが出来ない、とか。関数定義をどう見直しても文法エラーが出るとか

 

C言語診察室に感銘を受けた人なので、ライブラリを作りすぎる人なので。HSPもライブラリの部分のエラーが無くなれば良いのに

。(´д`lll)

 

 

 

 

 

 

 

 

昨日はマインクラフト

マインクラフトで炭坑と洞窟をいつの間にか制覇?踏覇?してました

まぁ、モンスターから逃げながら松明を置くゲーでしたね

実況動画見ても、爆発するクリーパーさんは逃げるか、わざとダメージを受けないタイミングでわざと爆発させてますからね

逃げれられなければ、他のモンスターもボタン連打で倒すと

盾がAndroid版へ来るとダメージが減るそうですけれど…
( ̄ー ̄;



今日もマインクラフト

Androidで相変わらずマインクラフトしてますが、今日、Android版へアップデート来まして。さまざまな所で、どこが変化しているんだと話題ですが

前に、ブログで言うた、「素手が使えなくなる」のが直ってます

アイテムが無い場所を選ぶと素手になるんです!すっげー便利

Thxs! minecraft stuff are cools!
:-)



お邪魔してました




http://www.osaka-design.co.jp/

大阪のデザイナーの為の公的スペースですけど。ポスターの作り方のマニュアルやイラスト集などが無料で見れるライブラリーがあるので見てました

自分でジャケットとか作ってますからー。独学ですからー
(・∀・)

あと、






フェリーが見れるレストランで劇甘カレーを食べてます。福神漬け嫌ーい
。(´д`lll)



ぷよぷよリーグ!?

http://nlab.itmedia.co.jp/nl/spv/1603/30/news151_0.html

まぁ、たった独りでウル4でCOM戦を続けている人から言わせて貰えば、ぷよらーの人々の行動は

ただの甘え

ですけれど、思いは判ります

格闘ゲームの人達はプロゲーマーと崇められてちやほやされるのに、ぷよぷよではそうならない。それはセガのせいだ

それは、その通りなのですよ
(´∀`)

でも、トマホークミサイルで天守閣潰せば良い訳ではなく、外堀を埋めてかないといけないのよ

妥協案としては、アニメや声優ボイスを削除して、ゲームの所を残して。あくまでもぷよぷよオフィシャル大会のトレーニングの為のアプリとして無料なら、本当に訴えられない

少しずつ前へ進んで、セガに認めて貰って、定期的なぷよぷよオフィシャル大会の約束を引っ張って来れたら、それでもドローなのよ

まぁ、言うても

過激派の方々は聞かないと思いますが。セガから見れば、あなたがたゲリラかテロリストですよ

って所です

まぁ、思いは判らなくはないです。世の中にはルールって物があるのですよ、ゲームと同じで
(・∀・)



オフィシャルウェブを作り直している

最近、マインクラフトは地下シェルター生活が安定していて。マインクラフトは死なないTODOを行い続けるゲームなのだなー、と

で、オフィシャルウェブを作り直してます

http://test.pdbrec.com/

出来たら、いつものオフィシャルウェブのアドレスへ持ってくんですけど

conohaオブジェクトストレージ
https://www.conoha.jp/features/objectstorage/?btn_id=features_objectstorage

って言う1ヶ月100GBのファイルダウンロードの為のサーバーを見つけたので、ビデオやラジオはそれで流せるので

まぁ、テレビやラジオには呼ばれないだろうので、ウェブでええかな、と

正直、マイスペースの頃が行動しやすかった。ツイッターやフェイスブックって思った程ではないので。マイスペースっぽいオフィシャルウェブで行動してソーシャルメディアで人を集めよと

オウンドメディアアーティストと呼ばれたいな爆笑

って言う、まぁ、暇つぶしのライフワークですからね、テクノミュージックはニコニコ



今日もマインクラフト

実は地下農場は松明の置き方も工夫を始めていて

クリエイティブモードでのモデルですが



ジャックオランタン=かぼちゃのランプを浮かせてます。地面に土を置いて、その上にランタンを置いて土を削って無くすと、ランタンが空中に浮くのを使ってます

これにより、松明を地面に置かなくても良いので、水流で刈り取る時に松明が流されないので、松明の置き直す処理が減るし。小麦を植える面積も増やせます
(*・ω・)ノ

ランタンを壁や天井に植え込んでも良いかな?とか思ってますが

地面が増えるので



壁に岩で隠している水路も長くできるので。効率も良くなります

それと、昨日の通路にフェンスゲートって言うのは



ですね。ゲート開けっ放しでも水が外に出ないので便利

我が農場は、常にKAIZENの為のPDCAのループを動かしてますからな。ふぉっふぉっふぉっふぉっ
( ´艸`)