我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基于Matlab实现抖音小游戏苹果蛇

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

基于Matlab实现抖音小游戏苹果蛇

最近抖音上苹果蛇小游戏大火,为了证明MATLAB无所不能,咋能不跟风做一个?于是就有了这一篇。

还是提一句这个小游戏开始玩的心路历程:

第1-5关:?这不就是有重力的贪吃蛇,有任何难度嘛??

第6关:嗯。。。这个小技巧还是有点意思的

第30关:???这绕来绕去的是人出的题目??

第90关:… …疯了疯了已经疯了

废话不多说看一下MATLAB版的完整代码:

为了方便修改,关卡地图就摆在m文件里,总共写了八关,但是只有代码没有素材包还是运行不了,因此请从文末获取完整压缩包.

function appleSnake
% @author : slandarer
% 公众号  : slandarer随笔
% 知乎    : hikari

% 加载图像数据
MT=load('material.mat');
MT=MT.MT;
SIZE.BASE=size(MT.base.CData,1);
SIZE.EXIT=size(MT.exit.CData,1);
SIZE.STONE=size(MT.stone.CData,1);
SIZE.APPLE=size(MT.apple.CData,1);
SIZE.SNAKE=size(MT.snake1.CData,1);
SIZE.RESTART=size(MT.restart.CData,1);
% 初始化地图及关卡
[fig,ax]=init();
LEVEL=1;
MAP=getMap(LEVEL);
loadMap();
refreshSnake();
text(10,1000,'当前关卡:','FontSize',18,'FontWeight','bold')
LEVEL_HDL=text(270,1000,num2str(LEVEL),'FontSize',18,'FontWeight','bold');
% =========================================================================
set(fig,'KeyPressFcn',@key); 
    function key(~,event)
        dirvec=[0,0];
        switch event.Key
            case 'uparrow'
                dirvec=[-1,0];
                [~,colSet]=find(MAP<0);
                if all(colSet==colSet(1))
                    dirvec=[0,0];
                end
            case 'downarrow',dirvec=[1,0];
            case 'rightarrow',dirvec=[0,1];
            case 'leftarrow',dirvec=[0,-1];
        end
        if sum(dirvec)~=0
            [hi,hj]=find(MAP==-1);
            switch MAP(hi+dirvec(1),hj+dirvec(2))
                case 0
                    MAP(MAP<0)=MAP(MAP<0)-1;
                    MAP(MAP==min(MAP,[],[1,2]))=0;
                    MAP(hi+dirvec(1),hj+dirvec(2))=-1;
                case 1
                case 2
                    MAP(MAP<0)=MAP(MAP<0)-1;
                    MAP(MAP==min(MAP,[],[1,2]))=0;
                    MAP(hi+dirvec(1),hj+dirvec(2))=-1;
                    refreshSnake()
                    win();
                    return;
                case 3
                    MAP(MAP<0)=MAP(MAP<0)-1;
                    APPLE_HDL=findobj('Tag','APPLE','UserData',[hi+dirvec(1),hj+dirvec(2)]);
                    MAP(hi+dirvec(1),hj+dirvec(2))=-1;delete(APPLE_HDL);
                case 4
                    if MAP(hi+2*dirvec(1),hj+2*dirvec(2))==0
                        MAP(MAP<0)=MAP(MAP<0)-1;
                        MAP(MAP==min(MAP,[],[1,2]))=0;
                        MAP(hi+dirvec(1),hj+dirvec(2))=-1;
                        MAP(hi+2*dirvec(1),hj+2*dirvec(2))=4;
                        STONE_HDL=findobj('Tag','STONE','UserData',[hi+dirvec(1),hj+dirvec(2)]);
                        STONE_HDL.XData=STONE_HDL.XData+70*dirvec(2);
                        STONE_HDL.YData=STONE_HDL.YData-70*dirvec(1);
                        STONE_HDL.UserData=[hi+2*dirvec(1),hj+2*dirvec(2)];
                        tCol=MAP(:,hj+2*dirvec(2));tCol(60)=1;
                        nRow=find(tCol~=0&((1:60)'>hi+2*dirvec(1)),1,'first')-1;
                        STONE_HDL.YData=STONE_HDL.YData-70*(nRow-hi+dirvec(1));
                        STONE_HDL.UserData=[nRow,hj+2*dirvec(2)];
                        MAP(hi+2*dirvec(1),hj+2*dirvec(2))=0;
                        MAP(nRow,hj+2*dirvec(2))=4;
                    end
            end
            refreshSnake();pause(.15)
            freeFall();
            refreshSnake()
        end
    end
    function freeFall()
        [rowSet,colSet]=find(MAP<0);
        diffmin=inf;
        for t=1:length(rowSet)
            tCol=MAP(:,colSet(t));
            tCol(60)=1;
            tRow=find(tCol>0&((1:60)'>rowSet(t)),1,'first');
            diffmin=min(diffmin,tRow-rowSet(t));
        end
        diffmin=diffmin-1;
        if diffmin>15
            loss(diffmin)
        elseif diffmin>0
            tMAP=MAP;
            for t=1:length(rowSet)
                tMAP(rowSet(t),colSet(t))=0;
            end
            for t=1:length(rowSet)
                tMAP(rowSet(t)+diffmin,colSet(t))=MAP(rowSet(t),colSet(t));
            end
            MAP=tMAP;
        end
        
    end
    function restart(~,~)
        MAP=getMap(LEVEL);
        if ~isempty(MAP)
            loadMap();
            refreshSnake();
            LEVEL_HDL.String=num2str(LEVEL);
        end
    end
    function win(~,~)
        LEVEL=LEVEL+1;
        MAP=getMap(LEVEL);
        if ~isempty(MAP)
            loadMap();
            refreshSnake();
            LEVEL_HDL.String=num2str(LEVEL);
        else
            msgbox('暂无更多关卡')
        end
    end
    function loss(D)
        if D>15
            for d=1:20
                [rowSet,colSet]=find(MAP<0);
                tMAP=MAP;
                for t=1:length(rowSet)
                    tMAP(rowSet(t),colSet(t))=0;
                end
                for t=1:length(rowSet)
                    tMAP(rowSet(t)+1,colSet(t))=MAP(rowSet(t),colSet(t));
                end
                MAP=tMAP;
                refreshSnake();
                pause(.1);
            end
        end
    end
% =========================================================================
    function [fig,ax]=init(~,~)
        % figure窗口创建及属性设置
        fig=figure();
        fig.NumberTitle='off';
        fig.Position=[250,120,500,500];
        fig.MenuBar='none';
        fig.Name='apple snake by slandarer';
        % axes坐标区域创建及属性设置
        ax=gca;hold on
        ax.Position=[0 0 1 1];
        ax.XTick=[];
        ax.YTick=[];
        ax.XColor='none';
        ax.YColor='none';
        ax.XLim=[0,1050];
        ax.YLim=[0,1050];
        % 绘制背景
        image(ax,ax.XLim,ax.YLim,flipud(MT.background))
        image(ax,[-SIZE.RESTART/2,SIZE.RESTART/2]+60,...
                [-SIZE.RESTART/2,SIZE.RESTART/2]+900,...
                flipud(MT.restart.CData),...
                'AlphaData',flipud(MT.restart.AlpData),...
                'ButtonDownFcn',@restart)
    end

    function map=getMap(level)
        % 地图大小15x15
        % 空气 :  0
        % 土块 :  1
        % 蛇头 : -1,蛇身数值依次递减
        % 终点 :  2
        % 苹果 :  3
        % 石块 :  4
        Map{1}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  3  0  0  0  0  0  0  0
                 0  0 -2 -1  0  0  0  0  0  0  0  2  0  0  0
                 0  0 -3  1  1  1  0  0  0  1  1  1  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{2}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  2  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0 -3 -2 -1  0  0  0  0  0  0  0  0  0  0
                 0  0  1  1  1  0  1  1  1  0  1  0  0  0  0
                 0  0  0  0  1  0  0  3  0  0  1  0  0  0  0
                 0  0  0  0  1  0  1  1  1  0  1  0  0  0  0
                 0  0  0  0  1  1  1  0  1  0  1  0  0  0  0
                 0  0  0  0  0  0  0  0  1  1  1  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{3}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0 -3 -2 -1  0  0  0  0  0  0  2  0  0  0
                 0  0  1  1  1  1  0  0  0  0  0  1  0  0  0
                 0  0  1  0  0  1  0  0  0  0  0  1  0  0  0
                 0  0  1  0  0  0  0  3  0  0  0  1  0  0  0
                 0  0  1  1  1  1  0  0  0  1  1  1  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{4}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  1  0  0  1  1  0  0  0  0  0
                 0  0  0  0  0  1  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  1  0  3  0  1  0  0  0  0  0
                 0  0 -3 -2 -1  0  0  0  0  0  0  0  0  0  0
                 0  0  1  1  1  1  1  0  0  0  1  1  1  1  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  2  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{5}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  2  0  0  0
                 0  0  0  0  0  0  0  1  1  1  1  1  0  0  0
                 0  0  0  0  0  0  0  1  3  0  1  0  0  0  0
                 0  0  0 -2 -1  0  0  0  0  0  1  0  0  0  0
                 0  0  0 -3  1  1  1  1  0  0  1  0  0  0  0
                 0  0  0  0  0  0  0  1  1  1  1  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{6}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  2  0  0
                 0  0  0  0  0  0  0  0  1  0  0  0  0  0  0
                 0  0  0  0  0  0  1  3  1  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0 -3 -2 -1  0  0  0  4  0  0  0  0
                 0  0  0  0  1  1  1  0  1  1  1  0  0  0  0
                 0  0  0  0  0  0  1  1  1  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{7}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  4  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  1  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  1  0  0  0  0  0  2  0  0
                 0  0  0  0  0  0  1  3  0  0  0  0  0  0  0
                 0  0  0  0 -3 -2 -1  0  0  0  0  0  0  0  0
                 0  0  0  0  1  1  1  1  1  1  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{8}=[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  1  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  4  0  0  0  0  0  0  0  0
                 0  0  0  0  0  1  3  1  0  0  0  0  0  0  0
                 0  0  0  0 -2 -1  0  0  0  0  0  0  0  0  0
                 0  0  0  0 -3  1  1  1  1  1  0  0  0  0  0
                 0  0  0  0  0  0  2  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  1  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
                 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0];
        Map{9}=[];
        map=Map{level};
    end
    function loadMap(~,~)
        delete(findobj('Tag','BASE'))
        delete(findobj('Tag','EXIT'))
        delete(findobj('Tag','APPLE'))
        delete(findobj('Tag','STONE'))
        % 绘制土块
        for i=15:-1:1
            for j=15:-1:1
                if MAP(i,j)==1
                    image(ax,70*(j-1)+35+[-SIZE.BASE/2,SIZE.BASE/2],...
                        70*(16-i)+35+[-SIZE.BASE/2,SIZE.BASE/2],...
                        flipud(MT.base.CData),...
                        'alphaData',flipud(MT.base.AlpData),...
                        'tag','BASE');
                end
            end
        end
        % 绘制出口
        [ti,tj]=find(MAP==2);
        image(ax,70*(tj-1)+35+[-SIZE.EXIT/2,SIZE.EXIT/2],...
            70*(16-ti)+35+[-SIZE.EXIT/2,SIZE.EXIT/2],...
            flipud(MT.exit.CData),...
            'alphaData',flipud(MT.exit.AlpData),...
            'tag','EXIT');
        % 绘制苹果
        [ti,tj]=find(MAP==3);
        if ~isempty(ti)
        image(ax,70*(tj-1)+35+[-SIZE.APPLE/2,SIZE.APPLE/2],...
            70*(16-ti)+35+[-SIZE.APPLE/2,SIZE.APPLE/2],...
            flipud(MT.apple.CData),...
            'alphaData',flipud(MT.apple.AlpData),...
            'tag','APPLE','UserData',[ti,tj]);
        end
        % 绘制石块
        [ti,tj]=find(MAP==4);
        if ~isempty(ti)
        image(ax,70*(tj-1)+35+[-SIZE.STONE/2,SIZE.STONE/2],...
            70*(16-ti)+35+[-SIZE.STONE/2,SIZE.STONE/2],...
            flipud(MT.stone.CData),...
            'alphaData',flipud(MT.stone.AlpData),...
            'tag','STONE','UserData',[ti,tj]);
        end
    end
    function refreshSnake(~,~)
        delete(findobj('Tag','SNAKE'))
        % 画蛇头
        [ti,tj]=find(MAP==-1);
        [ti_n,tj_n]=find(MAP==-2);
        tSnakeC=MT.snake1.CData;
        tSnakeAlp=MT.snake1.AlpData;
        if tj_n>tj
            tSnakeC=fliplr(tSnakeC);
            tSnakeAlp=fliplr(tSnakeAlp);
        end
        if ti_n>ti
            if MAP(ti,tj-1)==1
                tSnakeC(:,:,1)=flipud(tSnakeC(end:-1:1,:,1)');
                tSnakeC(:,:,2)=flipud(tSnakeC(end:-1:1,:,2)');
                tSnakeC(:,:,3)=flipud(tSnakeC(end:-1:1,:,3)');
                tSnakeAlp=flipud(tSnakeAlp'); 
            else
                tSnakeC(:,:,1)=flipud(tSnakeC(:,:,1)');
                tSnakeC(:,:,2)=flipud(tSnakeC(:,:,2)');
                tSnakeC(:,:,3)=flipud(tSnakeC(:,:,3)');
                tSnakeAlp=flipud(tSnakeAlp');
            end
        end
        if ti_n<ti
            if MAP(ti,tj-1)==1
                tSnakeC(:,:,1)=tSnakeC(end:-1:1,:,1)';
                tSnakeC(:,:,2)=tSnakeC(end:-1:1,:,2)';
                tSnakeC(:,:,3)=tSnakeC(end:-1:1,:,3)';
                tSnakeAlp=tSnakeAlp'; 
            else
                tSnakeC(:,:,1)=tSnakeC(:,:,1)';
                tSnakeC(:,:,2)=tSnakeC(:,:,2)';
                tSnakeC(:,:,3)=tSnakeC(:,:,3)';
                tSnakeAlp=tSnakeAlp';
            end
        end
        image(ax,70*(tj-1)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
            70*(16-ti)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
            flipud(tSnakeC),...
            'alphaData',flipud(tSnakeAlp),...
            'tag','SNAKE');
        [ti,tj]=find(MAP==min(MAP,[],[1,2]));
        [ti_l,tj_l]=find(MAP==min(MAP,[],[1,2])+1);
        tSnakeC=MT.snake4.CData;
        tSnakeAlp=MT.snake4.AlpData;
        switch true
            case tj_l>tj
            case tj_l<tj
                tSnakeC=fliplr(tSnakeC);
                tSnakeAlp=fliplr(tSnakeAlp);
            case ti_l<ti
                tSnakeC(:,:,1)=flipud(tSnakeC(:,:,1)');
                tSnakeC(:,:,2)=flipud(tSnakeC(:,:,2)');
                tSnakeC(:,:,3)=flipud(tSnakeC(:,:,3)');
                tSnakeAlp=flipud(tSnakeAlp');
            case ti_l>ti
                tSnakeC(:,:,1)=tSnakeC(:,:,1)';
                tSnakeC(:,:,2)=tSnakeC(:,:,2)';
                tSnakeC(:,:,3)=tSnakeC(:,:,3)';
                tSnakeAlp=tSnakeAlp';
        end
        % 画蛇尾
        image(ax,70*(tj-1)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
            70*(16-ti)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
            flipud(tSnakeC),...
            'alphaData',flipud(tSnakeAlp),...
            'tag','SNAKE');
        % 画蛇身体
        for i=-2:-1:(min(MAP,[],[1,2])+1)
            [ti,tj]=find(MAP==i);
            [ti_l,tj_l]=find(MAP==i+1);
            [ti_n,tj_n]=find(MAP==i-1);
            switch true
                case ti_l==ti_n
                    tSnakeC=MT.snake2.CData;
                    tSnakeAlp=MT.snake2.AlpData;
                case tj_l==tj_n
                    tSnakeC=MT.snake2.CData;
                    tSnakeAlp=MT.snake2.AlpData;
                    tSnakeC(:,:,1)=tSnakeC(:,:,1)';
                    tSnakeC(:,:,2)=tSnakeC(:,:,2)';
                    tSnakeC(:,:,3)=tSnakeC(:,:,3)';
                    tSnakeAlp=tSnakeAlp';
                case ti_l<ti_n&&tj_l>tj_n&&ti>ti_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                    tSnakeC=rot90(tSnakeC,2);
                    tSnakeAlp=rot90(tSnakeAlp,2);
                case ti_l<ti_n&&tj_l>tj_n&&tj<tj_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                case ti_l<ti_n&&tj_l<tj_n&&ti>ti_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                    tSnakeC=flipud(tSnakeC);
                    tSnakeAlp=flipud(tSnakeAlp);
                case ti_l<ti_n&&tj_l<tj_n&&tj>tj_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                    tSnakeC=fliplr(tSnakeC);
                    tSnakeAlp=fliplr(tSnakeAlp);
                case ti_l>ti_n&&tj_l>tj_n&&ti<ti_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                    tSnakeC=fliplr(tSnakeC);
                    tSnakeAlp=fliplr(tSnakeAlp);
                case ti_l>ti_n&&tj_l>tj_n&&tj<tj_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                    tSnakeC=flipud(tSnakeC);
                    tSnakeAlp=flipud(tSnakeAlp);
                case ti_l>ti_n&&tj_l<tj_n&&ti<ti_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                case ti_l>ti_n&&tj_l<tj_n&&tj>tj_l
                    tSnakeC=MT.snake3.CData;
                    tSnakeAlp=MT.snake3.AlpData;
                    tSnakeC=rot90(tSnakeC,2);
                    tSnakeAlp=rot90(tSnakeAlp,2);
            end
            image(ax,70*(tj-1)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
            70*(16-ti)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
            flipud(tSnakeC),...
            'alphaData',flipud(tSnakeAlp),...
            'tag','SNAKE');
        end
    end
end

源码获取

以上就是基于Matlab实现抖音小游戏苹果蛇的详细内容,更多关于Matlab苹果蛇游戏的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基于Matlab实现抖音小游戏苹果蛇

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于Matlab如何实现抖音小游戏苹果蛇

这篇文章主要讲解了“基于Matlab如何实现抖音小游戏苹果蛇”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Matlab如何实现抖音小游戏苹果蛇”吧!还是提一句这个小游戏开始玩的心路历程:
2023-07-02

Matlab怎么实现贪吃蛇小游戏

小编给大家分享一下Matlab怎么实现贪吃蛇小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!补动图:没错这就有点类似贪吃蛇大作战里的蛇啦然后做出的改进包括:在
2023-06-29

基于Vue uniapp怎么实现贪吃蛇游戏

本篇内容介绍了“基于Vue uniapp怎么实现贪吃蛇游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!游戏演示代码结构详细代码结构如果需要
2023-06-30

基于Python实现骰子小游戏

骰子,是现在娱乐场所最常见的一种玩乐项目。一般骰子分两人和两人以上玩,而玩法有很多。本文就来用Python实现个骰子小游戏,感兴趣的可以了解一下
2023-02-28

C语言基于EasyX如何实现贪吃蛇游戏

本篇内容主要讲解“C语言基于EasyX如何实现贪吃蛇游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言基于EasyX如何实现贪吃蛇游戏”吧!成品展示:实现思路:贪吃蛇的实现思路并不复杂,由
2023-07-02

基于Pygame如何实现简单的贪吃蛇游戏

这篇文章主要为大家展示了“基于Pygame如何实现简单的贪吃蛇游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于Pygame如何实现简单的贪吃蛇游戏”这篇文章吧。导入相关的包import p
2023-06-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录