|
|
2011/2/20(Sun) 14:31:13|NO.37199
2Dのゲームでキャラクターを動かして遊べるようにしました。
地面の判定は色(黒)にしてみたところ、キャラクターが黒のところに重なると色移りしてしまう現象があります。
どうしたら良いでしょうか?
|
|
2011/2/20(Sun) 14:39:06|NO.37200
回答になってはいませんがこれでは回答のしようがないので少し聞かせてください
色移りという発言が少しわかりかねるのですが、どんな感じかもう少し明確にしてほしいです。
それと地面とのあたり判定の部分のスクリプトを出してくれるとどんな風な処理の流れ化が分かりますので、できれば貼り付けてくれるとありがたいです
|
|
2011/2/20(Sun) 14:44:05|NO.37201
色移りの例を出すと、黒の上に青色が重なると青っぽくなったりします。
スプリクトはむちゃくちゃですけど、一応貼っておきます。
キャラクターの位置はsx,syとおいています。
bgscr 0,10000,1000,4,200,150,1500,800
buffer 1,1500,800
picload"最初の町.bmp"
buffer 2,87,181 ;バッファー2をキャラクターと置きます
picload"主人公.bmp"
buffer 3,1500,100
picload"メニューバー.bmp"
muki=0
*start
redraw 0
bload"モウチャンストーリー.as",lv
if muki=0:mukix=0
if muki=1:mukix=87
pget sx+40,sy+181
getkey kl,39
getkey kr,37
if ginfo_r=0 and ginfo_g=0 and ginfo_b=0{
getkey kc,67
countloop=0
a=0
}
else{
countloop=countloop+1
}
if sx<1413 and kl=1{
sx=sx+2
muki=0
}
if sx>0 and kr=1{
sx=sx-2
muki=1
}
if sx<0:sx=0
if sx>1413:sx=1413
sy=sy+2+countloop/7
if kc=1:a=1
if a=1:sy=sy-7
if ginfo_r=0 and ginfo_g=0 and ginfo_b=0:sy=sy-2
//最初の町からスタート
gsel 0,0
pos 0,0
gcopy 1,0,0,1500,800
//キャラクターの描画
gsel 0,0
gmode 2,87,181
pos sx,sy ;sx=主人公のx座標、sy=主人公のy座標
gcopy 2,mukix,0,87,181
//メニューバーの表示
gsel 0,0
gmode 2,1500,100
pos 0,700
gcopy 3,0,0,1500,100
color 0,255,0
font"MS ゴシック",60,1
pos 120,725
mes""+lv+""
await 1
redraw 1
redraw
goto,*start
|
|
2011/2/20(Sun) 15:18:59|NO.37202
すみませんスクリプトはだいたい理解できたのですが・・・。
どうもどういうう状況下ぱっとしません
スクリーンショットなどがあればいいのですが・・
ちょっと関係ないのですが
>gcopy 2,mukix,0,87,181
の部分ありますよね
これって右向きに動くときに,ukixに87が代入されて
なにも描画されなくなりますがこれで合っているのですか?
|
|
2011/2/20(Sun) 15:20:13|NO.37204
すみません。
ソースがだいぶ変わってしまいました。
自分もまだまだだった。
screen 0,10000,1000,4,200,150,1500,800
buffer 1,1500,800
picload "最初の町.bmp"
buffer 2,87*2,181 ;バッファー2をキャラクターと置きます
picload "主人公.bmp"
buffer 3,1500,100
picload "メニューバー.bmp"
muki=0
bload "モウチャンストーリー.as",lv
gsel 0,1
gmode 4,,,256
*start
redraw 0
//最初の町からスタート
pos 0,0
gcopy 1,0,0,1500,800
//キャラクターの描画
color 113,113,113
pos sx,sy ;sx=主人公のx座標、sy=主人公のy座標
gcopy 2,mukix,0,87,181
//メニューバーの表示
pos 0,700
gcopy 3,0,0,1500,100
color 0,255,0
font"MS ゴシック",60,1
pos 120,725
mes ""+lv+""
redraw 1
redraw 0
if muki=0:mukix=0
if muki=1:mukix=87
pget sx+40,sy+181
getkey kl,39
getkey kr,37
if ginfo_r=0 and ginfo_g=0 and ginfo_b=0{
getkey kc,67
countloop=0
a=0
} else {
countloop=countloop+1
}
if sx<1413 and kl=1{
sx=sx+2
muki=0
}
if sx>0 and kr=1{
sx=sx-2
muki=1
}
if sx<0:sx=0
if sx>1413:sx=1413
sy=sy+2+countloop/7
if kc=1:a=1
if a=1:sy=sy-7
if ginfo_r=0 and ginfo_g=0 and ginfo_b=0:sy=sy-2
color 113,113,113
await 20
goto *start
gsel についてですが、最初の一度だけに変更しました。
gmode は 4 変更しました。
(透明色 color 0,0,0 → color 113,113,113 )
(注意)
キャラクターの透明色を
color 113,113,113
に変更してください。
これでどうでしょうか・・・?

| |
|
2011/2/20(Sun) 15:27:50|NO.37207
takayaさんのスプリクトで解決しました。
みなさんありがとうございました。
|
|
2011/2/20(Sun) 15:42:09|NO.37208
そういうことでしたか
あっあと、解決していますが
先ほども言ったようにステージに坂などの起伏がつくとこのスクリプトは通用しないのであしからず
あと
buffer 3,1500,100
picload "メニューバー.bmp"
のところを
celload "メニューバー.bmp"
とするとcelputで描画できますから楽ですよ^^
じゃぁ頑張ってください
|
|
2011/2/20(Sun) 18:17:00|NO.37209
どこからつっこんで良いやらわからん・・・。
別のスレッドでカクカクするって言う内容元のソースが上のだったら、
カクカクする要因はマップの貼り付けだと思われる。
大きい画像ファイルを毎回貼ると負荷が高いよ。
・・・あとはもう・・・
bgscr 0,10000,1000,4,200,150,1500,800
で領域凄い取ってるのも気になるし
buffer 1,1500,800
picload "最初の町.bmp"
は
buffer 1
picload "最初の町.bmp"
で良い。
picloadで初期化してロードしているので、ウィンドウサイズ指定しても無駄になる。
|
|