minecraft同人游戏吧 关注:1,261贴子:17,053
  • 5回复贴,共1

萌新瞎整一个沙盒游戏

只看楼主收藏回复

EMMMMM上个帖子干脆用来发布版本算了、、、、、(这辈子都不可能做出一个完整版本的!)
这个帖子主要是让我不要太监用的
怎么说呢……因为我实在是太闲了所以打算搞个沙盒出来
也想不到哪里能发就扔这里了
也就瞎打代码,直播敲代码
使用语言:纯C编写,这是一种信仰目前进度0.5%
因为打算手写物理引擎(因为处理某些奇妙参数的原因),所以更新巨慢,有生之年
我也看到审核楼了,不过死了这么久不一定会复活,要是复活了我马上自删
START!


IP属地:安徽1楼2020-04-12 20:34回复
    今日计划:增加代码可读性与兼容性,避免进一步重写(0/1)<=之前我是怎么写出那么神仙的代码的
    -------------测试载入区块功能,看一看之前写的显示模块有没有问题(0/1)<=前几个版本的都没问题的,应该没BUG
    -------------测试ActiveBlock有没有问题,有问题明天再说(0/1)<=希望别出现内存溢出之类的奇奇怪怪的BUG


    IP属地:安徽2楼2020-04-12 20:34
    回复
      先发一下计划的运行原理吧,希望大家提出建议优化算法。
      游戏存档由Block和Chunk两部分组成。
      载入存档时,会载入玩家所在的Chunk,再根据Chunk中的索引导入每一个Block的信息。部分Block被标记为ActiveBlock(类似于受到方块更新的方块)并进行物理运算。为了优化碰撞判定,ActiveBlock亦被保存在Chunk中
      下面是Block、Chunk、ActiveBlock的代码定义
      struct block{
      long type,uuid,PosInChunk[2],ChunkUuid,BelongTo;
      double temp,pos[2],motion[2],mass,AngleMotion,angle;
      char info;
      //00000001:激活的
      };
      struct chunk{
      struct block*blocks[16][16];
      long uuid;
      long pos[2];
      };
      struct block**BlockActivating[65535];


      IP属地:安徽4楼2020-04-12 20:45
      回复
        忘记判NULL,直接两行泪


        调试这么久才发现居然忘记判定NULL了,还是在手写区块的时候发现的
        出了错了还不知道出在哪,恕我看看是不是哪里越界了


        IP属地:安徽6楼2020-04-12 21:02
        回复


          IP属地:广东7楼2020-05-04 08:59
          回复