/* Ċ Ġ* ĠCopyright Ġ 2 0 1 3 ĠMark ĠIn j erd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ import ĠA ster oid . Size Ċ import ĠPlatform . Renderer . Render View 2 D Ċ import ĠPlatform . Renderer . Transform 2 D Ċ import ĠPlatform . Resources . Image Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġnew Ġbullet . Ċ Ġ* Ġ@ param Ġx ĠInitial Ġx - position . Ċ Ġ* Ġ@ param Ġy ĠInitial Ġy - position . Ċ Ġ* Ġ@ param Ġdeg ĠBullet Ġdirection Ġin Ġdegrees . Ċ Ġ*/ Ċ class ĠBullet Ġinternal Ġconstructor ( val Ġplayer Id : ĠInt , Ġx : ĠFloat , Ġy : ĠFloat , Ġdeg : ĠInt ) Ġ: ĠEntity ( x , Ġy , Ġdeg , ĠSPE ED ) Ġ{ Ċ ĉ /** ĠSize Ġof Ġaster oid Ġthat Ġthis Ġbullet Ġhit . ĠNull Ġif Ġit Ġhas Ġnot Ġhit Ġan Ġaster oid . Ġ*/ Ċ ĉ var Ġhit A ster oid Size : ĠSize ? Ġ= Ġnull Ċ ĉ private Ġval Ġtime Created Ġ= ĠSimulation . simulation Time Ċ ĉ private Ġval Ġtrans Ġ= ĠTransform 2 D () ĊĊ ĉ init Ġ{ Ċĉ ĉ super . radius Ġ= Ġbullet Radius Ċ ĉ } ĊĊ ĉ override Ġfun Ġcalculate Motion () Ġ{ Ċĉ ĉ if Ġ( Simulation . simulation Time Ġ- Ġtime Created Ġ> ĠD URATION ) Ġ{ Ċĉĉ ĉ destroy () Ċĉĉ ĉ return Ċĉ ĉ } Ċĉ ĉ super . calculate Motion () Ċ ĉ } ĊĊ ĉ private Ġval Ġtransform : ĠTransform 2 D Ċĉ ĉ get () Ġ{ Ċĉĉ ĉ trans . set To Translation (( pos . x Ġ- Ġbullet Radius ). toDouble (), Ġ( pos . y Ġ- Ġbullet Radius ). toDouble ()) Ċĉĉ ĉ return Ġtrans Ċĉ ĉ } ĊĊ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ private Ġvar Ġimage : ĠImage ? Ġ= Ġnull ĊĊĉ ĉ /** ĠStatic Ġmethod Ġto Ġget Ġbullet Ġradius , Ġsince Ġall Ġbullet s Ġhave Ġthe Ġsame Ġradius . Ġ*/ Ċĉ ĉ var Ġbullet Radius Ġ= Ġ 0 Ċĉĉ ĉ private Ġset Ċĉ ĉ private Ġconst Ġval ĠD URATION : ĠLong Ġ= Ġ 2 0 0 0 Ċĉ ĉ private Ġconst Ġval ĠSPE ED Ġ= Ġ 2 5 ĊĊĉ ĉ /** ĠLoads Ġbullet Ġimage . Ġ*/ Ċĉ ĉ fun Ġinit () Ġ{ Ċĉĉ ĉ image Ġ= ĠImage (" img / dead ly _ bullet . png ") Ġ{ Ċĉĉĉ ĉ bullet Radius Ġ= Ġit . width Ġ/ Ġ 2 Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĉ ĉ fun Ġdraw Bullet s ( view 2 D : ĠRender View 2 D , Ġship : ĠShip ) Ġ{ Ċĉĉ ĉ ship . bullet s . filter Ġ{ Ġ! it . is Destroyed Ġ}. forEach Ġ{ Ċĉĉĉ ĉ view 2 D . drawImage ( image !! , Ġit . transform ) Ċĉĉ ĉ } Ċĉ ĉ } Ċ ĉ } Ċ } Ċ