攻撃パターン - 剣(縦斬り)と基本的な考えは同じです。
$Mycharクラス(一部)
|
function Attack(){
if (getkey(90)==1 && onAttack==0 && AttackOK==0) {
onAttack=1;
appear(new Weapon_My(x,y,"3way"));
}
}
|
引数を"3way"にしているだけで、このあたりは同じです。
$Weapon_Myクラス(一部)
|
if (p=="3way"){
p=$pat_weapon+0;
f=$Mychar.f;
zOrder=4;
angle=0;
ATC=2;
if (getkey(38)>=1) {angle=-45*f;}
if (getkey(40)>=1) {angle= 45*f;}
for (i=15; i<165; i+=15 ) {
if (i==15) appear(new Effect(x,y,"Arm_My3"));
x=$Mychar.x+sin(angle+90)*sin(i)*35*f;
y=$Mychar.y-cos(angle+90)*sin(i)*35*f;
update();
}
}
|
最初に出てくるif (getkey(38)・・・)の文では、↑のキーを押したときに斜めに剣を突き出す時の角度を決めています。自機の向きによって、+45度、-45度のどちらかがangleに代入されます。↑↓のキーがどちらも押されていなければangleにはゼロが代入されます。
for文で剣を斜めに移動させています。x,yの計算で、どちらにもsin(i)を掛けることによって往復運動をさせています。35という数値が攻撃する範囲になります。大きくすればより遠いところまで剣を飛ばすことができます。
攻撃パターン - 剣(縦斬り)と異なり、攻撃が終わった後のウェイトを入れていないので、素早い攻撃ができるようになっています。
|