99nets全国最大稀有游戏社区! 广告服务

99NETS网游模拟娱乐社区

 找回密码
 立即注册
搜索
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
查看: 4548|回复: 1
打印 上一主题 下一主题

[源码] 稀有源码-FruitNinja水果忍者-完整源码

[复制链接]

新手上路

Rank: 1

UID
151552
帖子
3
威望
0
久币
0
贡献
0
阅读权限
10
在线时间
0 小时
注册时间
2019-5-18
跳转到指定楼层
楼主
发表于 2019-5-25 23:57:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       
游戏《水果忍者》完整游戏源码,代码下载下来打开工程直接可以编译通过运行
可以生成安卓apk包,winows,ios环境下跨平台运行
100%完整代码,源码编译 无bug运行
刀光算法
  1. void CFControlLayer::drawLine(CCPoint startPoint,CCPoint endPoint)
  2. {
  3.         int dx, dy, p, c1, c2, x, y, xinc, yinc, i;
  4.         dx = startPoint.x - endPoint.x;
  5.         dy = startPoint.y - endPoint.y;
  6.         xinc = getSingle(dx);
  7.         yinc = getSingle(dy);
  8.         dx = dx>0?dx:-dx;
  9.         dy = dy>0?dy:-dy;
  10.         x = startPoint.x;
  11.         y = startPoint.y;
  12.         ccPointSize(1);
  13. //设置后面要进行绘制时所用的色彩
  14.         ccDrawColor4B(0,0,255,128);
  15.         if (dx >= dy)
  16.         {
  17.                 p = (dy << 1) - dx;
  18.                 c1 = dy << 1;
  19.                 c2 = (dy - dx) << 1;
  20.                 for (i = 0; i <= dx; i++)
  21.                 {
  22.                         ccDrawPoint(ccp(x,y));
  23.                         if (p < 0)
  24.                         {
  25.                                 p += c1;
  26.                         }
  27.                         else
  28.                         {
  29.                                 p += c2;
  30.                                 y += yinc;
  31.                                 ccDrawPoint(ccp(x,y));
  32.                         }
  33.                         x += xinc;
  34.                 }
  35.         }
  36.         else
  37.         {
  38.                 p = (dx << 1) - dy;
  39.                 c1 = dx << 1;
  40.                 c2 = (dx - dy) << 1;
  41.                 for (i = 0; i <= dy; i++)
  42.                 {
  43.                         ccDrawPoint(ccp(x,y));
  44.                         if (p < 0)
  45.                         {
  46.                                 p += c1;
  47.                         }
  48.                         else
  49.                         {
  50.                                 p += c2;
  51.                                 x += xinc;
  52.                                 ccDrawPoint(ccp(x,y));
  53.                         }
  54.                         y += yinc;
  55.                 }
  56.         }
  57. }
  58. CCPoint CFControlLayer::getPoint(CCPoint startPoint,CCPoint endPoint,int dx,int dy,int num)
  59. {
  60.         int p, c1, c2, x, y, xinc, yinc, i;
  61.         xinc = getSingle(dx);
  62.         yinc = getSingle(dy);
  63.         dx = dx>0?dx:-dx;
  64.         dy = dy>0?dy:-dy;
  65.         x = endPoint.x;
  66.         y = endPoint.y;
  67.         if (dx >= dy)
  68.         {
  69.                 p = (dy << 1) - dx;
  70.                 c1 = dy << 1;
  71.                 c2 = (dy - dx) << 1;
  72.                 for (i = 0; i <= num; i++)
  73.                 {
  74.                         if (p < 0)
  75.                         {
  76.                                 p += c1;
  77.                         }
  78.                         else
  79.                         {
  80.                                 p += c2;
  81.                                 y += yinc;
  82.                         }
  83.                         x += xinc;
  84.                 }
  85.         }
  86.         else
  87.         {
  88.                 p = (dx << 1) - dy;
  89.                 c1 = dx << 1;
  90.                 c2 = (dx - dy) << 1;
  91.                 for (i = 0; i <= num; i++)
  92.                 {
  93.                         if (p < 0)
  94.                         {
  95.                                 p += c1;
  96.                         }
  97.                         else
  98.                         {
  99.                                 p += c2;
  100.                                 x += xinc;
  101.                         }
  102.                         y += yinc;
  103.                 }
  104.         }
  105.         CCPoint point(x,y);
  106.         return point;
  107. }
  108. void CFControlLayer::drawHead(/*CCPoint startPoint,CCPoint endPoint*/)
  109. {
  110.         int dx,dy;
  111.         CCPoint startPoint , endPoint ;
  112.         if (m_pointArray->count()<2)
  113.         {
  114.                 return;
  115.         }
  116.         endPoint = m_pointArray->getControlPointAtIndex(m_pointArray->count()-1);        //最后一个点
  117.         startPoint= m_pointArray->getControlPointAtIndex(m_pointArray->count()-2);                //倒数第二个点
  118.         dx = endPoint.x-startPoint.x  ;
  119.         dy = endPoint.y -startPoint.y ;

  120.         CCPoint dingdian,shangb,xiab;
  121.         dingdian = getPoint(startPoint,endPoint,dx,dy,20);
  122.         shangb = getPoint(startPoint,endPoint,-dy,dx,5);
  123.         xiab = getPoint(startPoint,endPoint,dy,-dx,5);


  124.          CCPoint vertices5[] = {shangb,dingdian,xiab};
  125.         ccDrawSolidPoly( vertices5, 3, ccc4f(255,255,255,255) );
  126.          glLineWidth(2);
  127.         ccDrawColor4B(17, 164 ,246,255);
  128.         ccDrawPoly(vertices5,3,false);

  129.         glLineWidth(1);
  130.         ccDrawColor4B(255,255,255,255);

  131. }

  132. void CFControlLayer::drawReal(/*CCPoint startPoint,CCPoint endPoint*/)
  133. {
  134.         int dx,dy;
  135.         CCPoint startPoint , endPoint ;
  136.         int width = 6-m_pointArray->count();
  137.         if (m_pointArray->count()<2)
  138.         {
  139.                 return;
  140.         }
  141.         endPoint = m_pointArray->getControlPointAtIndex(1);        
  142.         startPoint= m_pointArray->getControlPointAtIndex(0);
  143. //        ccDrawLine(startPoint,endPoint);
  144.         dx = startPoint.x - endPoint.x;
  145.         dy = startPoint.y- endPoint.y ;

  146.         CCPoint dingdian,shangb,xiab;
  147.         dingdian = getPoint(endPoint,startPoint,dx,dy,20);
  148.         if(m_pointArray->count()==2)
  149.         {
  150.                 shangb = getPoint(endPoint,startPoint,-dy,dx,2);
  151.                 xiab = getPoint(endPoint,startPoint,dy,-dx,2);
  152.         }
  153.         else
  154.         {
  155.                 shangb = getPoint(endPoint,startPoint,-dy,dx,width);
  156.                 xiab = getPoint(endPoint,startPoint,dy,-dx,width);
  157.         }

  158.         CCPoint vertices5[] = {dingdian,shangb,xiab};
  159.         ccDrawSolidPoly( vertices5, 3, ccc4f(255,255,255,255) );
  160.         ccDrawPoly(vertices5,3,true);

  161. }

  162. void CFControlLayer::drawCentre(/*CCPoint startPoint,CCPoint endPoint*/)
  163. {
  164.         int dx,dy;

  165. CCPoint startPoint , endPoint ;
  166.         if (m_pointArray->count()<2)
  167.         {
  168.                 return;
  169.         }
  170.         int count = 6;
  171.         int width = 6-m_pointArray->count();
  172.         for(int i = 0; i<m_pointArray->count()-1;i++)
  173.          {
  174.                 endPoint = m_pointArray->getControlPointAtIndex(i+1);
  175.                  startPoint= m_pointArray->getControlPointAtIndex(i);        
  176.                 dx = endPoint.x-startPoint.x  ;
  177.                 dy = endPoint.y -startPoint.y ;

  178.                 CCPoint endPointS,endPointX,startPointS,startPointX;
  179.                 if (m_pointArray->count()==2)
  180.                 {//这样写有点瑕疵,以后在写
  181.                         startPointS = getPoint(endPoint,startPoint,-dy,dx,2);
  182.                         startPointX = getPoint(endPoint,startPoint,dy,-dx,2);
  183.                         endPointS = getPoint(startPoint,endPoint,-dy,dx,5);
  184.                         endPointX = getPoint(startPoint,endPoint,dy,-dx,5);
  185.                 }
  186.                 else
  187.                 {
  188.                         startPointS = getPoint(endPoint,startPoint,-dy,dx,width);
  189.                         startPointX = getPoint(endPoint,startPoint,dy,-dx,width);
  190.                         width++;
  191.                         endPointS = getPoint(startPoint,endPoint,-dy,dx,width);
  192.                         endPointX = getPoint(startPoint,endPoint,dy,-dx,width);
  193.                 }
  194.                 CCPoint vertices1[] = {endPointS,endPointX,startPointS};
  195.                 CCPoint vertices2[] = {startPointS,startPointX,endPointX};
  196.                  ccDrawSolidPoly( vertices1,3, ccc4f(255,255,255,20) );
  197.                  ccDrawSolidPoly( vertices2,3, ccc4f(255,255,255,20) );

  198.                 if (centrePoint.x==startPoint.x&& centrePoint.y == startPoint.y)
  199.                 {
  200.                         CCPoint vertices3[] = {centrePoint,lastUp,startPointS};
  201.                         CCPoint vertices4[] = {centrePoint,startPointX,laseDown};
  202.                         ccDrawSolidPoly( vertices3,3, ccc4f(255,255,255,255) );
  203.                         ccDrawSolidPoly( vertices4,3, ccc4f(255,255,255,255) );
  204.                 }

  205.                 centrePoint = endPoint;
  206.                 lastUp = endPointS;
  207.                 laseDown = endPointX;
  208.         }

  209. }



  210. void CFControlLayer::drawDaoguang()
  211. {
  212.         if (m_pointArray->count()<2)
  213.         {
  214.                 return;
  215.         }

  216.         drawReal();
  217.         drawCentre();
  218.         drawHead();

  219. }
复制代码
回复

使用道具 举报

新手上路

Rank: 1

UID
151552
帖子
3
威望
0
久币
0
贡献
0
阅读权限
10
在线时间
0 小时
注册时间
2019-5-18
来自 2#
 楼主| 发表于 2019-5-25 23:58:41 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Copyright ©2013 99Nets.CoM All Right Reserved.  Powered by Discuz! (已备案)

本站信息均由会员发表,不代表99nets立场,如侵犯了您的权利请发帖投诉 安全联盟

平平安安
TOP
快速回复 返回顶部 返回列表