• Cocos2d-x-3.7 С++ Как нарисовать линию мышкой?

    FootWork
    @FootWork Автор вопроса
    class Line
    {
    public:
    	std::vector<cocos2d::CCPoint> curve;
    };
    class HelloWorld
    {
        //.....
    private:
        cocos2d::DrawNode *_drawNode;
        std::vector<Line> m_lines;
        Line * newLine;
    };
    bool HelloWorld::Init()
    {
        //...
        _drawNode = DrawNode::create();
        this->addChild(_drawNode);
       _drawNode->clear();
    }
    bool HelloWorld::onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event)
    {
        CCPoint touchLocation = touch->getLocationInView();
        touchLocation = CCDirector::sharedDirector()->convertToGL(touchLocation);
        touchLocation = convertToNodeSpace(touchLocation);
        createLine(touchLocation);    
       return true;
    }
    
    void HelloWorld::onTouchMoved(Touch* touch, Event* event)
    {
        CCPoint touchLocation = touch->getLocationInView();
        touchLocation = CCDirector::sharedDirector()->convertToGL(touchLocation);
        touchLocation = convertToNodeSpace(touchLocation);
        addPoint(touchLocation);
        HelloWorld::drawing();
    }
    
    void HelloWorld::onTouchEnded(Touch* touch, Event* event)
    {
        deleteLine();
    }
    
    void HelloWorld::createLine(cocos2d::CCPoint tloc)
    {
        newLine = new Line;
        (newLine->curve).push_back(tloc);
    }
    void HelloWorld::deleteLine()
    {
        delete newLine;
        newLine = NULL;
    }
    void HelloWorld::addPoint(cocos2d::CCPoint tloc)
    {
        (newLine->curve).push_back(tloc);
    }
    void HelloWorld::drawing()
    {
        int m = (newLine->curve).size();
        for(int i=1; i < m; i++)
        {
            _drawNode->drawLine(newLine->curve[i-1], newLine->curve[i], Color4F::BLUE);
        }
    }
    Ответ написан
    Комментировать
  • Как сделать парсер на php с использованием cURL с авторизацией?

    FootWork
    @FootWork Автор вопроса
    Доделал. В результате код авторизации получился такой:
    <?php
    
    $url = 'http://fantasts.ru/forum/index.php?act=Login&CODE=01&CookieDate=1';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); // отправляем на 
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"); 
    curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
    curl_setopt($ch, CURLOPT_REFERER, "http://fantasts.ru/forum/index.php");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата 
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/my_cookies.txt'); // сохранять куки в файл
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/my_cookies.txt');
    curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
    $login = array(
    	'UserName' => 'YourLogin',
    	'PassWord' => 'YourPass'
    );
    curl_setopt(($ch), CURLOPT_POSTFIELDS, $login);
    $result1 = curl_exec($ch);
    $url2 ='http://fantasts.ru/forum/index.php?';
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_REFERER, "http://fantasts.ru/forum/index.php?act=Login&CODE=01&CookieDate=1");
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/my_cookies.txt');
    $result2 = curl_exec($ch);
    if (curl_errno($ch)) 
    {
       print curl_error($ch);
       exit;
    }
    else
    {
    	echo 'LOGIN WAS SUCCESFULL';
    	echo $result2;
    }
    curl_close($ch);
    
    ?>


    Объясните только, почему когда я ставлю
    curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки

    Все норм (хотя как он работает без заголовков??)
    А если пытаюсь еще больше быть похожим на браузер, т.е. пишу
    $header  = array
    (
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
        'Accept-Encoding: gzip, deflate',
        'Content-type: application/x-www-form-urlencoded'
    );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

    На выходе получаю кракозябры, которые ни один декодер не понимает
    Ответ написан
    Комментировать