Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- task Trail(x,y,dir)
- {
- let fcount = 0;
- let obj_trail = Obj_Create(OBJ_EFFECT);
- Obj_SetAutoDelete (obj_trail,true); //Should stop being spawned once the parent shot leaves the field, so probably redundant
- Obj_SetPosition(obj_trail,x,y);
- Obj_SetSpeed(obj_trail,0);
- Obj_SetAngle(obj_trail,dir);
- ObjEffect_SetRenderState(obj_trail,ALPHA);
- Obj_SetAlpha(obj_trail,10); //Does not work with effect objects, added fix below
- ObjEffect_SetTexture(obj_trail,plshot);
- ObjEffect_SetPrimitiveType(obj_trail,PRIMITIVE_TRIANGLEFAN);
- ObjEffect_CreateVertex(obj_trail,4);
- ObjEffect_SetVertexUV(obj_trail,0,1,177);
- ObjEffect_SetVertexUV(obj_trail,1,15,177);
- ObjEffect_SetVertexUV(obj_trail,2,15,203);
- ObjEffect_SetVertexUV(obj_trail,3,1,203);
- ObjEffect_SetVertexXY(obj_trail,0,-8,-16);
- ObjEffect_SetVertexXY(obj_trail,1,8,-16);
- ObjEffect_SetVertexXY(obj_trail,2,8,16);
- ObjEffect_SetVertexXY(obj_trail,3,-8,16);
- ascent(i in 0..4){ ObjEffect_SetVertexColor(obj_trail,i,10,255,255,255); }
- ////This should be much less expensive and is shorter, but I included the solution you were looking for anyways
- //loop(3){ yield; }
- //ObjEffect_SetVertexUV(obj_trail,0,1,150);
- //ObjEffect_SetVertexUV(obj_trail,1,15,150);
- //ObjEffect_SetVertexUV(obj_trail,2,15,176);
- //ObjEffect_SetVertexUV(obj_trail,3,1,176);
- //loop(3){ yield; }
- //ObjEffect_SetVertexUV(obj_trail,0,1,123);
- //ObjEffect_SetVertexUV(obj_trail,1,15,123);
- //ObjEffect_SetVertexUV(obj_trail,2,15,149);
- //ObjEffect_SetVertexUV(obj_trail,3,1,149);
- //loop(3){ yield; }
- //Obj_Delete(obj_trail);
- while(!Obj_BeDeleted(obj_trail))
- {
- //shouldn't need the first 3 frames if it's already set
- if (fcount >= 3 && fcount < 6)
- {
- ObjEffect_SetVertexUV(obj_trail,0,1,150);
- ObjEffect_SetVertexUV(obj_trail,1,15,150);
- ObjEffect_SetVertexUV(obj_trail,2,15,176);
- ObjEffect_SetVertexUV(obj_trail,3,1,176);
- }
- else if (fcount >= 6 && fcount < 9)
- {
- ObjEffect_SetVertexUV(obj_trail,0,1,123);
- ObjEffect_SetVertexUV(obj_trail,1,15,123);
- ObjEffect_SetVertexUV(obj_trail,2,15,149);
- ObjEffect_SetVertexUV(obj_trail,3,1,149);
- }
- else
- {
- Obj_Delete(obj_trail);
- }
- fcount ++;
- yield;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment