回 帖 发 新 帖 刷新版面

主题:matlab如何实现游戏中控制的上下左右

一般用keyboard时需要压 enter键才可以,如何不用回车就可以直接执行键盘操作,谢谢了

回复列表 (共1个回复)

沙发

% 以前我也有编游戏的冲动,后来搁弃了。执行程序后,按上下左右控制,按Ctrl+q退出
function moves
clear;warning off;
   fig1=figure('KeyPressFcn',@printfig);
   lefts = 400;rights = 405;ups = 400; downs = 405;

   quitflag = 0;

function printfig(src,evnt)
        evnt
        A = zeros(800,800);
      if strcmp(evnt.Key(:)','rightarrow')
          lefts = lefts + 10;
          rights = rights + 10;
      end
      if strcmp(evnt.Key(:)','leftarrow')
          lefts = lefts - 10;
          rights = rights - 10;
      end
      if strcmp(evnt.Key(:)','uparrow')
          ups = ups - 10;
          downs = downs - 10;
      end
      if strcmp(evnt.Key(:)','downarrow')
          ups = ups + 10;
          downs = downs + 10;
      end
      if length(evnt.Modifier) == 1 & strcmp(evnt.Modifier{:},'control') & evnt.Key == 'q'
         quitflag = 1;
      end
      A(ups:downs,lefts:rights) = 255;
      imshow(uint8(255-A));
      if quitflag
          close(fig1);clear;
      
      end
end
end

我来回复

您尚未登录,请登录后再回复。点此登录或注册