一个属于左半红印的Avalon

Copyright @ 2008-2024
Powered by WordPress
Use theme BlackCooler
Created by Redonleft
鄂ICP备19016979号-1
川公网安备51011202000667
文章归档
PHPSTORM+XAMPP+XDEBUG

这是一篇手记,实际上我在刚才为标题这个事情折腾了好几天,网上查了无数资料,最终终于成功。然后我发现网上的几乎所有资料都存在或多或少的确实,一些问题没有提到。所以如果有人和我一样卡在这个过程中的某个位置,请参考一下我在这里列举的一些情况是否对你有帮助。

这里需要再次说明,我会将整个过程写出来,网上已经有了太多的资料,本文章只是对这个过程的补充。

问题1

这是最坑爹的一个,简直了。我们都知道需要xdebug这个php插件,事实上xampp都有自带这个插件,但是问题来了。在php.ini中的配置真的配对了吗?坑点在这里:

extension=php_xdebug-2.7.2-7.1-vc14-x86_64.dll //这样是错的
zend_extension=D:\xampp\php\ext\php_xdebug-2.7.2-7.1-vc14-x86_64.dll//这样是对的
  • 1

问题点在于不能用extension,要用zend_extension,而且二者不能同时出现。这个问题你无法通过phpinfor()发现,只能通过php.exe -m或者php –version获得两个waring。如果无视这个问题,在phpstorm中debug无法获得任何信息,断点无效,始终处于“正在等待与ide key 的传入连接”。

Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
Warning: Module 'xdebug' already loaded in Unknown on line 0
  • 1

问题2

在php.ini配置完成后,在运行配置里验证一下,有些问题就暴露出来了,比如网上很多地方都写着:

xdebug.remote_handler = "dbgp"

    这么写真的对吗?通过验证看一下,有没有报错

    问题3

    这个问题网上有提到,就是PHP环境配置里PHP语言级别和CLI解释器不一致的情况。我想有可能这个问题出自官方,因为官方教程中有这样一张图。

    其实很明显,这样的话是有可能在debug时接收不到信息的,将语言级别和CLI解释器的语言级别调整为一致是必要的。

    左半红印创作于2022.05.4th
    A Hacker Game

    我做了一个小品级游戏的DEMO,类型是黑客模拟类,或者也可以叫剧情解密类,亦或者叫它打字游戏也行。如果你玩过《Hacknet》或者《NITE TEAM 4》应该能立刻理解。游戏设定了一些原创的计算机命令,玩家通过输入不同的命令达到推进游戏进程的目的。

    这个DEMO展示了我对游戏的基本概念,抛弃计算机屏幕内容以外的其他元素,让玩家能够专注于一个电脑专家本质的体验。当然,对于游戏来说过于繁琐的输入和计算机原理不具备娱乐要素,仅此我们尽量精简。用简单的操作来讲个好故事。

    AHackerGame

    目前的设想

    需要一个优秀的剧情,核心玩法虽然是打字输入,但我深刻的明白游戏能够提供的游玩动力是剧情。因此我需要一个会讲故事的伙伴来加入。

    炫酷的FUI,玩过都都知道简单或者说捡漏的UI界面非常没有卖相,让人一眼看上去就不想玩。而这种游戏玩家面对的几乎100%都是这个UI界面,所以高质量的UI设计是游戏出色的基础。

    美术资源依然需求,目前DEMO中所使用的图片全部来自网络,实际上在我的设想内,游戏在外来如果可能希望能够加入一些动画。

    配音,现在此类游戏已经有一些进行了配音,效果拔群。与其看界面上如聊天记录一样的文字叙述剧情,适当的配音能让游戏的效果更好。

    期待各位的加入,请在下面留下联系方式!

    如有什么想对我说的也请在下面留言!

    左半红印创作于2021.12.30th
    第一次露营

    无论是《摇曳露营》还是其他视频中所展现的露营都是其中最美好的一面。露营确实很好玩,一群人玩的很high,K歌也好,看电影也好,打游戏也好,一起烧烤也好,能够留在记忆中的都是各种美好的影像。于是我在回来后,整整缓了一天后才有力气打开笔记本记录这一切。

    本来以为是一趟说走就走的旅程,于是在几乎没有计划的前提下,趁着双12网购了一切物品。一起去的人中,有一个极富经验的哥们,想着能准备的都准备了应该问题不大。然而,天时地利人和,从最开始就只剩人和了。什么叫只剩人和,就是靠自己。计划永远赶不上变化大,当我们到达露营目的地的时候天都黑了。于是只能开始抹黑搭帐篷,第一次啊,以前虽然也搭过简易帐篷心想问题不大,于是买的是那种相对复杂一点的帐篷,结果就吃瘪了。露营目的地是在水边,地面土厚也就2-3厘米,下面全是碎石子。帐篷的第一根钉子都打不进去,当费了半条命终于打下第一颗钉厚绝望的发现这样的钉子一共要打18根。于是在放弃了地面定位钉厚,只打了剩下的9根防风钉,勉强把帐篷搭了起来。然后我就彻底摊在座椅上了,感觉双手要废掉。咬着牙切着齿,把桌椅板凳,床垫睡袋全部铺好后,都快十点了。旁边那家有钱人开着房车,饭都吃完了,我们这边才开始煮火锅。

    不过,后面迎来的是欢乐的时光。一群人吃着火锅唱着歌,烤着烧烤打着游戏。能够享受着一切,忽然又觉得前面的努力都值得。一群人疯到深夜,终于熬不住了,钻帐篷睡觉。还好选的帐篷是棉布的,这里晚上零度左右,厚实的睡袋加上自己的棉衣,一晚上下来不算冷,倒是热醒了一次。

    第二天起来就又要开始干活了,把所有睡袋和床垫压干空气装进小袋子里就又费尽了所有力气,然后是拆帐篷,折叠所有家具,打包装箱。当我坐上车的时候,感觉自己已经一动都不想动了。

    其实后来想起来,我对所有露营设备的设计都有了深刻的理解。为什么要设计的这么简单,为的就是减少旅行的人在架设营地的过程中花费的力气。但即便如此,所付出的劳动依然不是没经历过的人所能理解的。不要被网上那些影片和动画里的画面骗了啊,很多人在经历过这些以后,都不会再去搭帐篷了。而对于以后的露营计划,我也需要再好好考虑一下。

    左半红印创作于2021.12.19th
    《They Are Billions》

    本质上是塔防游戏,增加了RTS要素,算是这一类游戏中出类拔萃的了。玩家需要不断建立自己的防线,因为僵尸总是从四面八方过来,哪怕是一个最小的僵尸,如果进入基地那一切就都完了。所以游戏正常的推进方式应该是,玩家利用地形不断的建设自己的防线,设置岗哨和巡逻的卫兵。而尸潮涌动意味着地图外会有大批僵尸过来,这意味着玩家建立的最外围防线可能是守不住的,于是后方早期建立的城墙成了战略后撤的新防线。虽然是个纯2D的游戏,但是看着乌央乌央的大群僵尸涌过来,还是十分震撼的。

    另一点,游戏在地形上的斟酌是非常重要的,不同的地形适用于不同的资源获取。房子占了绿地就意味着农场或者狩猎屋将无处安放。可以这么说资源的管理是游戏最重要的环节之一,玩家可能建立了占据地图的大片面积的基地就位供养数量有限的军队。而这些军队在尸潮涌动时,又会发挥至关重要的作用。这导致在玩到后面,玩家会发现很多建筑物的摆放都是有讲究的。

    不过游戏有个很明显的问题在于没有快进选项。当然我明白,这款游戏的节奏掌握的还是很紧凑的,玩家所做的事情都必须抓紧时间。如果尸潮到来前没有准备好那迎来的必定是game over。但也会出现另一种情况,比如在简单难度下,当玩家做好一切准备来测试自己的防线时,距离游戏设定尸潮涌动的日期还有一段时间,那么接下来玩家能做的就只能等。说到这里,最近出的类似的游戏《最后防线》就明显做的更好,毕竟是老游戏也无法强求吧。

    左半红印创作于2021.12.12th
    获取浏览器可视高度

    如果你在网上搜索这个题目得到答案大都是

    document.body.clientHeight

      但真实情况是,在当下很多时候用这行代码获取到的不是浏览器可视高度而是整个body的高度。

      比如我们现在打开网易首页(或者其他主要门户网站)在chrome控制台输入这行代码后得到数会非常大

      document.body.clientHeight
      9813
      • 1

      而如果我们输入

      document.documentElement.clientHeight
      1297
      • 1

      明显后面这个得到结果合理的多,实际上也正是浏览器的可见高度。你可以窗口化浏览器,调整一下浏览器的高度,再输入上面的代码会发现得到数字发生了变化,但是body.clientHeight的数字始终不变。

      但如果我们打开的网站是百度,再输入上面的两种代码会得到下面的结果

      document.body.clientHeight
      1297
      document.documentElement.clientHeight
      1297
      • 1
      • 2
      • 3

      你会发现两个代码得到的数字一样。OK,所有这些疑问我们来解释一下原因。

      这里我要再说一次,网上说的利用body.clientHeight获取浏览器可视窗口高度的方法都是错误的。这里的根本原因在于当我们编写一个网页的时候是否会写!DOCTYPE。至于什么是!DOCTYPE这里不阐述了,不知道可以自行搜索。如果你不写,严格来说这个网页并不符合标准但是依然会显示(准确来说是进入Quirks模式)。在这种模式下body.clientHeight显示的确实是浏览器可见窗口的高度,可这是不规范的。但凡使用!DOCTYPE声明,无论是声明HTML5还是4还是XHTML,body.clientHeight所获取的都是整个body的高度。而document.documentElement.clientHeight则刚好相反,在所有已声明的网页中显示正确的浏览器可视窗口高度。

      而针对上面所说的百度首页的两种代码获取高度一致的问题,其实很容易看到百度首页的style中

      html {
          height: 100%;
      }
      body {
          height: 100%;
      }
      • 1
      • 2
      • 3
      • 4
      • 5

      强制将body和html高度拉至一样,两种代码所显示高度就是一样的了。

      左半红印创作于2021.12.8th
      《BackBone》

      一个看起来卖相相当不错的剧情解密游戏,虽然用的是已经烂大街的像素风美术风格,但有着极其显眼的精致表现。是的,美术相当精致,可以这么说,制作组在用像素风的美术绘制一幅细节相当充实的都市画卷。也正是这一点让游戏至少“看起来”相当可以,实际上几个小时的游戏流程在大部分时候都是OK的。但相信我这么说你也能发现问题,游戏时长仅仅只有几个小时。

      BackBone

      没错,这是个一个半成品游戏,虽然经过了众筹但制作组显然没有能力将游戏昨晚。就在玩家以为我们马上就要经历谷底的反弹的时候游戏结束了。我当然理解无论哪种艺术作品,在结尾的处理都有其自身的考量,有一些作品在结尾处的处理显得十分开放式,让人遐想,但这游戏不是。说到剧情,无论什么形式的作品,这个剧情要让人满意的基本条件是剧中人物所做的事情到最后是有意义的。无论最终剧中主角能否成功吧,至少其经过一整个故事剧情的经历后他的做法是让人能体会到其价值所在。当然我们也知道有一些作品中会描写一些小人物的生活,会描写小人物在大历史环境变迁的过程中的无力。但即便如此最终也会体现出整部作品中小人物的价值所在,不然就是纯粹无意义的表达。而在游戏中这种价值的体现尤为重要。

      在《BackBone》中,玩家扮演着一个浣熊私家侦探,无意中圈进了一场惊天大阴谋中。在游戏的开头游戏借主角之口在反复说自己只是一个小人物无法抗争这个世界。但剧情还要推动,于是生硬的让主角正义感爆发来解决整个事件。好吧,我们不去追究主角动机问题。随着几章剧情游玩下来,玩家期待的是剧情能够逐步揭开一个个谜团,好好解释一下整个阴谋的来龙去脉。结果能,游戏给出的是倒数第二章结尾主角被寄生,最后一章他死了。这算什么?!故事故事没好好讲,剧情还有一大堆问题没解释,主角就死了,结束了。那么前面那么多章的剧情经历有什么意义?我们玩到最后图了个啥?而当我玩到最后的时候我甚至以为这游戏是不是多结局而自己选了个BAD ENDING。结果发现,这游戏就是这样的。所以当你去网上搜索这个游戏的结果就是,大家的评价基本上统一为这个游戏没有做完。因为种种原因草草结尾。这实在难以让人接受。

      左半红印创作于2021.12.6th
      请留下您的足迹

      你可以在这里对本站直接评论

      也可以在任意日志文章内进行评论

      如果你对本站的隐私保护有疑问,请参照上方“关于我”页面

      左半红印创作于2008.11.21st

      发表回复

      您的邮箱地址不会被公开。 必填项已用 * 标注