function CreateShotA2(x, y, speed, accel, maxspeed, angle, angvel, graphic, delay){
let obj = Obj_Create(OBJ_SHOT);
Obj_SetPosition(obj, x, y);
Obj_SetSpeed(obj, speed);
ObjShot_SetGraphic(obj, graphic);
ObjShot_SetDelay(obj, delay);
shot_main();
return obj;
task shot_main(){
while((speed < maxspeed && accel > 0) || (speed > maxspeed && accel < 0)){
Obj_SetSpeed(obj, speed);
speed += accel;
Obj_SetAngle(obj, angle);
angle += angvel;
yield;
}
Obj_SetSpeed(obj, maxspeed);
while(!Obj_BeDeleted(obj)){
Obj_SetAngle(obj, angle);
angle += angvel;
yield;
}
}
}