删除用补丁绘制的图形部分 - MATLAB

时间:2015-12-13 20:48:06

标签: matlab matlab-figure tetris

所以我试图在Matlab中构建一个简单的俄罗斯方块游戏。 我正在使用补丁方法绘制和更新图形,并为每个形状预定义位置矢量。

到目前为止一直很好,但是当我需要删除一行时(当玩家填充一行时),我被困住了,因为我不知道如何从图中删除一个块。我尝试了ROI,但我无法删除底层补丁。

绘制数字和补丁的代码: ...

figureH = figure('name','TETRIS Game','outerposition',[100 100 500 500],'color','g');
%draw game area
 patch(xBoard+[0,gameWidth,gameWidth,0],yBoard +[0,0,gameHeight,gameHeight],'w');

...

%drawing shape in each step
activeShapePatch = patch((xBoard-1)+min(fcol)+x,yBoard+gameHeight-max(frow)+y,nextShape{1}{4});

nextShape只是一个包含每个形状和颜色的x-y向量的单元格数组 - 这是补丁参数。

1 个答案:

答案 0 :(得分:0)

我需要更多详细信息,但可以考虑将补丁句柄存储到单元格或图形对象数组中(例如,在gobject(3,2)生成3x2图形对象数组时进行初始化),然后根据需要删除它们。通常,使用手柄和单元格

cell_h_patch{ipatch} = patch(XData, YData, ZData, CData, ...)
...
row = ipatch;
delete(cell_h_patch{row})