私は大学でコンピュータプログラム(主にゲーム)を学んでいるものです。
著作権について不安があるのでここで質問させていただきます。
先日、シューティングゲームを作成しました。出来上がった瞬間、この上ない達成感で頭がいっぱいでした。
何にも代えがたいです。
しかし、ふと冷静になると、ほとんどwebページを参考にしたけど、これは自分の力で作ったといっていいのだろうか
と、疑問に思うようになりました。また、その作ったゲームを大学のコンテストに提出しようと考えたとき、これは
著作権違反なのではないかという考えが頭をよぎり、不安になっています。
全てwebページを見てやったわけではないですが(自機の動きなど)、敵の動き、特に弾幕はほとんど「シューティングゲームの館」
のホームページにご教示いただいたものです。
私が書いたソースコード(弾幕)と参考にしたwebページを投稿します。
私がやっていることは著作権違反ですか。また、私の行っていることはプログラマとしてどうなのでしょうか。
皆さん、どうかよろしくお願いいたします。
参考ページ
http://dixq.net/s/
http://bituse.info/game/shot/
void Enemy::Enemy_Attack(Player *p)
{
if(this->d.flag==true)
{
if(this->d.EMovePattern==0)
{
if(this->d.y>=30)this->Enemy_Atackflag=true;
}
else
{
if(this->Enemy_ShotTime==this->d.gotime)this->Enemy_Atackflag=true;
}
if(this->Enemy_Atackflag==true)
{
if(this->Enemy_ShotCounter==0)this->rad=atan2((p->GetPY()+16)-this->d.y,(p->GetPX()+16)-this->d.x);
switch(this->d.EAPattern)
{
case 1:
if(this->Enemy_ShotCounter%8==0&&this->Enemy_ShotCounter<=80)
{
for(int i=0;i<ESNum;i++)
{
if(this->ES[i].ESFlag==false&&this->Enemy_ShotCheckFlag==false)
{
this->ES[i].ESFlag=true;
this->ES[i].x=(this->d.x+this->d.w)-20;
this->ES[i].y=(this->d.y+this->d.h)-5;
this->ES[i].rad=this->rad;
break;
}
}
}
break;
case 2:
if(this->Enemy_ShotCounter%5==0&&this->Enemy_ShotCounter<=90)
{
for(int i=0;i<ESNum;i++)
{
if(this->ES[i].ESFlag==false&&this->Enemy_ShotCheckFlag==false)
{
this->ES[i].ESFlag=true;
this->ES[i].x=(this->d.x+this->d.w)-20;
this->ES[i].y=(this->d.y+this->d.h)-5;
if(this->num==0)this->ES[i].rad=this->rad-(10*PI/180);
else if(this->num==1)this->ES[i].rad=this->rad;
else if(this->num==2)this->ES[i].rad=this->rad+(10*PI/180);
this->num++;
if(this->num==3)
{
this->num=0;
break;
}
}
}
}
break;
case 3:
if(this->Enemy_ShotCounter%2==0&&this->Enemy_ShotCounter<=120)
{
for(int i=0;i<ESNum;i++)
{
if(this->ES[i].ESFlag==false&&this->Enemy_ShotCheckFlag==false)
{
this->ES[i].ESFlag=true;
this->ES[i].x=(this->d.x+this->d.w)-20;
this->ES[i].y=(this->d.y+this->d.h)-5;
this->ES[i].rad=this->rad-(60*PI/180)+((rand()%120)*PI/180);
this->num++;
break;
}
}
}
break;
case 4:
if(this->Enemy_ShotCounter%4==0&&this->Enemy_ShotCounter<=120)
{
for(int i=0;i<ESNum;i++)
{
if(this->ES[i].ESFlag==false&&this->Enemy_ShotCheckFlag==false)
{
this->ES[i].ESFlag=true;
this->ES[i].x=(this->d.x+this->d.w)-20;
this->ES[i].y=(this->d.y+this->d.h)-5;
this->ES[i].rad=this->rad;
break;
}
}
}
break;
case 5:
for(int i=0;i<ESNum;i++)
{
if(this->Enemy_ShotCounter==2*i&&this->Enemy_ShotCounter<=150)
{
if(this->ES[i].ESFlag==false&&this->Enemy_ShotCheckFlag==false)
{
this->ES[i].ESFlag=true;
this->ES[i].x=(this->d.x+this->d.w)-20;
this->ES[i].y=(this->d.y+this->d.h)-5;
if(i==0)this->ES[i].rad=this->rad;
else this->ES[i].rad=this->ES[i-1].rad+0.2f;
break;
}
}
}
break;
case 6:
for(int i=0;i<10;i++)
{
if(this->Enemy_ShotCounter==8*i)
{
for(int j=Shot_Divide*i;j<Shot_Divide*(i+1);j++)
{
if(this->ES[j].ESFlag==false&&this->Enemy_ShotCheckFlag==false)
{
this->ES[j].ESFlag=true;
this->ES[j].x=this->d.x+15;
this->ES[j].y=this->d.y;
if(j==0)this->ES[0].rad=this->rad;
else this->ES[j].rad=this->ES[0].rad+2.0f*PI*(double)j/Shot_Divide;
}
}
}
}
break;
case 7:
for(int i=0;i<ESNum;i++)
{
if(this->Enemy_ShotCounter==i&&this->Enemy_ShotCounter<=90)
{
if(this->ES[i].ESFlag==false)
{
this->ES[i].ESFlag=true;
this->ES[i].x=(this->d.x+this->d.w)-30;
this->ES[i].y=(this->d.y+this->d.h)-30;
if(this->num2==0)
{
if(i==0)this->ES[i].rad=this->rad;
else this->ES[i].rad=this->ES[i-4].rad+0.2f;
}
else if(this->num2==1)
{
if(i==1)this->ES[i].rad=(this->rad+(180*PI/180));
else this->ES[i].rad=this->ES[i-4].rad+0.2f;
}
else if(this->num2==2)
{
if(i==2)this->ES[i].rad=(this->rad+(90*PI/180));
else this->ES[i].rad=this->ES[i-4].rad+0.2f;
}
else if(this->num2==3)
{
if(i==3)this->ES[i].rad=(this->rad+(270*PI/180));
else this->ES[i].rad=this->ES[i-4].rad+0.2f;
}
this->num2++;
if(this->num2==4)
{
this->num2=0;
break;
}
}
}
}
default:
break;
}
this->Enemy_ShotCounter++;
}
}
this->Enemy_ShotTime++;
}