Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open CamomileLibrary.UChar
- open LTerm_key
- let get_time () =
- let localtime = Unix.localtime (Unix.time ()) in
- Printf.sprintf "[%02u:%02u:%02u]: "
- localtime.Unix.tm_hour
- localtime.Unix.tm_min
- localtime.Unix.tm_sec
- let log_message message =
- let open Core.Std in
- let oc = open_out_gen [Open_wronly;
- Open_creat;
- Open_append] 0o666 "log" in
- output_string oc ((get_time ()) ^ message ^ "\n");
- Out_channel.close oc
- class shooter =
- object(self)
- inherit LTerm_widget.label "defender" as super
- method shoot_rocket () =
- log_message "Shooting rocket"
- method move_left () =
- log_message "Moving left"
- method move_right () =
- log_message "Moving Right"
- initializer
- log_message "Init called for initializer";
- self#on_event (function
- | LTerm_event.Key {control = false; meta = false;
- shift = false; code = Char ch }
- when ch = of_char 'd' ->
- self#shoot_rocket ();
- false
- | LTerm_event.Key {control = false; meta = false;
- shift = false; code = Tab } ->
- self#shoot_rocket ();
- false
- | LTerm_event.Key {control = false; meta = false;
- shift = false; code = Left} ->
- self#move_left ();
- false
- | LTerm_event.Key {control = false; meta = false;
- shift = false; code = Right} ->
- self#move_right ();
- false
- | _ -> true)
- end
- let root_handler exit_ (root_box: LTerm_widget.vbox) show_help =
- (fun event ->
- match event with
- | LTerm_event.Key {control = false; meta = false;
- shift = false; code = LTerm_key.Char ch}
- when ch = of_char 'q' ->
- exit_ ();
- false
- | _ -> true
- )
- let make_help_modal () =
- new LTerm_widget.modal_frame
- lwt () =
- let do_run, push_layer, pop_layer, exit_ = LTerm_widget.prepare_simple_run () in
- let root_box = new LTerm_widget.vbox in
- let defender = new shooter in
- root_box#add defender;
- root_box#on_event (root_handler
- exit_
- root_box
- (push_layer (make_help_modal ())));
- do_run root_box
Advertisement
Add Comment
Please, Sign In to add comment