最近写了一个游戏,刚开始写的时候没有想过这个问题,问题大概是:主函数中,先判定地图中的怪物的自主移动和自主攻击,然后判定键盘和鼠标的按键来实现人物的移动,最后无论有没有键鼠按键 都执行一次刷新界面函数(也就是把人和怪物都显示出来),通过无线循环主函数实现了人物的移动和怪物的移动,但是后面要添加人物攻击怪物的动作的时候发现没有办法添加动作(也就是陆续显示多个动作图片达到动画的目的)。
攻击函数大概是这样:主函数中如果判定到键盘输入“J”键就调用攻击函数,攻击函数中显示人物动作,如果不用多线程的话,这个函数的调用过程中因为怪物的自主移动和自主攻击都在主函数中运行,攻击函数未结束之前都无法实现主函数的调用,也就是说在执行人物攻击动作的时候其他一切都会是静止的。
如果以子线程形式调用攻击函数,因为主函数有刷新界面的功能,每次刷新界面都会把之前的动作给覆盖掉,攻击的动作就没办法正常显示。
现在的思路是:人和怪物等物体都以对象的形式在多线程中运行,主函数就只循环执行刷新显示界面的功能,不过还没修改过来也不知道行不行。
有没有更好的办法实现呢...求助大佬