我正在尝试创建一个简单的游戏。
它应该做什么:创建2个按钮,当用户点击每个按钮时,它应该消失。
它实际上做了什么:当我点击第一个按钮时,它会消失。但是,当我点击第二个时,没有任何事情发生。
clear all, clc, close all
fh = figure;
n = 2;
x = ceil(rand(10)*2);
y = ceil(rand(10)*2);
bgh = uibuttongroup('Parent',fh,'Title',...
'Button Game','Position',[.1 .2 .8 .6]);
for i = 1:n
rbh1 = uicontrol(bgh,'Style','Pushbutton','String','Red',...
'Units','normalized','Position',[rand(1) rand(1) x(1,i) y(1,i)]);
set(rbh1,'CallBack','set(rbh1,''visible'',''off'')')
end
axt = axes('Parent',bgh,'Units','normalized');
axis([0.5 1 0.5 1])
axis square
axis off
我该如何解决这个问题?
答案 0 :(得分:1)
问题是您只为一个句柄设置回调。将代码的循环位更改为以下内容,它将起作用。由于这似乎是一个学习练习,我会留给你探索它,并弄清楚为什么这个改变有帮助。
for i = 1:n
rbh(i) = uicontrol(bgh,'Style','Pushbutton','String','Red',...
'Units','normalized','Position',[rand(1) rand(1) x(1,i) y(1,i)]);
set(rbh(i),'CallBack',['set(rbh( ' num2str(i) '),''visible'',''off'')'])
end