亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? objcol.cpp

?? Demo Source for a doom like engine using raycasting and voxel
?? CPP
字號:
#include "ray.h"
#include "globals.h"
#include "fixed.h"
#include "blockmap.h"
#include "objcol.h"
#include "abs.h"
#include "sign.h"
#include "rayspr.h"

MYFIXED Dis_Percent(MYFIXED obj_x, MYFIXED obj_y, MYFIXED ms_x, MYFIXED ms_y,
   MYFIXED delta_x, MYFIXED delta_y, MYFIXED move_len_sq) {

MYFIXED pos_on_line;

pos_on_line=fixeddiv(
   fixedmult(obj_x-ms_x, delta_x)+fixedmult(obj_y-ms_y, delta_y),
   move_len_sq);

pos_on_line=fixedsqrtHP(ABS(pos_on_line))*SIGN(pos_on_line);  
return pos_on_line;
}

MYFIXED Obj_Dis(MYFIXED obj_x, MYFIXED obj_y, MYFIXED mf_x, MYFIXED mf_y,
   MYFIXED delta_x, MYFIXED delta_y, MYFIXED move_len) {

MYFIXED dis_result;

dis_result=fixeddiv(
   fixedmult(obj_x-mf_x, -delta_y)-fixedmult(obj_y-mf_y, -delta_x),
   move_len);

return dis_result;
}

void Stop_Obj(pobject move_obj, pobj_collision the_collision) {

the_collision->delta_x=fixedmult(the_collision->dis_percent, 
   the_collision->delta_x);
the_collision->delta_y=fixedmult(the_collision->dis_percent, 
   the_collision->delta_y);

}

void Slide_Obj(pobject move_obj, pobj_collision the_collision) {

MYFIXED intersect_x, intersect_y;
intersect_x=fixedmult(the_collision->dis_percent, the_collision->delta_x);
intersect_y=fixedmult(the_collision->dis_percent, the_collision->delta_y);

MYFIXED delta_y=the_collision->delta_y;
the_collision->delta_y=intersect_y+SIGN(the_collision->dist_from_move)*fixedmult(
   REBOUND_PERCENT, -the_collision->delta_x);
the_collision->delta_x=intersect_x+SIGN(the_collision->dist_from_move)*fixedmult(
   REBOUND_PERCENT, delta_y);

}

BOOL Intersect_Z(pobject obj_1, pobject obj_2) {
if (obj_1->z >= obj_2->z + obj_2->type->height)
   return FALSE;
if (obj_2->z >= obj_1->z + obj_1->type->height)
   return FALSE;

return TRUE;
}

void Find_Closest_Obj_In_List(pobj_collision the_collision,
 pobject_node search_list) {   
if (search_list==NULL)
   return;

pobject_node cur_node;
pobject cur_obj;

MYFIXED dis_percent, dis_from_move, obj_block_percent;

cur_node=search_list;
while (!OL_Empty_Node(cur_node)) {
    cur_obj=cur_node->data;
    // do they even intersect height wise?
    if (Intersect_Z(cur_obj, the_collision->move_obj)) {
    
    // find at what point on move the objects intersect
    dis_percent=Dis_Percent(cur_obj->x, cur_obj->y,
       the_collision->move_obj->x,
       the_collision->move_obj->y,
       the_collision->delta_x,
       the_collision->delta_y, 
       the_collision->move_len_sq);
    obj_block_percent=fixeddiv(cur_obj->type->block_width,
       the_collision->move_len);
    dis_percent-=obj_block_percent;
    
    if (dis_percent>(-obj_block_percent) && dis_percent < ONE) {
    
    dis_from_move = Obj_Dis(cur_obj->x, cur_obj->y, 
       the_collision->dest_x,
       the_collision->dest_y,
       the_collision->delta_x,
       the_collision->delta_y, 
       the_collision->move_len);
       if (ABS(dis_from_move)<
          (the_collision->move_obj->type->obj_width+cur_obj->type->obj_width)) {
          if ( dis_percent < the_collision->dis_percent )
          {
          the_collision->found_collision=TRUE;
          the_collision->col_obj=cur_obj;
          the_collision->dist_from_move=dis_from_move;
          the_collision->dis_percent=dis_percent;
          }
       }
    } 
    }
    cur_node=OL_Next_Node(cur_node);
  }
}

void Check_Obj_Collision(pobj_collision the_collision) {
the_collision->dest_x=the_collision->move_obj->x+the_collision->delta_x;
the_collision->dest_y=the_collision->move_obj->y+the_collision->delta_y;
the_collision->move_len_sq=
  fixedsqr(the_collision->delta_x)+fixedsqr(the_collision->delta_y);
the_collision->move_len=
  fixedsqrtHP(the_collision->move_len_sq);
the_collision->found_collision=FALSE;
the_collision->dis_percent=MAXMYFIXED;

if (the_collision->move_len_sq==0)
   return;

USHORT block_x, block_y;
MYFIXED dest_x, dest_y;
dest_x=the_collision->dest_x;
dest_y=the_collision->dest_y;
block_x=Block_X(dest_x);
block_y=Block_Y(dest_y);

Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x, block_y));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x, block_y+1));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x, block_y-1));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x+1, block_y));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x-1, block_y));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x+1, block_y-1));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x+1, block_y+1));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x-1, block_y-1));
Find_Closest_Obj_In_List(the_collision, *Get_Block_Obj_List(block_x-1, block_y+1));

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大白屁股肥臀xxxxxx| 国产成人久久精品77777最新版本| 欧美xxx久久| 制服丝袜亚洲精品中文字幕| 91国模大尺度私拍在线视频 | 91福利小视频| 99vv1com这只有精品| 成人aa视频在线观看| av电影一区二区| 日本高清不卡在线观看| 色先锋aa成人| 欧美女孩性生活视频| 91精品国产色综合久久不卡蜜臀| 欧美日韩久久一区| 欧美一区二区精品在线| 精品久久一区二区三区| 国产日韩v精品一区二区| 国产精品人人做人人爽人人添| 国产精品久久久久久久久果冻传媒 | 中文字幕一区二区三区乱码在线| 中文字幕欧美一区| 亚洲成人在线网站| 麻豆高清免费国产一区| 国产精品资源在线观看| 91麻豆高清视频| 欧美日韩夫妻久久| 久久嫩草精品久久久久| 亚洲欧美日韩在线不卡| 日韩电影在线看| 国产91精品久久久久久久网曝门| 99精品欧美一区| 91麻豆精品国产自产在线| 久久久久国产精品麻豆| 一区二区三区日韩精品| 蜜臀a∨国产成人精品| 波多野结衣中文字幕一区| 欧美日韩专区在线| 日本一区免费视频| 天天综合色天天| av中文字幕在线不卡| 欧美一区二区福利在线| 亚洲三级在线观看| 国产一区啦啦啦在线观看| 一本大道av伊人久久综合| 日韩精品在线看片z| 亚洲欧美一区二区三区久本道91 | 日韩精品久久理论片| 国产99久久久国产精品潘金| 欧美午夜精品电影| 国产精品色哟哟网站| 奇米777欧美一区二区| 99国产精品久久久久久久久久| 欧美一区二区人人喊爽| 亚洲免费观看高清完整版在线| 精品一区二区免费在线观看| 欧洲在线/亚洲| 最新日韩av在线| 国产夫妻精品视频| 精品美女在线观看| 午夜精品久久久久久久| 91久久国产综合久久| 国产欧美精品一区| 国内精品国产三级国产a久久| 欧美精品高清视频| 亚洲高清免费在线| 色综合天天做天天爱| 国产精品色哟哟| 国产91丝袜在线播放0| 欧美精品一区二区三区很污很色的| 日韩经典一区二区| 欧美日韩在线免费视频| 亚洲精品久久久蜜桃| 99re成人精品视频| 自拍偷拍亚洲欧美日韩| 成人丝袜视频网| 亚洲婷婷综合色高清在线| 国产黄色精品网站| 欧美国产禁国产网站cc| 国产成人免费网站| 国产精品日产欧美久久久久| 成人av电影在线播放| 国产精品卡一卡二| 99国产精品久久久久久久久久| 中文字幕在线不卡国产视频| 91丝袜国产在线播放| 亚洲三级在线免费| 欧美日韩一区二区欧美激情| 日韩成人伦理电影在线观看| 日韩精品一区在线| 国产精品白丝av| 国产精品久久免费看| 97aⅴ精品视频一二三区| 亚洲精选视频在线| 4438x亚洲最大成人网| 国产综合色在线| 一区在线中文字幕| 欧美日韩免费观看一区三区| 日韩av一区二区三区| 亚洲精品在线三区| 一本一本久久a久久精品综合麻豆| 亚洲女人小视频在线观看| 欧美日韩国产另类一区| 精品亚洲porn| 亚洲欧洲日韩综合一区二区| 欧美日韩一区三区四区| 狠狠色综合日日| 亚洲人成网站在线| 日韩精品最新网址| 色偷偷成人一区二区三区91| 日日欢夜夜爽一区| 国产精品伦一区| 欧美日韩精品一区二区在线播放| 久久91精品国产91久久小草| 国产精品国产精品国产专区不蜜| 欧美天堂一区二区三区| 国产一区二区三区| 亚洲二区视频在线| 国产欧美久久久精品影院| 欧美日韩国产系列| www.欧美色图| 精品一区二区三区蜜桃| 一区二区三区精品久久久| 久久久久久免费毛片精品| 欧美三级一区二区| 波多野结衣中文字幕一区二区三区| 视频一区在线播放| 亚洲精选一二三| 国产欧美日韩在线| 欧美成人乱码一区二区三区| 色婷婷综合在线| 丁香激情综合五月| 精品综合久久久久久8888| 五月天一区二区三区| 亚洲特黄一级片| 中国色在线观看另类| 精品国产乱码久久久久久影片| 欧美视频你懂的| 一本到高清视频免费精品| 国产精品夜夜爽| 久久99九九99精品| 日本午夜精品视频在线观看| 一区二区三区久久| 亚洲男女一区二区三区| 中文字幕va一区二区三区| 精品成人一区二区| 日韩色视频在线观看| 51精品视频一区二区三区| 欧美人牲a欧美精品| 91久久奴性调教| 日本精品一区二区三区高清| 95精品视频在线| av日韩在线网站| 91在线精品一区二区三区| 成人网在线免费视频| 成人小视频免费在线观看| 懂色av一区二区三区免费看| 国产成人亚洲综合a∨婷婷| 激情欧美一区二区三区在线观看| 久久精品国产秦先生| 久久99九九99精品| 国产精品88av| 波多野结衣亚洲一区| 99re这里只有精品首页| 91日韩精品一区| 欧美午夜精品久久久久久孕妇 | 亚洲欧美一区二区三区国产精品| 国产精品久久久久久久久晋中 | 婷婷开心久久网| 午夜电影一区二区三区| 奇米精品一区二区三区在线观看一| 五月激情综合网| 久久69国产一区二区蜜臀| 精品一区二区三区久久久| 成人亚洲一区二区一| 99精品视频一区二区三区| 欧美日韩电影在线| 欧美电影免费观看完整版| 久久精品综合网| 有坂深雪av一区二区精品| 日韩不卡一区二区三区| 国产精品1区2区3区在线观看| 91丝袜美腿高跟国产极品老师 | 一区二区三区在线观看视频| 亚洲成av人**亚洲成av**| 激情久久久久久久久久久久久久久久| 国产综合色精品一区二区三区| av电影一区二区| 欧美精品一二三区| 亚洲国产精品高清| 午夜国产精品一区| 国产成人精品影视| 欧美午夜电影网| 国产欧美久久久精品影院| 日韩和欧美一区二区| 99视频精品免费视频| 日韩欧美一区二区视频| 亚洲女厕所小便bbb| 老司机精品视频导航| 欧洲视频一区二区| 国产精品情趣视频|