zoukankan      html  css  js  c++  java
  • 个人总结

    任务

    我的任务是完成所有代码的拼接以及游戏主体的实现

    思路设计

    游戏主体的实现:利用键盘输入的wsad以及上下左右来控制双方英雄的移动。当两个英雄的坐标位置在各自的四面八方的时候,双方自动攻击 ,自动掉血。防御塔和英雄间的机制和英雄与英雄间的机制一样。当英雄死亡后,10s后自动复活。英雄每秒可获得20经验,升级可获得技能。

    void drawinfor() // 用于输出当前英雄,防御塔的血量,
    {
    	Set_mouse(10, 10);
    	cout<<hero1[0]->name<<" :   ";
    	cout<<hero1[0]->HP<<"   ";//hero1[0],hero1[1]分别为选中的两个英雄
    	Set_mouse(10, 20);
    	cout<<hero1[1]->name<<" :   ";
    	cout<<hero1[1]->HP<<"   ";
    	Set_mouse(30, 10);
    	cout<<p1.name<<" :  ";
    	cout<<p1.HP<<"  ";
    	Set_mouse(30, 20);
    	cout<<p2.name<<" :  ";
    	cout<<p2.HP<<"  ";
    }
    
    void attack()
    {
    	if((hero1[0]->x==hero1[1]->x-1)){//英雄间的攻击
    			if((hero1[0]->y==hero1[0]->y+1)||(hero1[0]->y==hero1[0]->y)||(hero1[0]->y==hero1[0]->y-1))
    			{
    				hero1[0]->Attack(*hero1[1]);
    				hero1[1]->Attack(*hero1[0]); 
    			} 
    		}
    		else if(hero1[0]->x==hero1[1]->x+1){
    				if((hero1[0]->y==hero1[0]->y+1)||(hero1[0]->y==hero1[0]->y)||(hero1[0]->y==hero1[0]->y-1))
    			{
    				hero1[0]->Attack(*hero1[1]);
    				hero1[1]->Attack(*hero1[0]); 
    			} 
    		}
    		p1.attack_action(*hero1[1]);//防御塔的攻击
    		p2.attack_action(*hero1[0]);
    		s1.recovery(*hero1[1]);// 泉水的回血
    		s2.recovery(*hero1[0]);
    }
    
    // 控制英雄的移动。
    void input()
    {
    	char move1=0,move2=0;
    	if(kbhit())
    	{
    		move1=getch();
    		if(move1>90)
    		{
    			move2=move1;
    			move1=0;
    		}
    	}
    	move(move1,move2);
    }
    

    代码的拼接一开始我以为很简单,只要互相调用来调用去就OK了。结果在大家完成任务之后,我发现函数参数和自己想的不太一样。我才意识到当初在商讨的时候并没有具体到统一接口,导致我在代码结合的时,不得不重新自己修改代码间的接口。又是第一次做这种小项目,在这个方面花了不少时间。

  • 相关阅读:
    C++中pair的用法
    DFS例题:力扣200:岛屿数量
    DFS例题:力扣695:岛屿的最大面积
    DFS深度优先遍历
    java AQS源码分析
    spring实现事务原理
    java常见并发面试题目+示例代码
    java并发锁
    ThreadPoolExecutor
    线程通信
  • 原文地址:https://www.cnblogs.com/ruanjunxi/p/9242719.html
Copyright © 2011-2022 走看看