(GetCenterX*2,GetCenterY*2)
How did I not think of that?
Next question: Can I use Obj_IsIntersected to check for collisions with the player? I'll worry about that one later; more pressing matters are at hand.
task LayoutSet{
HoriWall(GetCenterX*2/5,GetCenterX*2/5,GetCenterX*2/5,WHITE47);
HoriWall(GetCenterX*6/5,GetCenterX*2/5,GetCenterX*2/5,WHITE47);
HoriWall(GetCenterX*2/5,GetCenterY*2-GetCenterX*2/5,GetCenterX*2/5,WHITE47);
HoriWall(GetCenterX*6/5,GetCenterY*2-GetCenterX*2/5,GetCenterX*2/5,WHITE47);
HoriWall(GetCenterX*4/5,GetCenterY+GetCenterX/5,GetCenterX*2/5,WHITE47);
HoriWall(GetCenterX*4/5,GetCenterY-GetCenterX/5,GetCenterX*2/5,WHITE47);
VertWall(GetCenterX*2/5,GetCenterX*2/5,GetCenterY*2-GetCenterX*4/5,WHITE47);
VertWall(GetCenterX*6/5,GetCenterX*2/5,GetCenterY*2-GetCenterX*4/5,WHITE47);
VertWall(GetCenterX*4/5,GetCenterY+GetCenterX/5,GetCenterX*2/5,WHITE47);
VertWall(GetCenterX*4/5,GetCenterY-GetCenterX/5,GetCenterX*2/5,WHITE47);
}
task HoriWall(x,y,length,graphic){
let hwall = Obj_Create(OBJ_LASER);
Obj_SetPosition(hwall,x,y);
Obj_SetAngle(hwall,0);
ObjShot_SetGraphic(hwall,graphic);
ObjLaser_SetLength(hwall,length);
ObjLaser_SetWidth(hwall,10);
ObjLaser_SetSource(hwall,false);
ObjShot_SetBombResist(hwall,true);
ObjShot_SetDelay(hwall,60);
}
task VertWall(x,y,length,graphic){
let vwall = Obj_Create(OBJ_LASER);
Obj_SetPosition(vwall,x,y);
Obj_SetAngle(vwall,90)
ObjShot_SetGraphic(vwall,graphic);
ObjLaser_SetLength(vwall,length);
ObjLaser_SetWidth(vwall,10);
ObjLaser_SetSource(vwall,false);
ObjShot_SetBombResist(vwall,true);
ObjShot_SetDelay(vwall,60);
}
task ReflectPod(angle){
let reflect = Obj_Create(OBJ_SHOT);
Obj_SetPosition(reflect,GetX,GetY);
Obj_SetAngle(reflect,angle);
ObjShot_SetGraphic(reflect,ORANGE02);
Obj_SetSpeed(reflect,1);
ObjShot_SetBombResist(reflect,true);
Obj_SetCollisionToPlayer(reflect,false);
while(!Obj_BeDeleted(reflect)){
if(Collision_Obj_Obj(reflect,hwall)==true{
Obj_SetAngle(reflect,-angle);
}
if(Collision_Obj_Obj(reflect,vwall)==true{
Obj_SetAngle(reflect,180-angle);
}
if(Obj_GetX(reflect)<=0||Obj_GetX(reflect)>=GetCenterX*2){
Obj_SetAngle(reflect,180-angle);
}
if(Obj_GetY(reflect)<=0||Obj_GetY(reflect)>=GetCenterY*2){
Obj_SetAngle(reflect,-angle);
}
if(reflecttime==2700){
explosion(Obj_GetX(reflect),Obj_GetY(reflect));
Obj_Delete(reflect);
}
reflecttime++;
wait(1);
}
}
On attempting to run a script with this section of code in it, I get the following:
---------------------------
ScriptError「C:\Users\ASN\Downloads\th_dnh\script\AweScript\ReflectionSniper.txt」
---------------------------
hwallは未定義の識別子です(392行目)
↓
if(Collision_Obj_Obj(reflect,hwall)==true{
Obj_SetAngle(reflect,-angle);
}
if(Collision_Obj_Obj(reflect,vwall)
~~~
---------------------------
OK
---------------------------
I know there are several hwalls in play by the time this will happen. What's wrong?
(LayoutSet is run once at the beginning of the card. ReflectPod is run at regular intervals.)