素人で、つまらない質問をして申し訳ないのですが、
マリオ的な横スクロールはどうやればいいのでしょうか?
ゲームプログラミングの館にもスクロールについての解説はありませんでしたし、
参考になりそうなゲームCurse'sSoulも配布されておらず、
また、どこの解説サイトでもスクロールについての情報が少なく、詰まっています。
初めからキャラの座標を中央に固定するなら簡単そうですが、
だいだいキャラが中央にきた時にスクロールされますよね。
マリオ的な横スクロール
Re:マリオ的な横スクロール
http://javagame.skr.jp/
ここは詳しそうかな。
コードはJavaだけど解説はしてるので参考になると。
kazuoniさんが書かれてるような方法みたいですね。
こういうのってまずは自分で考えて書いてみてから調べること推奨です。
ここは詳しそうかな。
コードはJavaだけど解説はしてるので参考になると。
kazuoniさんが書かれてるような方法みたいですね。
こういうのってまずは自分で考えて書いてみてから調べること推奨です。
Re:マリオ的な横スクロール
回答ありがとうございます。
eclipseが起動しなかったんですが、改めてjava再インストールしたらできましたので、
ひとまずリンクのサイト参考にしてやってみます。
eclipseが起動しなかったんですが、改めてjava再インストールしたらできましたので、
ひとまずリンクのサイト参考にしてやってみます。
Re:マリオ的な横スクロール
当たり判定はともかく、スクロールだけならこれで十分だと思います。
void DrawChip(int Number,int x,int y)
{
int Dx=ChipSize*(Number%22);
int Dy=ChipSize*(Number/22);
DrawRectGraph(x,y,Dx,Dy,ChipSize,ChipSize,GraphHandle,TRUE,FALSE);
}
void DrawBG()
{
int StartX,StartY,EndX,EndY;
StartX=ScrollX/ChipSize;
StartY=ScrollY/ChipSize;
EndX=(ScrollX+ScreenWidth-1)/ChipSize;
EndY=(ScrollY+ScreenHeight-1)/ChipSize;
for(i=StartY;i<EndY;i++)
{
for(j=StartX;j<EndX;j++)
{
DrawChip(Map[j],j*ChipSize-ScrollX,i*ChipSize-ScrollY);
}
}
}
void CalcScroll()
{
ScrollX=Jiki.X-(ScreenWidth/2);
int MapWidth=ChipSize*200; //マップの幅
int MapHeight=ChipSize*30; //マップの高さ
if(ScrollX<0) ScrollX=0;//左に来た時
if(ScrollX>MapWidth-ScreenWidth) ScrollX=MapWidth-ScreenWidth;
//右に来た時
if(ScrollY<0) ScrollY=0;//上に来た時
if(ScrollY>MapHeight-ScreenHeight)ScrollY=MapHeight-ScreenHeight;
//下に来た時
}
void DrawChip(int Number,int x,int y)
{
int Dx=ChipSize*(Number%22);
int Dy=ChipSize*(Number/22);
DrawRectGraph(x,y,Dx,Dy,ChipSize,ChipSize,GraphHandle,TRUE,FALSE);
}
void DrawBG()
{
int StartX,StartY,EndX,EndY;
StartX=ScrollX/ChipSize;
StartY=ScrollY/ChipSize;
EndX=(ScrollX+ScreenWidth-1)/ChipSize;
EndY=(ScrollY+ScreenHeight-1)/ChipSize;
for(i=StartY;i<EndY;i++)
{
for(j=StartX;j<EndX;j++)
{
DrawChip(Map[j],j*ChipSize-ScrollX,i*ChipSize-ScrollY);
}
}
}
void CalcScroll()
{
ScrollX=Jiki.X-(ScreenWidth/2);
int MapWidth=ChipSize*200; //マップの幅
int MapHeight=ChipSize*30; //マップの高さ
if(ScrollX<0) ScrollX=0;//左に来た時
if(ScrollX>MapWidth-ScreenWidth) ScrollX=MapWidth-ScreenWidth;
//右に来た時
if(ScrollY<0) ScrollY=0;//上に来た時
if(ScrollY>MapHeight-ScreenHeight)ScrollY=MapHeight-ScreenHeight;
//下に来た時
}
Re:マリオ的な横スクロール
TKOZさん、dicさんありがとうございます。
普段「なるほど」なんて言わないんですが、本当になるほどと思いました。
TKOZさんのコードをみてやっと意味がわかりました、ありがとうございます。
とりあえず今のところキャラの座標固定で、マップ、敵、弾などはキー入力からの値に依存するようにしたのですが、また助言を参考にして研究してみます。
普段「なるほど」なんて言わないんですが、本当になるほどと思いました。
TKOZさんのコードをみてやっと意味がわかりました、ありがとうございます。
とりあえず今のところキャラの座標固定で、マップ、敵、弾などはキー入力からの値に依存するようにしたのですが、また助言を参考にして研究してみます。
Re:マリオ的な横スクロール
えっと、もう解決されたかもしれませんが、
DXライブラリのサンプルプログラミングに、マップスクロール基本についてのってます。
以外に自分の知りたいことがのってたりします。
DXライブラリのサンプルプログラミングに、マップスクロール基本についてのってます。
以外に自分の知りたいことがのってたりします。