|
|
2012/8/7(Tue) 13:40:11|NO.48233
ドラクエとかのRPGでダメージを受けたらキャラが振動というか震えますよね??
そうれはどうやったらできますか?
ご回答お待ちしております
|
|
2012/8/7(Tue) 14:27:04|NO.48236
仮想画面に現在の画をコピーして、
それをずらして描写とか。
色々あると思いますよ。
|
|
2012/8/7(Tue) 14:31:05|NO.48237
すみません><
なにか例文てきなソース書いてください><
|
|
2012/8/7(Tue) 14:38:24|NO.48239
buffer 1
mes "うわぁ"
screen 0
repeat
pos 47+rnd(7),47+rnd(7)
gcopy 1,0,0,50,20
redraw 1
await 16
redraw 0
color 255,255,255:boxf:color
loop
buffer 1が揺らす対象の画像バッファ(キャラクターの画像)
|
|
2012/8/7(Tue) 14:43:56|NO.48240
ありがとうございます^^
すごいです!
|
|
2012/8/7(Tue) 14:56:25|NO.48242
もうおわっちゃったみたいだけど、
作ったのでとうこうします。
buffer 2 ;仮想画面の初期化
screen 0
//ゲーム画面っぽいのをまず描画(実際は本当のゲーム画面)
color 200, 200, 200 :boxf ;画面を灰色に塗りつぶし
color 50, 50, 50 :boxf 50, 350, 199, 449 ;主人公の情報のボックス(?)
color 255, 255, 255
pos 55, 350
mes {"主人公 Lv.50
HP 85/100
MP 20/35"}
color 0, 0, 0
pos 260, 150
font msgothic, 120
mes "敵"
wait 100 ;一秒待つ
//揺らす
gsel 2
pos 0, 0
gcopy 0, 0, 0, 640, 480 ;仮想画面に現在の画面をコピー
gsel 0
Shindou = 5
repeat 10
redraw 0
color 200, 200, 200 :boxf ;画面クリア
if (cnt\2 == 0) :X = -Shindou
if (cnt\2 == 1) :X = Shindou
pos X, 0
gcopy 2, 0, 0, 640, 480
if (cnt\2 == 1) :Shindou-- ;振動を減らす
redraw 1
wait 10
loop
|
|
2012/8/7(Tue) 15:22:44|NO.48243
ありがとうございます^^
つまらないゲームを作ったのですが、画像を人道させるソースをどこに入れればいいか
わかりません><すみませんが教えてください><
wait 150
mes "三成:人の気配を感じるぞ?探せ!"
wait 150
mes "部下:はっ!"
wait 100
goto *sousaku
*sousaku
objsize 80,20
button "あたりを見る",*deai
stop
*deai
cls
mes "ガサガサッ"
wait 150
mes "三成:向こうから来たな・・・。"
wait 150
goto *tojo
*tojo
cls
mes "慶次:この天下の傾奇者、前田慶次に何用だぁ!"
wait 150
mes "三成:前田慶次!いまここで打ち取る!"
wait 150
mes "慶次:望むところ。返り討ちにしてくれる"
wait 200
goto *hazime
*hazime
cls
pos 280,10
picload "武将1.bmp",1
pos 20,200
picload "武将3.bmp",2
pos 200,200
button "攻撃",*main
stop
*main
mes"三成の攻撃"
wait 100
goto *mitunari
*mitunari
a=rnd(3)
if a=0 : mes "攻撃成功!35のダメージ" : wait 100 : goto *kekka
if a=1 : mes "攻撃成功!35のダメージ" : wait 100 : goto *kekka
if a=2 : mes "避けられた!" : wait 100 : goto *keizi
stop
*kekka
y=y-35
if y <= 0 : mes "慶次を打ち取った!" : wait 100 : mes "慶次:前田慶次打ち取ったり!" : wait 150 : end
goto *keizi
*keizi
mes "慶次の攻撃"
wait 100
goto *keizi2
*keizi2
b=rnd(3)
if b=0 : mes "攻撃をかわした!" : wait 100 : goto *hazime
if b=1 : mes "攻撃をかわした!" : wait 100 : goto *hazime
if b=2 : mes "50のダメージを受けた!" : wait 100 : goto *kekka2
stop
*kekka2
x=x-50
if x <= 0 : mes "三成は打ち取られた・・・。" : wait 100 : mes "この前田慶次、\nお前ごときには打ち取れぬわ!" : wait 200 : end
goto *hazime
がソースです><
| |
|
2012/8/7(Tue) 16:36:58|NO.48247
スクリプトはpreタグで囲いましょう。
buffer 2
screen 0
wait 150
mes "三成:人の気配を感じるぞ?探せ!"
wait 150
mes "部下:はっ!"
wait 100
goto *sousaku
*sousaku
objsize 80,20
button "あたりを見る",*deai
stop
*deai
cls
mes "ガサガサッ"
wait 150
mes "三成:向こうから来たな・・・。"
wait 150
goto *tojo
*tojo
cls
mes "慶次:この天下の傾奇者、前田慶次に何用だぁ!"
wait 150
mes "三成:前田慶次!いまここで打ち取る!"
wait 150
mes "慶次:望むところ。返り討ちにしてくれる"
wait 200
goto *hazime
*hazime
cls
pos 280,10
;picload "武将1.bmp",1
pos 20,200
;picload "武将3.bmp",2
pos 200,200
button "攻撃",*main
stop
*main
mes"三成の攻撃"
wait 100
goto *mitunari
*mitunari
a=rnd(3)
if a=0 : mes "攻撃成功!35のダメージ" : wait 100 : goto *kekka
if a=1 : mes "攻撃成功!35のダメージ" : wait 100 : goto *kekka
if a=2 : mes "避けられた!" : wait 100 : goto *keizi
stop
*kekka
y=y-35
if y <= 0 : mes "慶次を打ち取った!" : wait 100 : mes "慶次:前田慶次打ち取ったり!" : wait 150 : end
goto *keizi
*keizi
mes "慶次の攻撃"
wait 100
goto *keizi2
*keizi2
b=rnd(3)
if b=0 : mes "攻撃をかわした!" : wait 100 : goto *hazime
if b=1 : mes "攻撃をかわした!" : wait 100 : goto *hazime
if b=2 : mes "50のダメージを受けた!" : gosub *SUB : goto *kekka2
stop
*kekka2
x=x-50
if x <= 0 : mes "三成は打ち取られた・・・。" : wait 100 : mes "この前田慶次、\nお前ごときには打ち取れぬわ!" : wait 200 : end
goto *hazime
*SUB
gsel 2
pos 0, 0
gcopy 0, 0, 0, 640, 480
gsel 0
Shindou = 5
repeat 12
redraw 0
color 0, 0, 0 :boxf ;画面クリア
if (cnt\2 == 0) :X = -Shindou
if (cnt\2 == 1) :X = Shindou
pos X, 0
gcopy 2, 0, 0, 640, 480
if (cnt\2 == 1) :Shindou-- ;振動を減らす
redraw 1
wait 10
loop
return
まあこんな感じでしょう。
あと、最初にrandomizeを実行しないと
結果はいつもおんなじですよ。
もう一つ。画像はpicloadで仮想画面に読み込んでからgcopyでコピーしてください。
でないとすごく低速です。
| |
|
2012/8/8(Wed) 15:21:12|NO.48296
>spiderさん
ありがとうございます
でもなぜか一回ダメージを食らうと死んでしまうのですがどうすればいいでしょうか?
すみません><
|
|
2012/8/8(Wed) 16:29:28|NO.48300
randomize
x=100 //xのHP
y=100 //yのHP
buffer 2
screen 0
wait 150
mes "三成:人の気配を感じるぞ?探せ!"
wait 150
mes "部下:はっ!"
wait 100
goto *sousaku
*sousaku
objsize 80,20
button "あたりを見る",*deai
stop
*deai
cls
mes "ガサガサッ"
wait 150
mes "三成:向こうから来たな・・・。"
wait 150
goto *tojo
*tojo
cls
mes "慶次:この天下の傾奇者、前田慶次に何用だぁ!"
wait 150
mes "三成:前田慶次!いまここで打ち取る!"
wait 150
mes "慶次:望むところ。返り討ちにしてくれる"
wait 200
goto *hazime
*hazime
cls
pos 280,10
;picload "武将1.bmp",1
pos 20,200
;picload "武将3.bmp",2
pos 200,200
button "攻撃",*main
stop
*main
objenable 0,0
mes"三成の攻撃"
wait 100
goto *mitunari
*mitunari
a=rnd(3)
y_damage = 28+rnd(11) //yが受けるダメージ量の計算 この場合28〜38の範囲
if a=0 : mes "攻撃成功!"+ y_damage +"のダメージ" : wait 100 : goto *kekka
if a=1 : mes "攻撃成功!"+ y_damage +"のダメージ" : wait 100 : goto *kekka
if a=2 : mes "避けられた!" : wait 100 : goto *keizi
stop
*kekka
y -= y_damage
if y <= 0 {
mes "慶次を打ち取った!"
wait 100
mes "慶次:前田慶次打ち取ったり!"
wait 150
end
}
goto *keizi
*keizi
mes "慶次の攻撃"
wait 100
goto *keizi2
*keizi2
b=rnd(3)
x_damage = 40+rnd(21) //xが受けるダメージ量の計算 この場合40〜60の範囲
if b=0 : mes "攻撃をかわした!" : wait 100 : goto *hazime
if b=1 : mes "攻撃をかわした!" : wait 100 : goto *hazime
if b=2 : mes ""+ x_damage +"のダメージを受けた!" : gosub *SUB : goto *kekka2
stop
*kekka2
x -= x_damage
if x <= 0 {
mes "三成は打ち取られた・・・。"
wait 100
mes "この前田慶次、\nお前ごときには打ち取れぬわ!"
wait 200
end
}
goto *hazime
*SUB
nX = ginfo(22) //現在のカレントポジションxを取得
nY = ginfo(23) //現在のカレントポジションyを取得
gsel 2
pos 0, 0
gcopy 0, 0, 0, 640, 480
gsel 0
Shindou = 5
repeat 12
redraw 0
color 0, 0, 0 :boxf ;画面クリア
if (cnt\2 == 0) :XX = -Shindou
if (cnt\2 == 1) :XX = Shindou
pos XX, 0
gcopy 2, 0, 0, 640, 480
if (cnt\2 == 1) :Shindou-- ;振動を減らす
redraw 1
wait 10
loop
pos nX,nY //カレントポジションをもとに戻す
return
ソースを色々見やすいように改良(?)と可変ダメージなど勝手にやってしまいました
またspiderさんの追加された所でカレントポジションが狂うのと
変数xがかぶっていたので修正しました
| |
|
2012/8/8(Wed) 20:58:03|NO.48323
>kanahironさん
ありがとうございます^^
いまはつまらないゲームですがいろいろ勉強してもっと面白いゲームをつくります!
|
|