俄罗斯方块吧 关注:13,139贴子:69,965
  • 18回复贴,共1

求力量!我能做俄罗斯方块,还差一步

只看楼主收藏回复



IP属地:湖南1楼2013-02-10 23:29回复
    只剩旋转上的问题了


    就这个问题


    IP属地:湖南2楼2013-02-10 23:32
    回复
      2025-06-16 10:09:03
      广告
      开发中实景


      试玩效果


      IP属地:湖南3楼2013-02-10 23:36
      回复
        窗口上到处都是说明书大丈夫么……


        IP属地:四川4楼2013-02-11 00:16
        回复
          你不喜欢我随时可以不往窗口上贴小广告


          IP属地:湖南5楼2013-02-11 10:14
          回复
            It's not Tetris!
            编程之路漫漫兮,吾将上下而求索------------------------T-cn 2B


            IP属地:福建本楼含有高级字体6楼2013-02-11 10:44
            收起回复
              具体的实现我不太清楚,没做过。目前能想到两种解决方法。一种是每个方块用一张完整的图片,旋转的时候就旋转图片,而不是像图片里这样用小方块组成一个图形。另一种就是在图形中确定一个小方块,作为中心点,旋转的时候其他的小方块以中心点重新构图。


              来自贴吧神器7楼2013-02-11 19:28
              收起回复
                谢谢


                IP属地:湖南8楼2013-02-14 08:27
                收起回复
                  2025-06-16 10:03:03
                  广告
                  有货的捧个码场,没货的捧个人场


                  IP属地:湖南10楼2013-02-15 22:28
                  回复

                    var
                    LastKeyDownTime:TDateTime;
                    //...
                    proc cbMove(m:Integer); //控制移动 不具体实现
                    //...
                    proc Timer3_OnTimer(); //在按下左右键一段时间后 自动移动方块
                    begin
                    if Key=RightKey then cbMove(+cbWidth)
                    else cbMove(-cbWidth);
                    end;
                    proc App.OnMessage(Msg:TMessage);//响应信息
                    var
                    CurrentTime:TDateTime;
                    begin
                    if Msg.Message=WM_KeyDown then begin
                    if (Msg.wParam=LeftKey) or (Msg.wParam=RightKey) then begin
                    CurrentTime:=Now();
                    If (CurrentTime-LastKeyTime)<=持续按下后所需时间 then begin {} Timer3.NeedTime:=重复时间; //设定计时时长
                    Timer3.Enabled:=True;//启动Timer3 开始计时 到时间时自动移动一
                    //格
                    Key:=Msg.wParam;
                    end;
                    //...
                    end;
                    LastKeyTime:=CurrentTime;
                    //...
                    end ;
                    if Msg.Message=WM_KeyUp then
                    if Timer3.Enabled=True then Timer3.Enabled:=False;
                    //...
                    end;
                    //...

                    By坚定支持Goo,原帖地址请自行Ctrl+F DAS,这是DAS的部分,语言未知


                    IP属地:福建11楼2013-02-16 07:04
                    收起回复
                      不是吧,我写了400多行代码


                      IP属地:湖南12楼2013-02-16 09:59
                      回复