※ 引述《ssddy (雨劍)》之銘言:
: 查了網路上寫
: double x = 0.0, y = 0.0, z = 0.0; //傳入三變數
: Node *thisnode; // 宣告指標
: thisnode = Node::get_node_by_address(index); ←這行make時出現error
: ((MobileNode *)thisnode)->getLoc(&x, &y, &z);
: 可是我把這幾行加入recv function時,make出現錯誤(如上標示)。
: invalid conversion from 'char*<*>const char*,int>'to 'nsaddr_t>'
: initializing argument 1 of 'static Node* Node::get_node_by_address<nsaddr_t>'
: 請問要怎麼改才能正確抓到座標呢?@@
試試看用這招
到 mobile/god.h
把 MobileNode **mb_node; 改成public:
然後到你要使用getLoc的file中加入
#include <mobile/god.h>
God::instance()->mb_node[index]->getLoc(&x, &y, &z);
然後build clean,應該就能執行了
-
基本上這招很好用,所有跨node之間的資料存取都能夠過God處理
只要仿照MobileNode **mb_node;建立一個MobileData **mb_data;
就能夠用mb_data[index]的方式存取所有想要跨節點的資料
以這招作弊的方法,很多ns跨節點的問題都能解決,
甚至是跨層的問題也可以用這個偷吃步處理