1 # Defines a struct representing the player, which is controlled by WASD keys
11 target_vel=Vector2(0,0),
12 texture=Texture.load((./assets/RocketWhite.png)),
14 WALK_SPEED := Num32(500.)
16 SIZE := Vector2(32, 32)
17 TEXTURE : Texture? = none
19 func update(p:@Player)
22 vel := (p.pos - p.prev_pos)/World.DT
23 vel = vel.mix(p.target_vel, Player.ACCEL)
25 p.prev_pos, p.pos = p.pos, p.pos + World.DT*vel
26 if not p.pos.dist(p.prev_pos).near(0, .1, .1)
27 p.facing = p.facing.mix((p.pos-p.prev_pos).norm(), .1)
31 angle := p.facing.angle()
32 tint := if p.has_signal
36 p.texture.draw(p.pos, Player.SIZE, angle=angle+Num32.TAU/4, tint=tint)
38 DrawText(CString("???"), Int32(p.pos.x,yes) - 24, Int32(p.pos.y,yes) - 40, 24, Color(0xff,0xff,0xff,0xa0))