Lazuplis-Mei / pvzclass

pvzclass 是一个用于控制植物大战僵尸游戏内部运行实体的一套框架
234 stars 56 forks source link

物品和字符串相关 #32

Closed Moon-404 closed 3 years ago

Moon-404 commented 3 years ago

请问创建物品(比如一个植物卡片)功能和在界面下方的字符显示区域的相关功能(如设置显示内容、持续时间等)目前有没有实现,我找了半天没找到相应的使用方法……

Lazuplis-Mei commented 3 years ago

如果你想要创建什么,那么应该使用Creater名称空间里的函数,如果你真的去找的话,那自然是有的 创建物品应使用Creater::CreateCoin,如果是植物卡片,则应手动设置卡片的类型,正常来说直接设置Coin的属性ContentCard即可,但是这里面可能有一个问题,最好是先将42FFB9写为0(4字节整数)以确保万无一失(这个操作只需要最开始的时候执行一次即可) 创建界面下方的字幕应使用Creater::CreateCaption,文字内容和持续时间都是这个函数的参数

Moon-404 commented 3 years ago

感谢您的回复,我确实找过了,不过我当时认为Coin和Card不是同一类东西,原谅我英语水平不好以至于没意识到Caption是字幕的意思。

另外,我发现了一些小问题和疑惑:

  1. Creater::CreateZombie 在生成雪橇车僵尸和投篮车僵尸的时候有概率会把最后一排的植物压扁
  2. Creater::CreateCoin 似乎X参数和Y参数写反了
  3. 直接更改 PVZ::Plant 的 Sleeping 似乎不会取消掉 zzz 效果,有什么解决方法吗
Lazuplis-Mei commented 3 years ago

CreateZombie是汇编调用游戏内函数的,即使你认为存在问题,那也是汇编上的问题了(这可能是为了返回僵尸对象指针所做出的必要的修改所导致的副作用),请原谅我不会再尝试解决它,尽管它可以通过简单地用另一个更底层的汇编函数来解决

CreateCoin的x和y,我看了一下汇编的栈参数,确实是写反了,这个你改一下就好了

至于那个zzz效果需要用汇编函数解决,好消息是我曾经有这个函数的记录(这意味着我有能力再找到它),坏消息是我已经删除了我的所有资料,并且我不是很乐意再去找

总体来说,我事实上早已经不再更新这个项目,如果你查看一下历史提交记录的话,就会发现近期(其实有段时间了)贡献代码的都不是我,虽然他们目前为止并没有做任何核心工作,也就是关于汇编调用的部分,但是你也不是不可以期待别人帮你修正这个问题

所有我能做的最多的就只是口头解释一下,除非你有什么稍微不那么普通一点的理由可以说服我再出山一次,或者答应我一个小小的条件(原谅我还没有想好),如果你很急的话,我确实可以马上试着解决这些问题,你只需要记得就可以了

Moon-404 commented 3 years ago

感谢回复,不知道为什么我没有受到您回复我的系统通知邮件,所以并没有及时回应。 我只是目前还有一些有意思的想法想通过pvzclass来实现,但是我估计等我没有有意思的想法的时候,我也会离开这个小圈子吧。 我会自己尽全力尝试解决我遇到的一切困难,如果实在没有头绪我会发issue,您的口头回答已经对我是巨大的帮助了。 再次感谢,祝您一切顺利。