パソコンクラブのブログ

Ads by Google

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

お知らせ!

新しいサイトを開設しました。

新しいサイトでのアカウント取得が終了したら、ここでの書き込みはおしまいにしたいと思います。
詳しいことは新しいサイトの方で。

部長です

しばらく自分の書き込みがなかったので。
とりあえず途中経過を掲載。


//[ コンパイル設定 ]__________________________________________//

#packopt name "CmdLaunch"
#packopt runtime "hsprt"
#packopt hide 1

//____________________________________________________________//


//[ コマンドライン ]__________________________________________//

strCmdline = dir_cmdline
//コマンドラインを読み込む

numCmdlineParameter = 1
//コマンドライン引数のカウント
repeat strlen( strCmdline )
if peek( strCmdline , cnt ) = ',' : numCmdlineParameter ++
loop
//パラメータの数を取得

numCaretPosTemp = 0
//キャレット位置
sdim strCmdlineParameter, 1 , numCmdlineParameter
//コマンドライン引数
repeat numCmdlineParameter
getstr strCmdlineParameter( cnt ) , strCmdline , numCaretPosTemp , ',' : numCaretPosTemp += strsize
loop
//コマンドラインからパラメータを抽出

//____________________________________________________________//


//[ 動作選択 ]________________________________________________//

notesel noteScript
chdir dirinfo( 1 )
noteload "script.ini"
//スクリプトファイルを読み込む

repeat notemax
//スクリプトの解読・実行

noteget strScriptLine , cnt
//現在行を読み込み

newcom oReg, "VBScript.RegExp" : comres strScriptLine
oReg( "Pattern" ) = "\\t" : oReg( "Global" ) = 1
oReg-> "Replace" strScriptLine , ""
repeat numCmdlineParameter
oReg( "Pattern" ) = "\\$\\(p" + ( cnt + 1 ) + "\\)" : oReg( "Global" ) = 1
oReg-> "Replace" strScriptLine , strCmdlineParameter( cnt )
loop
delcom oReg
//コマンドラインパラメータを置換

getstr strScriptCommand , strScriptLine , 0 , ' ' : numCaretPosTemp = strsize
//スクリプトから命令を抽出

numScriptParameter = 1
repeat strlen( strScriptLine )
if peek( strScriptLine , cnt ) = ',' : numScriptParameter ++
loop
//引数の数を取得

//キャレット位置
sdim strScriptParameter, 1, numScriptParameter
repeat numScriptParameter
getstr strScriptParameter( cnt ) , strScriptLine , numCaretPosTemp , ',' : numCaretPosTemp += strsize
loop
//スクリプトからパラメータを抽出

if flgCaseMismatch = 1 {
//ケース比較で不一致だったときの飛ばし処理
if strScriptCommand = "case" and strScriptParameter( 0 ) = strCaseCurrent {
flgCaseMismatch = 0
} else : continue
}

if strScriptCommand = "run" {
//コマンド「run」の時の処理
exec strScriptParameter( 0 )
}

if strScriptCommand = "case" {
//コマンド「case」の時の処理

if strScriptParameter( 0 ) != strScriptParameter( 1 ) and strScriptParameter( 1 ) != "$(end)" {
//比較が不一致の時
//一致・終了時はそのままコードを実行するだけでOK
flgCaseMismatch = 1
strCaseCurrent = strScriptParameter( 0 )
}

}


loop

//____________________________________________________________//

end



ちなみに実行してもスクリプトファイルがないからエラーが出るだけ。

外部エディタ向けのコマンドラインランチャだけど、基本的な機能はそろった。
β版といったところかな。あとはおまけの機能を加えるだけ。

とりあえず一息ついたので、サイト制作の方をやっていこうかと思う。
「WordPress」というブログツールを使ってみようかと。
簡単な説明はこちら

PHPをちょっくら勉強して改造してやろうかと。
というのも、最近こことかここを読んでサイト制作のあるべき形について色々と考えてみたわけ。
そのための実験も兼ねているんで、ちょっと気合いが入ってる。

しばらくはここでサイト制作の進捗状況を書き込んでいくかも。
まぁみなさんがんばりましょうや。

HSP〜shooting

こんばんはtotterです
さて、試験が終わりましたし、がんばりますか、

今回主に変えたのが敵の動きです
----------------------

//motion//
if e_f(cnt)=1 {
e_y(cnt)+=5
}
if e_f(cnt)=2 {
e_y(cnt)+=3
e_x(cnt)+=2
e_mo_t(cnt)--
if e_mo_t(cnt)<=0 {
e_mo_t(cnt)=20
if rnd(4)=0 : e_f(cnt)=3
}
}
if e_f(cnt)=3 {
e_y(cnt)+=3
e_x(cnt)-=2
e_mo_t(cnt)--
if e_mo_t(cnt)<=0 {
e_mo_t(cnt)=20
if rnd(4)=0 : e_f(cnt)=2
}
}

if e_f(cnt)=4 {
e_mo_x(cnt)+=1
e_x(cnt)=e_sv_x(cnt)+(e_mo_x(cnt)*e_mo_x(cnt)*1/16-25)
e_y(cnt)+=3
if e_mo_x(cnt)=20 : e_mo_x(cnt)=-20 : e_f(cnt)=5
}
if e_f(cnt)=5 {
e_mo_x(cnt)+=1
e_x(cnt)=e_sv_x(cnt)-(e_mo_x(cnt)*e_mo_x(cnt)*1/16-25)
e_y(cnt)+=3
if e_mo_x(cnt)=20 : e_mo_x(cnt)=-20 : e_f(cnt)=4
}

//////////

-------------------------------
のように、e_f(cnt)が0の時は存在しない、1のときはまっすぐ、2と3の時はジグザグに、4と5の時には二次関数を使ってくねくね?動きます(本当は滑らかにゆらゆら動かしたかった、数値を入れ間違えたかな?)
e_f(cnt)はe_f(cnt)=rnd(5)+1と乱数を使って適当に入れている感じです。(笑)

さて

次回予定←
変数に統一性がなくなってきたので整理予定
キャメルケース?とやらを使ってみようかな?


↓全スクリプト
------------------------------------------

screen 0,400,600,0,0,0
m_x=200 : m_y=580

randomize

gtime=0
time=0
m_h=20
mb_m=20
mb_t=0
dim mb_f,mb_m : dim mb_x,mb_m : dim mb_y,mb_m

//////////////////
e_m=20
dim e_f,e_m : dim e_x,e_m : dim e_y,e_m : dim e_mo_x,e_m : dim e_sv_x,e_m
eb_m=99
dim eb_f,e_m,eb_m : dim eb_x,e_m,eb_m : dim eb_y,e_m,eb_m
//////////////////
color 0,0,0
boxf 0,0,400,600
*main


stick key,31

////自機操作////
if key&1 : m_x-=5 :if m_x<0 :m_x=0
if key&4 : m_x+=5 :if m_x>380 :m_x=380
if key&2 : m_y-=5 :if m_y<0 :m_y=0
if key&8 : m_y+=5 :if m_y>580 :m_y=580

repeat mb_m
if (key&16) {
if mb_t<=0 {
if mb_f(cnt)<=0 {
mb_f(cnt)=1
mb_x(cnt)=m_x+10
mb_y(cnt)=m_y
mb_t=7
}
}
}
if mb_f(cnt)>0 {
if mb_y(cnt)<0 : mb_f(cnt)=0
mb_y(cnt)-=5
}
loop
////////

////敵操作////
repeat e_m
if e_f(cnt)>0 {
//motion//
if e_f(cnt)=1 {
e_y(cnt)+=5
}
if e_f(cnt)=2 {
e_y(cnt)+=3
e_x(cnt)+=2
e_mo_t(cnt)--
if e_mo_t(cnt)<=0 {
e_mo_t(cnt)=20
if rnd(4)=0 : e_f(cnt)=3
}
}
if e_f(cnt)=3 {
e_y(cnt)+=3
e_x(cnt)-=2
e_mo_t(cnt)--
if e_mo_t(cnt)<=0 {
e_mo_t(cnt)=20
if rnd(4)=0 : e_f(cnt)=2
}
}

if e_f(cnt)=4 {
e_mo_x(cnt)+=1
e_x(cnt)=e_sv_x(cnt)+(e_mo_x(cnt)*e_mo_x(cnt)*1/16-25)
e_y(cnt)+=3
if e_mo_x(cnt)=20 : e_mo_x(cnt)=-20 : e_f(cnt)=5
}
if e_f(cnt)=5 {
e_mo_x(cnt)+=1
e_x(cnt)=e_sv_x(cnt)-(e_mo_x(cnt)*e_mo_x(cnt)*1/16-25)
e_y(cnt)+=3
if e_mo_x(cnt)=20 : e_mo_x(cnt)=-20 : e_f(cnt)=4
}

//////////
//delete//
if e_y(cnt)>650 : e_f(cnt)=0
if e_y(cnt)<-50 : e_f(cnt)=0
if e_x(cnt)>450 : e_f(cnt)=0
if e_x(cnt)<-50 : e_f(cnt)=0
///////

//tama//
c=cnt
if rnd(50)=0 {
eb_s_x=e_x(c)
eb_s_y=e_y(c)+10
repeat eb_m
if eb_f(c,cnt)>0 : goto *eb_s_2
eb_f(c,cnt)=1
eb_x(c,cnt)=eb_s_x
eb_y(c,cnt)=eb_s_y
eb_s_x+=10
eb_s_1++
*eb_s_2
if eb_s_1=3 : eb_s_1=0 : break
loop
}
////
}
//born//
if e_f(cnt)=0 : gosub *eb_s_4
if eb_s_3=1 : eb_s_3=0 : break
////
loop

////////


////当たり判定〜衝突////
repeat e_m
if (abs(m_x-e_x(cnt))<20)&(abs(m_y-e_y(cnt))<20)&(e_f(cnt)>0) {
e_f(cnt)=0
m_h--
}
loop
////////

////当たり判定〜敵vs自弾////
repeat e_m
c=cnt
repeat mb_m
if ((mb_x(cnt)-e_x(c))<20)&((mb_x(cnt)-e_x(c))>-2)&((mb_y(cnt)-e_y(c))<20)&((mb_y(cnt)-e_y(c))>-2)&((mb_f(cnt))>0)&(e_f(c)>0) {
e_f(c)=0
mb_f(cnt)=0
score+=1
}
loop
loop
////////


////当たり判定〜敵弾vs自機////
repeat e_m
c=cnt
repeat eb_m
if eb_f(c,cnt)>0 {
eb_y(c,cnt)+=10
if ((eb_x(c,cnt)-m_x)<20)&((eb_x(c,cnt)-m_x)>-2)&((eb_y(c,cnt)-m_y)<20)&((eb_y(c,cnt)-m_y)>-2)&(eb_f(c,cnt)>0) {
m_h-=1
eb_f(c,cnt)=0
}
if eb_y(c,cnt)>600 : eb_f(c,cnt)=0
}
loop
loop
////////
if gtime=3 : gosub *gra
if m_h<=0 : goto *gameover
gtime++
time++;経過時間+1
mb_t--;自弾の間隔-1


await 6
goto *main


////敵発生////
*eb_s_4
if rnd(100)=0 {
e_f(cnt)=rnd(5)+1
e_x(cnt)=rnd(400)
e_y(cnt)=0
e_sv_x(cnt)=e_x(cnt)
eb_s_3=1
e_mo_t(cnt)=20
}
return
////////

*gameover
color 255,255,255
pos 250,580 : mes "SCORE"
pos 300,580 : mes score
pos 340,580 : mes "HP"
pos 360,580 : mes m_h
pos 200,300
color 0,0,255
mes "GAMEOVER"
stop

*gra
redraw 0
color 0,0,0
boxf 0,0,400,600
////teki////
repeat e_m
c=cnt
color 255,0,0
if e_f(c)>=1 {
boxf e_x(c),e_y(c),e_x(c)+20,e_y(c)+20
}
repeat eb_m
if eb_f(c,cnt)>=1 {
boxf eb_x(c,cnt),eb_y(c,cnt),eb_x(c,cnt)+2,eb_y(c,cnt)+2
}
loop
loop
////////

////my////
color 0,255,0
boxf m_x,m_y,m_x+20,m_y+20
repeat mb_m
if mb_f(cnt)>=1 : boxf mb_x(cnt),mb_y(cnt),mb_x(cnt)+2,mb_y(cnt)+2
loop
////////
color 255,255,255
pos 250,580 : mes "SCORE"
pos 300,580 : mes score
pos 340,580 : mes "HP"
pos 360,580 : mes m_h

redraw 1
gtime=0
return

HSP〜shooting

こんばんは、totterです。
…あれ?偏ってる?何でだろう?
よくわからない←
とりあえずそれはおいておいて
敵発生の部分を

////敵発生////
*eb_s_4
if rnd(100)=0 {
e_f(cnt)=1
e_x(cnt)=rnd(400)
e_y(cnt)=0
eb_s_3=1
e_moti1(cnt)=rnd(2)
e_moti2(cnt)=20
}
return
////////

にしてみた。
乱数で発生する訳です
敵を緩やかなカーブで曲げるのは、うまくいかなかったので寄り道です(笑)
その内完成したら上げます←
↓全スクリプト
//システム系//c,key,time,score,gtime
//自機系//m_h,m_x,m_y
//自弾系//mb_m,mb_f,mb_x,mb_y,mb_t
//敵系//e_m,e_f,e_x,e_y,e_moti1,e_moti2
//敵弾系//eb_m,eb_f,eb_x,eb_y,eb_s_x,eb_s_y,eb_s_1,*eb_s_2,eb_s_3,*eb_s_4


screen 0,400,600,0,0,0
m_x=200 : m_y=580

randomize

gtime=0
time=0
m_h=20
mb_m=20
mb_t=0
dim mb_f,mb_m : dim mb_x,mb_m : dim mb_y,mb_m

//////////////////
e_m=20
dim e_f,e_m : dim e_x,e_m : dim e_y,e_m : dim e_moti1,e_m : dim e_moti2,e_m
eb_m=100
dim eb_f,e_m,eb_m : dim eb_x,e_m,eb_m : dim eb_y,e_m,eb_m
//////////////////
color 0,0,0
boxf 0,0,400,600
*main


stick key,31

////自機操作////
if key&1 : m_x-=5 :if m_x<0 :m_x=0
if key&4 : m_x+=5 :if m_x>380 :m_x=380
if key&2 : m_y-=5 :if m_y<0 :m_y=0
if key&8 : m_y+=5 :if m_y>580 :m_y=580

repeat mb_m
if (key&16) {
if mb_t<=0 {
if mb_f(cnt)<=0 {
mb_f(cnt)=1
mb_x(cnt)=m_x+10
mb_y(cnt)=m_y
mb_t=7
}
}
}
if mb_f(cnt)>0 {
if mb_y(cnt)<0 : mb_f(cnt)=0
mb_y(cnt)-=5
}
loop
////////

////敵操作////
repeat e_m
if e_f(cnt)>0 {
//motion//
if e_f(cnt)>=0 {
e_y(cnt)+=3
if e_moti1(cnt)=0 : e_x(cnt)+=2 : e_moti2(cnt)--
if e_moti1(cnt)=1 : e_x(cnt)-=2 : e_moti2(cnt)--
if e_moti2(cnt)<=0 {
if e_moti1(cnt)=rnd(2) : e_moti2(cnt)=20
}
}

//////////
//del//
if e_y(cnt)>650 : e_f(cnt)=0
if e_y(cnt)<-50 : e_f(cnt)=0
if e_x(cnt)>450 : e_f(cnt)=0
if e_x(cnt)<-50 : e_f(cnt)=0
///////

//tama//
c=cnt
if rnd(50)=0 {
eb_s_x=e_x(c)
eb_s_y=e_y(c)+10
repeat eb_m
if eb_f(c,cnt)>0 : goto *eb_s_2
eb_f(c,cnt)=1
eb_x(c,cnt)=eb_s_x
eb_y(c,cnt)=eb_s_y
eb_s_x+=10
eb_s_1++
*eb_s_2
if eb_s_1=3 : eb_s_1=0 : break
loop
}
////
}
//born//
if e_f(cnt)=0 : gosub *eb_s_4
if eb_s_3=1 : eb_s_3=0 : break
////
loop

////////


////当たり判定〜衝突////
repeat e_m
if (abs(m_x-e_x(cnt))<20)&(abs(m_y-e_y(cnt))<20)&(e_f(cnt)>0) {
e_f(cnt)=0
m_h--
}
loop
////////

////当たり判定〜敵vs自弾////
repeat e_m
c=cnt
repeat mb_m
if ((mb_x(cnt)-e_x(c))<20)&((mb_x(cnt)-e_x(c))>-2)&((mb_y(cnt)-e_y(c))<20)&((mb_y(cnt)-e_y(c))>-2)&((mb_f(cnt))>0)&(e_f(c)>0) {
e_f(c)=0
mb_f(cnt)=0
score+=1
}
loop
loop
////////


////当たり判定〜敵弾vs自機////
repeat e_m
c=cnt
repeat eb_m
if eb_f(c,cnt)>0 {
eb_y(c,cnt)+=10
if ((eb_x(c,cnt)-m_x)<20)&((eb_x(c,cnt)-m_x)>-2)&((eb_y(c,cnt)-m_y)<20)&((eb_y(c,cnt)-m_y)>-2)&(eb_f(c,cnt)>0) {
m_h-=1
eb_f(c,cnt)=0
}
if eb_y(c,cnt)>600 : eb_f(c,cnt)=0
}
loop
loop
////////
if gtime=3 : gosub *gra
if m_h<=0 : goto *gameover
gtime++
time++;経過時間+1
mb_t--;自弾の間隔-1


await 6
goto *main


////敵発生////
*eb_s_4
if rnd(100)=0 {
e_f(cnt)=1
e_x(cnt)=rnd(400)
e_y(cnt)=0
eb_s_3=1
e_moti1(cnt)=rnd(2)
e_moti2(cnt)=20
}
return
////////

*gameover
pos 200,300
color 0,0,255
mes "GAMEOVER"
stop

*gra
redraw 0
color 0,0,0
boxf 0,0,400,600
////teki////
repeat e_m
c=cnt
color 255,0,0
if e_f(c)>=1 {
boxf e_x(c),e_y(c),e_x(c)+20,e_y(c)+20
}
repeat eb_m
if eb_f(c,cnt)>=1 {
boxf eb_x(c,cnt),eb_y(c,cnt),eb_x(c,cnt)+2,eb_y(c,cnt)+2
}
loop
loop
////////

////my////
color 0,255,0
boxf m_x,m_y,m_x+20,m_y+20
repeat mb_m
if mb_f(cnt)>=1 : boxf mb_x(cnt),mb_y(cnt),mb_x(cnt)+2,mb_y(cnt)+2
loop
////////
color 255,255,255
pos 250,580 : mes "SCORE"
pos 300,580 : mes score
pos 340,580 : mes "HP"
pos 360,580 : mes m_h

redraw 1
gtime=0
return

部長です

ちょっとブランク空いた、ごめん

totterくんの見ました。
なかなか仕事が速いじゃあないか。
でもどうやら右にばかり寄ってしまうみたい…
なんでだろ…
スクリプトを見てみたがよく分からなかった(‘・ω・`)

まぁゆっくりがんばってちょうだい。
いつでもいいんで。

私とはいえばOSの再インストールをした。
nLiteというソフトで独自のCDを作ったのだが、これがすこぶる便利。
spを適応できるというだけでなく、初期段階から様々なサービスを消したりカスタマイズを行っておける。
おかげで一通りソフトを入れ直してもだいぶ速い。

 | HOME |  »

Calendar

« | 2009-11 | »
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -

Monthly

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

チベンPCクラブ

チベンPCクラブ

FC2ブログへようこそ!

FC2Ad

FC2ブログ 一戸建て