とりあえず魔法一揃い


2017年 11月23日
 
 
 途中だけど区切りが良いので。
 
 
 ソースには魔法一揃い並べたけど、まだ機能は全部実装してない。

 補助ステータスのソースをまとめたのとヒールを追加したくらい。

  “とりあえず魔法一揃い” の続きを読む

ステータス魔法を追加する


2017年 11月17日
 
 
 前回より 2週間の時間が経ちました。
 
 
 いやあ、今回も大変だった(こればっか)

 何が大変だったかと言うと、ステータスを変化した値をどこに格納して参照するか。

 ud、ユニットデータに格納すれば事は簡単なのだが、これだとステータスの変数が例えば 30種類だったとして、200ユニット作るとデータが 6000増える、6kバイト?いや、一つの変数はたぶん 4バイト、つまり 2バイトで最大値 65536だから、いくつかはめんどくさいので計算しないが、4バイトだとそれ以上の最大値で、それを確保してるはずだから・・・、まあいいや、とにかく 6000*4で 24Kバイト、1000ユニット作ったら、ええと・・・。

 まあとにかくユニットデータに余分なデータを格納すると、死にデータ領域が増えるし、オーバーフローで動かなくなる可能性が。

 と言っても最近のスマホなら気にしなくても大丈夫なんだろうか?

  “ステータス魔法を追加する” の続きを読む

特殊攻撃を追加


2017年 11月1日
 
 
 たぶん今一番ややこしい箇所になってる。
 やっぱり戦闘部分が一番複雑かもしれない。

 今回は特殊攻撃を追加して、合わせてプログラムも改変している。
 改変自体はまだまだどんどん続くだろう。

 そういえば前にプログラムを適性化してはならないと言ったけど、それは完成して動いてるやつね。
 それもたぶん、なるべくしない方が良いくらいのニュアンスだと思う。

  “特殊攻撃を追加” の続きを読む

属性補整ができた


2017年 10月25日
 
 
 思った以上に複雑だった。

 属性が単だったら簡単だけど、複数の属性を持った同士が想定されるので難解だ。
 
 
 属性相関図

 本ゲームでは、

 火は、炎と熱、火傷。
 地は、大地と植物、地震、重力、スタン(気絶)。
 風は、突風やカマイタチ、雷、マヒ。
 水は、水、冷気、フリーズ(氷化による鈍化)。
 光は、聖なる、4属性に弱い、ターンアンデッド。
 闇は、邪悪、4属性に強い、毒。

 と言う取り決めに今の所なってるが、魔法などでどれだけ生かされるかは、まだ分からない。

  “属性補整ができた” の続きを読む

戦闘プロフラムの基礎部分ができた


2017年 10月19日
 
 
 やっと初歩の攻撃部分だけできた。

 差配プログラムも変更されたが、部隊が 3部隊で 1部隊 3ユニットというややこしさと、武器を持ってる持って無い、射程がある、ユニットによっては手の攻撃が無い、2手攻撃、複数攻撃とか要素が多くて大変だった。

 あまりの作成する要素の量と、たぶん現在全行程の3割くらいしか進んでない状況から、もう完成しないのではないかと日に 1度は思う。

 やっぱりもっと簡単なゲームから制作した方が良かったのか・・・・。
 そう考えるのはクリエイターのお約束なんだろうなあ。

  “戦闘プロフラムの基礎部分ができた” の続きを読む

戦闘部隊の差配プログラムができた


2017年 10月8日
 
 
 戦闘部隊は最大でそれぞれ 3部隊ずつあるので、どの順番で戦うか、というプログラムね。

 これが意外とややこしくて、てこずった。

 部隊数が敵より少ない場合、順番にもう一度繰り返し戦う。
 
 
 ソース。

*battle ; 戦闘メイン ////////////////////////////////

	btvf=0	; 勝利フラグ

	repeat 1 ; -------------------------------------------------

	 dim ff1,4	; forceフラグ、攻撃側
	 dim ff2,4	; forceフラグ、防衛側

	 repeat 3 : cnt2=cnt ; 部隊が存在するか
	  repeat 3
	   if mu(kn1*10+cnt2*3+cnt+1)=0 : continue
	   ff1(cnt2+1)=1 : break
	  loop
	  repeat 3
	   if mu(kn2*10+cnt2*3+cnt+1)=0 : continue
	   ff2(cnt2+1)=1 : ff2(0)=-1 : break
	  loop
	 loop

	 if ff2(0)=0 : btvf=1 : break; 防衛部隊が無いので勝利


; 戦闘部隊差配 -------------

	 fc1=0 : fc2=0 ; 部隊No.

	 repeat 3	; 攻撃側
	  if ff1(fc1\3+1)=0 : fc1+ : continue

	  bf=0 ; 不戦勝フラグ
	  repeat 3	; 防衛側
	   if ff2(fc2\3+1)=1 : gosub *fight : fc2+ : bf=1 : break
	   fc2+
	  loop
	  if bf=0 : btvf+ ; 不戦勝

	  fc1+
	 loop

	 repeat 3	; 防衛側
	  if fc2>=3 : break ; 全部隊戦闘したので終わり
	  if ff2(fc2\3+1)=0 : fc2+ : continue

	  bf=0 ; 不戦負フラグ
	  repeat 3	; 攻撃側
	   if ff1(fc1\3+1)=1 : gosub *fight : fc1+ : bf=1 : break
	   fc1+
	  loop
	  if bf=0 : btvf- ; 不戦負

	  fc2+
	 loop

	loop ;------------------------------------------------------

    return


*fight ; 戦闘 ///////////////////////////////////////

	fg1=fc1\3+1
	fg2=fc2\3+1

	dim fn1,4 ; 攻撃側ユニットNp.
	dim fn2,4 ; 防衛側ユニットNp.

	repeat 3,1 ; ユニットNo.ひかえ
	 fn1(cnt)=mu(kn1*10+(fg1-1)*3+cnt)
	 fn2(cnt)=mu(kn2*10+(fg2-1)*3+cnt)
	loop

	return

 btvf=勝敗数。

 ff=どの部隊が存在するか。
 1は攻撃側、2は防衛側。

 fc=部隊の順番カウント。
 部隊が敵より少ない場合に、順番に戦わせるため。
 部隊数は fc\(余り)3+1で求める。

 攻撃側と防御側、それぞれ 3回ずつで判定する。

 fg=今戦っている部隊No.
 fn=戦うユニットNo.
 
 
 攻撃側


 
 
 防衛側


 
 
 1戦目。左が攻撃側、右が防衛側。


 
 
 2戦目

 
 
 3戦目

 
 
 3戦目は防衛側が第 2部隊をもう一度出している。

 1部隊しかなければ 3戦出る。

 まだ戦闘が出来てないので、たぶん 1戦目でやられるだろうから、実際には 3戦目は不戦勝とかそんな感じ。
 
 
 あ、そうそう、部隊は前衛、中衛、後衛で出来ていて、射程の概念がある。
 
 

装備によるアイテム枠増減のプログラムできた(T_T)


2017年 10月4日
 
 
 いやあ、ややこしかった。

 おっと前々々回と入りが同じだ。

 どう処理したらできるのか分からなくて、もうダメかと思ったけど、何も考えずにブロック積み上げるように地味にベタベタと組んだらなぜかできた。

 まあ、難しい時はとりあえず紙に書くと良い。
 
 
 ソースはこちら。

 装備によるステータス計算の前半にぶち込む事にした。

 後半の 2ブロックはとりあえず前にも出た部分で、今回は関係無い。

 追加したのは増加枠の部分ね。

#deffunc equ_syo int equ_syon1,int equ_syon2; 装備処理

	eun=equ_syon1	; キャラNo.
	qin=equ_syon2	; アイテムNo.
	qig=qin*idb		; アイテムデータ位置


; 増加枠 -------

	repeat
	 n1=ud(ug+19) ; 元のアイテム枠数

	 n=0
	 repeat 7
	  qin2=ud(ug+40+cnt)
	  if qin2<=0 : continue
	  n+=id(qin2*idb+3) ; 知力を加算
	 loop
	 n2=(ud(ug+3)+n)/20-ud(ug+18)+1	; 枠元値

	 repeat 7
	  if equsi(cnt)!5 : continue	; 特殊枠
	  n=ud(ug+40+cnt)	; アイテムNo.
	  if n<=0 : break	; 装備してない
	  if id(n*idb+8)=19 : n2+=id(n*idb+9) ; 特殊の枠増加
	  break
	 loop

	 ud(ug+19)=n2 ; アイテム枠数

	 if n1<=n2 : break	; 枠が同数か増えてるなら終わり

	 n3=ud(ug+16)+ud(ug+17)+ud(ug+18)
	  if n3+n2>=7 : break	; 7枠以上なら終わり

	 n4=n3+n2
	 repeat 7 ; 減った枠のアイテムを外す
	  if n4+cnt>=7 : break
	  if ud(ug+40+n4+cnt)<=0 : continue
	  qin2=ud(ug+40+n4+cnt) : id(qin2*idb+13)=0 ; アイテムを外す
	  ud(ug+40+n4+cnt)=0
	 loop

	loop

	sbk_syo	; 装備枠再計算


; 基礎値 -------

	repeat 5 : ud(ug+21+cnt)=ud(ug+1+cnt) :	loop	; 基礎値

	repeat sbkn : cnt2=cnt	; アイテムの基礎値+
	 qin=ud(ug+40+cnt2)		; アイテムNo.
	 if qin<=0 : continue	; 装備してない

	 qig=qin*idb			; アイテムデータ先頭
	  repeat 5				; アイテム能力値+
	   ud(ug+21+cnt)+=id(qig+1+cnt)
	  loop
	loop

	repeat 2 : ud(ug+11+cnt)=ud(ug+21) : loop		; 基礎攻防値
	repeat 6 : ud(ug+31+cnt)=0 : loop				; 属性値リセット


; 装備 -------

	f=0
	repeat sbkn : cnt2=cnt
	 qin=ud(ug+40+cnt2)		; アイテムNo.
	 if qin<=0 : continue	; 装備してない

	 qig=qin*idb			; アイテムデータ先頭

	 repeat 1	; 攻撃
	  if ud(ug+16)<cnt2 : ud(ug+11)+=id(qig+11) : break
	  if f=1 : break
	  ud(ug+11)+=id(qig+11) : f=1
	 loop

	 ud(ug+12)+=id(qig+12)	; 防御

	 repeat 6 : ud(ug+31+cnt)+=id(qig+31+cnt) : loop	; 属性値
	loop


	return

 
 
 どういう事をしてるかというと、まず変更前のアイテム枠の数をひかえ、アイテム枠の数に関係する知力の全装備アイテムの値を仮に計算して、現在の元枠数を出す。

 次に特殊装備枠に枠数増加のアイテムが装備されていたら、その値をアイテム枠数に足す。

 枠数が装備変更前の枠数と同じか増えてる分には変更無し。

 枠数が 7枠以上なら装備を外す必要が無いので変更無し。

 減った枠の分だけ装備をはずす。

 そしたら始めに戻って再計算。
 
 
 とまあそんな感じだ。

 字ヅラだけ追っても何の事か分からないだろう。
 大丈夫、自分にはさっぱり分からない。

 これによって枠増加のアイテムは元より、知力の増加するアイテムを付けたり外した場合にも対処できる・・・・ハズ・・・。

 まあ、後は追々バグを処理していこう。
 
 
 装備前


 
 
 アイテム枠増加アイテムを装備。
 サックは +3。


 
 
 とりあえず、能力値増加のアイテムを装備してみる。
 ガントレットは力が、サークレットはその他が少し上がる。
 ステータスが少し上がってると思う。


 
 
 サックをはずすと、減った枠のアイテムが自動で外れる。


 
 
 以上(T_T)
 
 
 
 さて、やっと基本的な枠組みが出来上がった様なので、これでいよいよ「戦闘」をプログラムできると思う。

 やっとメインかなあ、戦闘の要素は全プログラムの 2~3割くらいかな。

 という訳でまた次回。
 
 

装備のステータス計算を作った


2017年 9月30日
 
 
 その前にまずデータの扱いを整理する事にした。

 ud(ユニットデータ)、cd(キャラデータ)、id(アイテムデータ)、itd(アイテム元データ)、これらの変数の何番目が何のデータかという奴だ。

 最終的に今の所こんな感じになった。

; キャラ
;(0=フラグ、
; 1=筋力、2=魔力、3=知性、4=魅力、5=HP、6=、
; 7=属性、8=特殊能力、9=特殊能力値、
; 10=GRNo、11=GRx、12=GRy、13=枠、14=背景、
; 15=出現Lv、
; 16=手スロット、17=防具スロット、18=特殊スロット、19=ITEMスロット、)

; ユニット
;(0=フラグ、cn(キャラNo、種類)、
; 1=筋力、2=魔力、3=知性、4=魅力、5=HP、6=、
; 7=属性、8=特殊能力、9=特殊能力値、
; 10=所属PL、11=攻撃力、12=防御力、13=配属、14=、15=、
; 16=手スロット、17=防具スロット、18=特殊スロット、19=ITEMスロット、)

; 最終値(21=筋力、22=魔力、23=知性、24=魅力、25=最大HP、26=現HP)
; 属性値(31=火、32=水、33=風、34=地、35=光、36=闇)
; 40=装備)
; ステータス(51=火傷、52=フリーズ、53=マヒ、54=スタン、55=ターンアンデッド、56=毒値)

; アイテム
;(0=フラグ、所持キャラ、
; 1=筋力、2=魔力、3=知性、4=魅力、5=HP、6=、
; 7=属性、8=特殊能力、9=能力値、10=所属PL、
; 11=攻撃力、12=防御力、13=所持PL、
; 14=装備箇所(1=手スロット、2=防具スロット、3=特殊スロット、4=ITEMスロット)
; 15=制作Lv
; 16=アイテム種類(0=未使用、1=右手、2=右両手、3=左手、4=左両手、
; 5=盾、6=防具、7=アクセサリー、8=特殊、9=アイテム、10=魔法、回復魔法、状態魔法)
;
; 17=射程、18=攻撃範囲、19=

 
 
 なぜこんな事をするのかと言うと、例えばキャラの 攻撃値格納が 15番で、アイテムの攻撃値格納が 11番だったりすると、扱いがややこしいからだ。

 例えば統一した攻撃値の計算だと ud(ug+11)+=id(ig+11)のようになり、要するにそれぞれ 11番目の値が攻撃値なので分かりやすい。

 今回それぞれ適当に手探りでやっていたので、データの扱いがバラバラだった。
 大変だが、まだソースが少ない内にやってしまおう。
 
 
 まず仕様番号の変わったデータを改変する、データコンバーターを作る。

 と言ってもしごく簡単だ。

;/////// CHARA_data_converter ///////

*chara_data

	cb=210	; キャラ種類
	cdb=20	; データ量
	dim cd,cdb,cb	; データ元
	 bload "c_data.dat",cd

	dim cd2,cdb,cb	; 改変データ

	repeat cb
	 cd2(0,cnt)=cd(0,cnt)
	 cd2(1,cnt)=cd(3,cnt)
	 cd2(2,cnt)=cd(4,cnt)
	 cd2(3,cnt)=cd(5,cnt)
	 cd2(4,cnt)=cd(6,cnt)
	 cd2(5,cnt)=cd(1,cnt)
	 cd2(6,cnt)=cd(2,cnt)
	 cd2(7,cnt)=cd(7,cnt)
	 cd2(8,cnt)=cd(8,cnt)
	 cd2(9,cnt)=cd(9,cnt)
	 cd2(10,cnt)=cd(15,cnt)
	 cd2(11,cnt)=cd(16,cnt)
	 cd2(12,cnt)=cd(17,cnt)
	 cd2(13,cnt)=cd(18,cnt)
	 cd2(14,cnt)=cd(19,cnt)
	 cd2(15,cnt)=cd(10,cnt)
	 cd2(16,cnt)=cd(11,cnt)
	 cd2(17,cnt)=cd(12,cnt)
	 cd2(18,cnt)=cd(13,cnt)
	 cd2(19,cnt)=cd(14,cnt)
	loop


	bsave "c_data.dat",cd2

 
 
 そしてプログラム内のデータの扱いを全て変えていく。
 隅から隅まで全部間違いなく変えないといけないので、これが大変な作業となる。
 
 
 ところでこれ、たぶんプログラマー的に言うとやってはいけない事だと思う。

 たしかプログラマーのハウツーに「最適化してはいけない」というようなものがあったと思う。

 なぜかと言うと必ずバグが発生し、不慮のバグが残る可能性が増大し、最悪の場合動かなくなるからだ。
 
 
 本当はデータの扱いを数字では無く、

 d_str=1
 ud(ug+d_str)、id(ig+d_str)

 のような変数扱いでするべきなのだろう。
 次回のプログラムからは考慮しようと思う。
 
 
 さて、その作業で(バカみたいに)2日程費やし、いよいよ装備によるステータス計算を行う。

 ソースはこんな感じ。

#deffunc equ_syo int equ_syon; 装備処理

	cn=ud(ug)

; 基礎値 -------

	repeat 5 : ud(ug+21+cnt)=ud(ug+1+cnt) :	loop	; 基礎値

	repeat sbkn : cnt2=cnt	; アイテムの基礎値+
	 in=ud(ug+40+cnt2)		; アイテムNo.
	 if in<=0 : continue	; 装備してない

	 ig=in*idb				; アイテムデータ先頭
	  repeat 5				; アイテム能力値+
	   ud(ug+21+cnt)+=id(ig+1+cnt)
	  loop
	loop

	repeat 2 : ud(ug+11+cnt)=ud(ug+21) : loop		; 基礎攻防値
	repeat 6 : ud(ug+31+cnt)=0 : loop				; 属性値リセット


; 装備 -------

	f=0
	repeat sbkn : cnt2=cnt
	 in=ud(ug+40+cnt2)		; アイテムNo.
	 if in<=0 : continue	; 装備してない

	 ig=in*idb				; アイテムデータ先頭
	 itn=id(ig)				; アイテム種類

	 repeat 1	; 攻撃
	  if ud(ug+16)

 
 
 装備無しの状態。


 
 
 武器を装備。

 う~ん、気がつかなかったけど魔法防御値もいるんだよなあ。
 うわあっ、そうだ魔攻値もだ。

 データ整理したばかりなのに、どうしたもんだろう。
 
 

 
 
 今の所 2番目以降の武器の攻撃値は足さない。


 
 
 防具のデータもまだ全部作ってないなあ。


 
 
 後はアイテム枠増加の計算が残ってる。
 これは頭痛いんだよなあ。

 枠増加枠に装備しているものが、枠増加アイテムを外した時に同時に外されるという・・・。
 
 

アイテムの選択画面を整理した


2017年 9月23日
 
 
 アイテムの選択画面を整理する。
 
 
 まずタップ座標を作って

; アイテム選択画面--------------------------------

	iselx1=10 : iselxk=60
	isely1=11 : isely2=51 : iselyk=38
	iselx2=305
	iselx3=iselx2+iselxk
	iselx4=iselx3+iselxk
	iselx5=iselx4+iselxk
	iselx6=iselx5+iselxk

	dim iselkx1,20 ; タップ座標
	dim iselkx2,20
	dim iselky1,20
	dim iselky2,20

	repeat 9,1
	 iselkx1(cnt)=0 : iselkx2(cnt)=wx
	 iselky1(cnt)=isely2+iselyk*(cnt-1)-6
	 iselky2(cnt)=isely2+iselyk*(cnt)-6
	 iselky1(cnt+10)=0
	 iselky2(cnt+10)=isely2-6
	loop
	iselky1(9)=iselky1(8) : iselky2(8)=wy : selky2(9)=wy

	k=4
	iselkx1(8)=0			: iselkx2(8)=wx/2
	iselkx1(9)=wx/2			: iselkx2(9)=wx
	iselkx1(11)=0			: iselkx2(11)=iselx2-k
	iselkx1(12)=iselx2-k	: iselkx2(12)=iselx3-k
	iselkx1(13)=iselx3-k	: iselkx2(13)=iselx4-k
	iselkx1(14)=iselx4-k	: iselkx2(14)=iselx5-k
	iselkx1(15)=iselx5-k	: iselkx2(15)=iselx6-k
	iselkx1(16)=iselx6-k	: iselkx2(16)=wx

 これは表示の座標も含まれていて、それを元にタップ座標を作っている。
 
 
 表示してタップエリアを確認して調整。


 
 
 それを元にキー座標を返す関数を作る。

#defcfunc isel_key ; 選択画面入力

	x=mousex : y=mousey : isel_keyn=0

	repeat 9,1 : n1=cnt : n2=cnt+10
	 if iselkx1(n1)<x and iselky1(n1)<y and iselkx2(n1)>x and iselky2(n1)>=y : isel_keyn=n1 : break
	 if iselkx1(n2)<x and iselky1(n2)<y and iselkx2(n2)>x and iselky2(n2)>=y : isel_keyn=n2 : break
	loop

	return isel_keyn

 アイテム選択は 1~7、外すボタンは 8、戻るボタンは 9、ソート座標は11~16の値が返る。
 
 
 表示も整えて、こんな感じ。

 キャラ選択のをコピペして改造してあるので、押してすべらせればスクロールもする。

 8枠の 1つを潰して「外す」のと「戻る」のを加えた、これは後でキャラ選択にもつける予定。
 
 
 選択画面のソース。

/////// アイテム選択画面 //////////////////////

*iselect

	dim isel,ib+1	; 一時選択キャラNo.一覧

	repeat ib ; クリア
	 isel(cnt)=0
	loop

	sbn=equsi(kyg) ; 装備場所
	pn=mpl(kn) ; プレイヤー
	n=0 ; 自勢力のアイテムをピックアップ
	repeat ib,1
	 ig=idb*cnt ; ItemNo.
	 if id(ig)=0 : continue
	 if id(ig+10)!pn : continue ; 自勢力で無い

	 if id(ig+19)=un : continue	; そのキャラが持ってる

	 if sbn=1 : if id(ig+9)!1 and id(ig+9)!2 : continue ; 右手
	 if sbn=2 : if id(ig+9)!1 and id(ig+9)!3 and id(ig+9)!4 and id(ig+9)!5 : continue ; 左手
	 if sbn=3 {
				if id(ig+9)>5 : continue ; 複数手
				if kyg=0 and id(ig+9)=4 : continue ; 左端で左両手装備
				if kyg=ud(ug+11)-1 and id(ig+9)=2 : continue ; 右端で右両手装備
	 }
	 if sbn=4 : if id(ig+9)!6 : continue ; 防具
	 if sbn=5 : if id(ig+9)<7 : continue ; 特殊
	 if sbn=6 : if id(ig+9)!7 and id(ig+9)!9 and id(ig+9)!10 : continue ; アイテム

	 isel(n)=cnt : n+	; アイテムNo.登録
	loop
	iselb=n ; 総数


	iself=0 : iseln=0 : sel_yg=0 : ky=0 : kb=0
	repeat ;------- メイン ----------------

;------- 入力 -------

	 repeat 1
	  if kc>0 : kc- : break
	  ky=isel_key()	; タップ座標
	  stick kb,256	; ボタン
	 loop

	 if ky=8 and kb=256 : remove_syo : break  ; 外す
	 if ky=9 and kb=256 : break ; 戻る


;------- スクロール処理 -------

	 repeat 1 ; スクロール
	  if kb=256 {
				if isel_kn=0 : isel_kn=1 : isel_ky=mousey
				break
				}
	  if isel_kn=0 : break : else : isel_kn=0

	  isel_dy=-(mousey-isel_ky)/20 ; 移動量

	  if isel_dy=0 : if 1<=ky and ky<=7 : iseln=isel(sel_yg+ky-1) : iself=1 ; 選択
	 loop
	 if iself=1 : break ; 選択して戻る


	 if sel_yg>0 and isel_dy<0 : sel_yg- : isel_dy+
	 if sel_yg+7<iselb and isel_dy>0 : sel_yg+ : isel_dy-


;------- その他 ----------------


	 repeat 1 ; ソート
	  if kb!256 : break ; タップしてない
	  if ky<11 or 16<ky : break
	  if iselb<2 : break ; 少ない
	  isel_kn=0

	  if ky=11 : dn=0	; 照合データ
	  if ky=12 : dn=12	; 攻撃
	  if ky=13 : dn=13	; 防御
	  if ky=14 : dn=7	; 射程
	  if ky=15 : dn=30	; 属性
	  if ky=16 : dn=14	; 特殊

	  repeat iselb-1 : cnt2=iselb-cnt ; バブルソート
	   repeat cnt2

	    n1=isel(iselb-cnt)	: nd1=id(n1*idb+dn)
	    n2=isel(iselb-cnt-1): nd2=id(n2*idb+dn)

	    if nd1<=nd2 : continue
	    isel(iselb-cnt)=n2 : isel(iselb-cnt-1)=n1 ; 入れ替え
	   loop
	  loop

	 loop


;------- 表示 -------

	 redraw 0
	  color 0,0,0 : boxf : color 255,255,255

	  isel_put				; 表示
	 dg_put
	 redraw 1


	 await 1000/20

	loop ;---------------------------------

	kc=3

	return

 
 
 これで大体装備装置はできたと思うので、次は装備したものをステータス計算するプログラムを作る。