弾が長押しで止まらなくなるのを防ぐ方法
Posted: 2010年9月20日(月) 22:17
問題の箇所のソースを載せます。
for(i=0;i<50;i++){
if(jiki.flag==0){
jiki.x=jiki.tx+10;
jiki.y=jiki.ty+10;
}
if(jiki.flag==1){
jiki.y-=10;
jiki.nagasa+=10;
if(jiki.y<0){
jiki.flag=0;
jiki.nagasa=0;
}
if(i>0&&i<49&&jiki.nagasa>100) {
jiki.flag[i+1]=1;
}
}
}
if(Key[KEY_INPUT_Z]==1){
for(i=0;i<50;i++){
if(i==0){
jiki.flag[i]=1;
}
if(jiki.flag[i]==0&&jiki.flag[i-1]==1&&jiki.nagasa[i-1]>100){
jiki.flag[i]=1;
}
}
jiki.count=0;
}
for(i=0;i<50;i++){
DrawCircle(jiki.x[i],jiki.y[i],3,BLACK);
}
変数については
//自機
typedef struct{
int tx; //本体のX座標
int ty; //本体のY座標
int x[50]; //弾のX座標
int y[50]; //弾のY座標
int flag[50]; //弾のフラグ
int hp; //本体のHP
int nagasa[50]; //次の弾のフラグを1にする基準
int count; //カウンター(未使用)
}jstruct;
jstruct jiki;
です。
回答お願いします。
for(i=0;i<50;i++){
if(jiki.flag==0){
jiki.x=jiki.tx+10;
jiki.y=jiki.ty+10;
}
if(jiki.flag==1){
jiki.y-=10;
jiki.nagasa+=10;
if(jiki.y<0){
jiki.flag=0;
jiki.nagasa=0;
}
if(i>0&&i<49&&jiki.nagasa>100) {
jiki.flag[i+1]=1;
}
}
}
if(Key[KEY_INPUT_Z]==1){
for(i=0;i<50;i++){
if(i==0){
jiki.flag[i]=1;
}
if(jiki.flag[i]==0&&jiki.flag[i-1]==1&&jiki.nagasa[i-1]>100){
jiki.flag[i]=1;
}
}
jiki.count=0;
}
for(i=0;i<50;i++){
DrawCircle(jiki.x[i],jiki.y[i],3,BLACK);
}
変数については
//自機
typedef struct{
int tx; //本体のX座標
int ty; //本体のY座標
int x[50]; //弾のX座標
int y[50]; //弾のY座標
int flag[50]; //弾のフラグ
int hp; //本体のHP
int nagasa[50]; //次の弾のフラグを1にする基準
int count; //カウンター(未使用)
}jstruct;
jstruct jiki;
です。
回答お願いします。