Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module type Entity = sig
- type t
- val position : t -> Position.t
- val update : t -> t
- val texture : t -> Texture.t
- val set_speed : t -> (int * int) -> t
- val make : Render.t -> t
- end
- module Player : Entity = struct
- type t = {pos: Position.t; tex: Texture.t; x_speed: int; y_speed: int}
- let texture self = self.tex;;
- let position self = self.pos;;
- (* let update self = { pos= { self.pos.Position.x + self.x_speed;self.pos.Position.y + self.y_speed};tex=self.tex;x_speed=self.x_speed;y_speed=self.y_speed };; *)
- let update self = {pos= {x=self.pos.x + self.x_speed;y= self.pos.y + self.y_speed}; tex= self.tex; x_speed = self.x_speed; y_speed = self.y_speed}
- let set_speed self target =
- let (xs, ys) = target in
- {pos=self.pos;tex=self.tex;x_speed=xs;y_speed=ys};;
- let make renderer = {pos={Position.x=0;Position.y=0};tex= ordie (Image.load renderer "avatar.png");x_speed=0;y_speed=3}
- end
- type entities = (string * Entity.t) list
Advertisement
Add Comment
Please, Sign In to add comment