[讨论] gui的function间传值问题

楼主: emmadodolin (多多)   2014-05-10 23:46:33
这次想做一个五子棋的游戏
现在是想借由传值算余数的方式去看要放黑棋或白棋
但在function传值间遇到问题
以下是主要code
function axes1_CreateFcn(hObject, eventdata, handles)
X=0;
handles.curplayer = X;%把X=0存进handles.curplayer代表黑色先下
guidata(hObject, handles);%更新handles的内容
board_image=imread('C:\Users\user\Documents\MATLAB\gui\board.jpg');%得到棋盘图的路径
board_handle=image(board_image)%贴上棋盘图
hold on;%不确定需不需要此行code
set(board_handle,'ButtonDownFcn',{@board_ButtonDownFcn,5});%将棋盘部分设鼠标事件
function board_ButtonDownFcn(hObject, eventdata, handles)
A=handles.curplayer;%%%%%%%%试图取得handles.curplayer但失败
curplayer=mod(A,2);%将handles.curplayer/2取余数
[x,y] = ginput(1)%得到鼠标事件按的座标值
a=[0:pi/50:2*pi]; %角度 0-2pi
x1=cos(a)*16+x; %圆的x方程式
y1=sin(a)*16+y; %圆的y方程式
if curplayer==0 %如果余数为0则为黑色
plot(x1,y1,'-') %画出圆形线条
fill(x1,y1,'k') %涂满黑色
elseif curplayer==1 %如果余数为1则为白色
plot(x1,y1,'-') %画出圆形线条
fill(x1,y1,'w') %涂满白色
end
handles.curplayer=handles.curplayer+1; %将handles.curplayer+1即可换另一个颜色
guidata(hObject,handles); %更新handles
hold on;
执行时Error显示Attempt to reference field of non-structure array.
问题出在A=handles.curplayer;
请问是哪里出错,要如何修改呢?查了很多资料也爬了很多文还是无解ˊ_ˋ
谢谢大家

Links booklink

Contact Us: admin [ a t ] ucptt.com