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

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

?? kick.c

?? robocup 卡梅隆99源代碼!本人沒怎么看明白!望大家一起研究
?? C
?? 第 1 頁 / 共 3 頁
字號:
  if (!Mem->BallVelocityValid()) {    DebugKick(printf("In dokick with velocity not valid. Assuming it's 0."));    Mem->LogAction2(130, "dokick: assuming vel 0");  }    if (Mem->BallVelocityValid() &&      Mem->BallAbsoluteVelocity() != 0) { /* correct for ball velocity */    Vector tmp = Polar2Vector(v0, ddir) - Mem->BallRelativeToBodyVelocity();    kick_dir = tmp.dir();    power = tmp.mod() / Mem->BallKickRate();    DebugKick(printf(" Correcting for ball velocity# vel.x: %f\tvel.y:%f\n",	  Mem->BallRelativeVelocity().x, Mem->BallRelativeVelocity().y));    DebugKick(printf(" New stuff# power: %f\t ddir:%f\n", power, kick_dir));    Mem->LogAction4(130, "dokick: vel corr: %f at %f", power, kick_dir);  } else {    Mem->LogAction2(130, "dokick: vel is 0");    power = v0  / Mem->BallKickRate();  }    if (power > Mem->SP_max_power) {    DebugKick(printf("Trying to kick over SP_max_power! Correcting...\n"));    //Mem->LogAction2(130, "dokick: trying to kick too hard, correcting");    if (!Mem->BallVelocityValid() || Mem->BallAbsoluteVelocity() == 0) {      power = Mem->SP_max_power;      Mem->LogAction4(130, "dokick: max_pow corr: (stopped ball) %f at %f",		      power, kick_dir);    } else if (ddist == 0) {      /* this is probably a stop_ball kick, but ddir is meaningless for	 the RayCircleIntersection below.	 Therefore, we just kick against the ball's velocity */      kick_dir = GetNormalizeAngleDeg(Mem->BallRelativeToBodyHeading() + 180);      power = Mem->SP_max_power;      Mem->LogAction4(130, "dokick: max_pow corr: (ddist = 0) %f at %f",		      power, kick_dir);    } else {      /* this is a ray circle intersection problem         We want to kick in the right direction, but not as hard as desired */      Vector sol1, sol2;      int numSol;      Vector vNewTraj;      numSol =	RayCircleIntersect(Ray(Mem->BallRelativeToBodyPosition(), ddir),			   Mem->SP_max_power * Mem->BallKickRate(),			   Mem->Global2RelativeToMyBody(Mem->BallPredictedPosition()),			   &sol1, &sol2);      /* we want the solution that's furthest along the ray - that's sol2	 if there are two solution */      if (numSol == 0) {	/* we can't kick ball to desired trajectory, so let's just slow it	   down by kicking directly against velocity	   It might be better to return an error and have the caller decide	   what to do, but this works pretty well */	DebugKick(printf("Can't kick ball to right trajectory!\n"));	power = Mem->SP_max_power;	kick_dir = Mem->BallRelativeToBodyHeading() + 180;	if (pCanKickToTraj)	  *pCanKickToTraj = FALSE;	Mem->LogAction4(130, "dokick: max_pow corr: can't get to trajectory! %.2f at %.2f",			power, kick_dir);      } else {	if (numSol == 1) {	  vNewTraj = sol1;	} else if (numSol == 2) {	  /* we want the solution closer to the target point we wanted */	  Vector targ = Mem->BallRelativeToBodyPosition() + Polar2Vector(v0, ddir);	  Mem->LogAction8(130, "dokick: 2 solutions (%.2f, %.2f) (%.2f, %.2f) targ (%.2f, %.2f)",			 sol1.x, sol1.y, sol2.x, sol2.y, targ.x, targ.y);	  if (sol1.dist2(targ) < sol2.dist(targ)) {	    Mem->LogAction4(140, "Picked sol1: %.2f < %.2f",			    sol1.dist2(targ), sol2.dist2(targ));	    vNewTraj = sol1;	  } else {	    Mem->LogAction4(140, "Picked sol2: %.2f > %.2f",			    sol1.dist2(targ), sol2.dist2(targ));	    	    vNewTraj = sol2;	  }	  	} else {	  my_error("dokick: How many solutions to RayCircleIntersection? %d", numSol);	}		Vector vNewKick = vNewTraj -	  Mem->Global2RelativeToMyBody(Mem->BallPredictedPosition());	power = vNewKick.mod() / Mem->BallKickRate();	kick_dir = vNewKick.dir();	DebugKick(printf(" Correcting for ball velocity AND max power# vel.x: %f\tvel.y:%f\n",	       Mem->BallRelativeVelocity().x, Mem->BallRelativeVelocity().y));	DebugKick(printf("New stuff# power: %f\t dir:%f\n", power, kick_dir));	Mem->LogAction4(130, "dokick: max_pow corr: %f at %f", power, kick_dir);      }    }      }   power = Min(Round(power, -2), Mem->SP_max_power);  kick_dir = Round(kick_dir, -2);  NormalizeAngleDeg(&kick_dir);  DebugKick(printf("kicking with power: %f at dir: %f\n", power, kick_dir));  com.time = Mem->CurrentTime;  com.power = power;  com.angle = kick_dir;  return com;}/* all the turnball reasoning is done in relative (to body) coordinates   call this before calling dokick to correct for movement of the player */void PlayerMovementCorrection(AngleDeg* pdir, float* pdist){  Mem->LogAction4(110, "Player movement correction: before dist: %f at dir: %f",		 *pdist, *pdir);  DebugKick(printf("Before corr- dir: %f\t dist: %f\n", *pdir, *pdist));  Vector vRelBallTarg = Mem->BallRelativeToBodyPosition() +    Polar2Vector(*pdist, *pdir);  Vector vNewRelTarg = Mem->MyPredictedPosition() +    vRelBallTarg - Mem->MyPos();  Vector vNewRelTraj = vNewRelTarg - Mem->BallRelativeToBodyPosition();  *pdir  = vNewRelTraj.dir();  *pdist = vNewRelTraj.mod();  DebugKick(printf("After corr- dir: %f\t dist: %f\n", *pdir, *pdist));  Mem->LogAction4(110, "Player movement correction: after dist: %f at dir: %f",		 *pdist, *pdir);}/* kick ball so that it is at angle ddir and dist EndDist   If you have to kick around the player, kick rotway(clockwise or counter-)   *//* we always reason about the right trajectory for the ball leave velocity   correction for dokick */KickToRes turnball_kick(AngleDeg target_dir, TurnDir rotate, 		  Bool StopBall, TurnKickCommand* pCom,		  float EndDist, float closeMarg, float kickFac){  float dir;  float dist;  Vector btraj;  pCom->time = -1;  pCom->turn_neck = FALSE;    DebugKick(printf("\nat turnball_kick: target_dir: %f\n", target_dir));  Mem->LogAction4(60, "Turnball_kick: targ_dir: %.1f  dir: %d", target_dir, (int)rotate);    NormalizeAngleDeg(&target_dir);    //DebugKick(printf("HERE Time: %d\n", Mem->CurrentTime.t));  /* the pos valid is not really right - if we are turning the ball and didn't     actually see it last time, then there's a problem */  if ( !Mem->BallPositionValid() || !Mem->BallKickable() ) {    Mem->LogAction2(90, "turnball_kick: lost the ball");    return KT_LostBall;  }  /* if the velocity isn's valid, turn to face ball */  if ( !Mem->BallVelocityValid() ) {    float ball_ang_from_body = Mem->BallAngleFromBody(); /* for efficiency */    Mem->LogAction2(90, "turnball_kick: vel is not valid, looking at it");    DebugKick(printf("turning to face ball\n"));    if (Mem->CanSeeBallWithNeck()) {      pCom->time = Mem->CurrentTime;      pCom->type = CMD_kick;      pCom->angle = ball_ang_from_body + 180;      pCom->power = Mem->CP_stop_ball_power;      pCom->turn_neck = TRUE;      pCom->turn_neck_angle = Mem->LimitTurnNeckAngle(Mem->BallAngleFromNeck());    } else {      /* turn body to face ball, and turn neck to straight ahead */      pCom->time = Mem->CurrentTime;      pCom->type = CMD_turn;	pCom->turn_neck = TRUE;      if (fabs(ball_ang_from_body) > Mem->MaxEffectiveTurn()) {	/* out body can't get to where we want to go */	pCom->angle = 180; /* get our maximum effective turn */	pCom->turn_neck_angle = ball_ang_from_body -	  signf(ball_ang_from_body)*Mem->MaxEffectiveTurn();      } else {	pCom->angle = ball_ang_from_body;	pCom->turn_neck_angle = -Mem->MyNeckRelAng();      }          }        return KT_TurnedToBall;  }     DebugKick(printf(" ball.dist: %f\t.dir: %f\n",	 Mem->BallDistance(), Mem->BallAngle()));  DebugKick(printf(" HERE ball.vel.x: %f\t.y: %f\tmod: %f\n",	 Mem->BallRelativeVelocity().x, Mem->BallRelativeVelocity().y,	 Mem->BallSpeed()));  DebugKick(printf(" ball.rpos.x: %f\t.y: %f\n",	 Mem->BallRelativePosition().x, Mem->BallRelativePosition().y));  DebugKick(printf(" target_dir: %f\n", target_dir));  if ( fabs(GetNormalizeAngleDeg(target_dir - Mem->BallAngleFromBody())) < Mem->CP_KickTo_err) {    /* Do something to indicate we are done */    if (!StopBall || Mem->BallSpeed() < Mem->CP_max_ignore_vel)      return KT_DidNothing;    Mem->LogAction2(90, "turnball_kick: we're there, stopping the ball");    DebugKick(printf("  Stop ball kick\n"));    dir = 0;    dist = 0;        PlayerMovementCorrection(&dir, &dist);    *pCom = dokick(dir, dist, 1.0);    pCom->turn_neck = FALSE;    return KT_Success;  }  if (rotate == TURN_AVOID) {    rotate = RotToAvoidOpponent(target_dir + Mem->MyBodyAng());  }    if (rotate == TURN_CLOSEST) {    rotate = RotClosest(target_dir + Mem->MyBodyAng());  }      if (is_straight_kick(target_dir, EndDist, closeMarg)) {    float pow;          btraj = Polar2Vector(EndDist, target_dir) - Mem->BallRelativeToBodyPosition();    dir = btraj.dir();    dist = btraj.mod();        /* now we're goign to do some distance twiddling to get the ball to       get to the right angle and stop */    pow = dist / Mem->BallKickRate();    pow = Min(pow, Mem->CP_max_turn_kick_pow);    dist = pow * Mem->BallKickRate();          Mem->LogAction4(90, "turnball_kick: striaght kick: dist %f at %f", dist, dir);    DebugKick(printf("  Straight kick# dir: %f dist: %f\n", dir, dist));    PlayerMovementCorrection(&dir, &dist);    *pCom = dokick(dir, dist, 1.0);    pCom->turn_neck = FALSE;  } else if (Mem->BallDistance() < closeMarg) {    /* ball is too close to do a tangent kick, so do a kick at 90 degrees */    dir = ((int)rotate)*(-90) + Mem->BallAngleFromBody();    dist = 2.0*sqrt(Sqr(Mem->CP_opt_ctrl_dist) - Sqr(Mem->BallDistance()));    Mem->LogAction2(90, "turnball_kick: 90 deg kick");    DebugKick(printf("  Close kick# dir: %f dist: %f\n", dir, dist));    PlayerMovementCorrection(&dir, &dist);    *pCom = dokick(dir, dist, kickFac);    pCom->turn_neck = FALSE;  } else {    /* do a turning kick */    /* we make a circle around the player of radius closeMarg       and calculate the trajectory that goes in the right direction and is       tangent to the circle */    dir = 180 + Mem->BallAngleFromBody() + ((int)rotate)*ASin(closeMarg / Mem->BallDistance());    DebugKick(printf(" ball dist: %f\tclosest_margin: %f\n",	   Mem->BallDistance(), closeMarg));    dist = sqrt(Sqr(Mem->BallDistance()) - Sqr(closeMarg));    dist +=      sqrt(Sqr(Mem->CP_opt_ctrl_dist) - Sqr(closeMarg));    DebugKick(printf("  Turning ball# dir: %f dist: %f\n", dir, dist));    Mem->LogAction2(90, "turnball_kick: turning kick");    PlayerMovementCorrection(&dir, &dist);    *pCom = dokick(dir, dist, kickFac);    pCom->turn_neck = FALSE;  }  return KT_DidKick;}KickToRes TurnballTo(AngleDeg rel_dir, TurnDir rotate){  TurnKickCommand com;  KickToRes res = turnball_kick(rel_dir, rotate, TRUE, &com);  if (res == KT_Success || res == KT_DidKick || res == KT_TurnedToBall)    DoTurnKickCommand(com);  return res;}/*******************************************************************************************//* if we kick the ball as hard as possible in the right direction, will it   be a collision with the player? *//* all we have to do is look at the predicted ball position with that kick and   see if it is within the player's radius of the player */int is_hard_kick_coll(float abs_dir, TurnKickCommand* pcom,		      Vector* pvPredBall, float targ_vel, Bool* pCanKickToTraj = NULL){  DebugKick2(cout << "Is hard_kick_coll here" << endl);  *pcom = dokick(abs_dir - Mem->MyBodyAng(), targ_vel, 1.0, pCanKickToTraj);  *pvPredBall = Mem->BallPredictedPosition(1, pcom->power, pcom->angle);  DebugKick(cout << "IsColl: PredBall: " << *pvPredBall	    << "\tMyPos: " << Mem->MyPredictedPosition() << endl);  DebugKick(cout << "diff: " << (*pvPredBall - Mem->MyPredictedPosition()).mod()	    << "\tmarg: " << Mem->CP_hard_kick_margin << endl);  return (*pvPredBall - Mem->MyPredictedPosition()).mod() <=    Mem->SP_player_size + Mem->CP_hard_kick_dist_buffer;}/* Used when we decide a kick in the right direction woudl be a collision,   so we need to turnball to kick the ball more to the side of us,   OR, when in KM_HardestKick, moving the ball back for a kick */TurnKickCommand hard_kick_turnball(float abs_dir, TurnDir rot, Bool StopBall = FALSE){  TurnKickCommand com;  //TurnDir rot = RotToAvoidOpponent(abs_dir);  /* SMURF - should this have a larger dokick_factor? */  Mem->LogAction3(70, "hard_kick_turnball: %f", abs_dir);  DebugKick2(cout << "Doing a hard_kick_turnball" << endl);  KickToRes res = turnball_kick(abs_dir - Mem->MyBodyAng(), rot, StopBall,				&com, Mem->CP_hardest_kick_ball_dist,				Mem->CP_closest_margin, Mem->CP_dokick_factor);  if (res == KT_DidNothing || res == KT_LostBall)    my_error("	hard_kick_turnball: Something weird happened: %d", res);  return com;}TurnKickCommand kick_hard_moderate(AngleDeg abs_dir, float targ_vel, TurnDir rot){  /* Here's the idea:       See if one strong kick will be a collision (if it is, turnball)       o.w. manipulate our kick so that we get another one next cycle       (but make sure the final velocity is higher)       it that makes it a collision, just do the strong kick */    /* there is no reasning about turning the ball backward to get max power.       See KM_HardestKick for that */  Mem->LogAction2(60, "kick_hard_moderate");  DebugKick2(cout << endl << "Time: " << Mem->CurrentTime.t	     << "\tkick_hard_moderate called" << endl);  TurnKickCommand kickCom;  TurnKickCommand HKCommand;  Vector vPredBall;  Bool CanKickToTraj;  if (is_hard_kick_coll(abs_dir, &kickCom, &vPredBall, targ_vel, &CanKickToTraj)) {    DebugKick2(cout << " Moderate: collision, still thinking about it" << endl);    if (Mem->BallDistance() < Mem->SP_player_size + Mem->CP_hard_kick_dist_buffer) {      Mem->LogAction2(70, "kick_hard_moderate: ball is too close to plan for collision ");      return hard_kick_turnball(abs_dir, rot);          } else {      if (CanKickToTraj) {	Mem->LogAction2(70, "kick_hard_moderate: planning for collision ");	/* figure out what kick it would be to just go to the edge of the player */	Vector sol1, sol2;	int numSol =	  RayCircleIntersect(Ray(Mem->BallAbsolutePosition(),				 vPredBall - Mem->BallAbsolutePosition()),			     Mem->SP_player_size + Mem->CP_hard_kick_dist_buffer,			     Mem->MyPredictedPosition(),			     &sol1, &sol2);	if (numSol == 0) {	  my_error("Woah! No solution to kicking a ball less hard!");	  return hard_kick_turnball(abs_dir, rot);      	}	Vector vBallTarg = sol1;	/* SMURF: is there any case where we wouldn't want to do this kick? */	DebugKick2(cout << "Trying to kick to edge of player" << endl);	Vector vBallPath = vBallTarg.Global2Relative(Mem->BallAbsolutePosition(), Mem->MyBodyAng());	HKCommand = dokick(vBallPath.dir(), vBallPath.mod());	return HKCommand;      } else {	/* can't kick to trajectory and it's a collision.	   That's fine! Just do the kick */	Mem->LogAction2(70, "kick_hard_moderate: collision, but that's okay!");	return kickCom;      }    }  } else {    DebugKick(cout << " MyPos: " << Mem->MyPos() << endl);    DebugKick(cout << " vPredBall: " << vPredBall << endl);    Vector vPredBallRel =      vPredBall.Global2Relative(Mem->MyPredictedPosition(), Mem->MyBodyAng());    DebugKick(cout << " vPredBallRel: " << vPredBallRel << endl);    if (vPredBallRel.mod() < Mem->SP_kickable_area-Mem->CP_hard_kick_dist_buffer ||	!Mem->BallWillBeKickable()) {      /* we're going to get another kick next time or this will be our last	   kick anyway - do the strong one! */      Mem->LogAction2(70, "kick_hard_moderate: strong with another or last kick");      DebugKick2(cout << " Moderate: strong with another kick or last kick!" << endl);      return kickCom;    }    DebugKick2(cout << " Moderate: deciding whether to do one or two kicks" << endl);    /* we're goign to set vBall to be the relative vector (to new pos)	 to the position that will give us another kick next time */    float oneKickVel = Min(Mem->SP_ball_speed_max,			   (vPredBall - Mem->BallAbsolutePosition()).mod());    float twoKickVel = 0.0;    Vector sol1, sol2;    int numSol;    Vector vBallTarg;    numSol =      RayCircleIntersect(Ray(Mem->BallAbsolutePosition(),

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人动漫av| 国产精品成人一区二区艾草| 欧美日韩一二三区| 色狠狠色噜噜噜综合网| 成人黄色小视频在线观看| 国产91露脸合集magnet | 高清国产午夜精品久久久久久| 日本aⅴ亚洲精品中文乱码| 首页国产丝袜综合| 日韩精品电影一区亚洲| 欧美a一区二区| 久久99国产乱子伦精品免费| 秋霞国产午夜精品免费视频| 蜜臀91精品一区二区三区| 韩国女主播一区二区三区| 黄一区二区三区| 懂色中文一区二区在线播放| 91亚洲资源网| 欧美视频一区二区三区在线观看| 欧美久久久久久久久中文字幕| 在线成人av网站| 久久久午夜精品理论片中文字幕| 亚洲福利一区二区| 蜜臀av性久久久久蜜臀aⅴ| 韩国av一区二区三区四区| 不卡一区二区中文字幕| 欧美私人免费视频| 亚洲精品一区二区三区四区高清 | 国产精品色婷婷| 亚洲免费观看视频| 日韩主播视频在线| 国产成人免费xxxxxxxx| 欧美日韩专区在线| 久久久久久久久久久99999| 成人欧美一区二区三区黑人麻豆| 午夜一区二区三区视频| 久久99久久久久| 色综合网色综合| 精品国产乱码久久久久久免费| 自拍偷拍亚洲综合| 狠狠久久亚洲欧美| 欧美日韩国产一区二区三区地区| 欧美精品一区二区三区四区| 亚洲一区二区3| 从欧美一区二区三区| 欧美日韩成人一区| 亚洲视频在线一区观看| 麻豆精品视频在线| 欧美视频在线观看一区| 中文字幕在线不卡| 国产精品一区久久久久| 欧美一区日韩一区| 亚洲一区在线电影| 成人美女在线视频| 久久久久久一二三区| 日韩高清欧美激情| 欧美三级电影在线看| 亚洲啪啪综合av一区二区三区| 国产精品资源在线| 精品国精品国产尤物美女| 日日摸夜夜添夜夜添亚洲女人| 色综合中文字幕| 中文字幕一区在线观看视频| 国产精品一品视频| 久久久欧美精品sm网站| 美腿丝袜亚洲综合| 日韩欧美一区二区不卡| 日韩黄色在线观看| 51精品久久久久久久蜜臀| 亚洲综合久久av| 91国在线观看| 亚洲夂夂婷婷色拍ww47| 一本高清dvd不卡在线观看| 国产精品传媒视频| gogo大胆日本视频一区| 国产精品久久久久影院色老大| 粉嫩av一区二区三区| 国产精品丝袜一区| 成人免费高清视频| 国产精品国产三级国产普通话三级| 国产不卡视频在线观看| 国产午夜亚洲精品不卡| 日韩精品欧美精品| 日韩欧美在线网站| 韩国三级在线一区| 国产精品女上位| 99久久伊人网影院| 亚洲激情综合网| 欧美日本韩国一区| 激情图片小说一区| 国产精品视频在线看| 91蜜桃传媒精品久久久一区二区| 一区二区三区av电影| 欧美日韩成人在线| 日本色综合中文字幕| 精品国产一区二区三区四区四| 激情成人综合网| 中文字幕五月欧美| 欧美日韩国产片| 欧美体内she精高潮| 青青国产91久久久久久| 久久网这里都是精品| caoporn国产一区二区| 亚洲国产精品久久久久婷婷884| 91精品国产综合久久精品app| 国产美女av一区二区三区| 专区另类欧美日韩| 日韩精品影音先锋| 91丨九色丨蝌蚪丨老版| 老司机一区二区| 亚洲色图在线视频| 日韩精品一区二区三区swag| 99精品偷自拍| 免费高清成人在线| 亚洲毛片av在线| 精品国产一区二区三区久久久蜜月| jlzzjlzz欧美大全| 久久爱www久久做| 一区二区三区产品免费精品久久75| 欧美区视频在线观看| 国内成人精品2018免费看| 一区二区三区久久| 国产亚洲综合在线| 欧美女孩性生活视频| 成人激情黄色小说| 丝袜亚洲另类欧美| 亚洲免费av网站| 国产片一区二区三区| 日韩免费在线观看| 欧美午夜一区二区| 99久久精品一区二区| 国产91对白在线观看九色| 美女国产一区二区三区| 亚洲福利电影网| 中文字幕一区二| 国产精品天美传媒| 国产亚洲精品中文字幕| 欧美tk丨vk视频| 538在线一区二区精品国产| 欧洲一区在线观看| 99v久久综合狠狠综合久久| 精品一区二区三区视频在线观看| 午夜国产不卡在线观看视频| 亚洲精品大片www| 亚洲精品久久嫩草网站秘色| 国产精品福利一区二区三区| 国产网红主播福利一区二区| 2023国产精品视频| 久久―日本道色综合久久| 日韩女优电影在线观看| 日韩欧美激情四射| 日韩一级成人av| 精品久久久久香蕉网| 欧美大白屁股肥臀xxxxxx| 欧美刺激午夜性久久久久久久| 日韩一卡二卡三卡四卡| 欧美xxxx在线观看| 久久影院电视剧免费观看| www久久精品| 国产精品卡一卡二| 中文字幕在线不卡国产视频| 亚洲激情自拍偷拍| 亚洲国产成人av网| 免费看日韩a级影片| 久久99久久久久| 国产成人一区二区精品非洲| 国产91高潮流白浆在线麻豆| www.欧美.com| 欧美人与禽zozo性伦| 欧美本精品男人aⅴ天堂| 亚洲国产成人在线| 亚洲黄色片在线观看| 视频在线观看国产精品| 精品亚洲免费视频| 99久久99久久精品免费看蜜桃| 在线影院国内精品| 日韩欧美中文字幕公布| 亚洲国产精华液网站w| 亚洲黄色小视频| 久久99精品国产91久久来源 | 国产午夜精品久久久久久久| 国产精品美女一区二区| 亚洲最新在线观看| 蜜桃视频在线观看一区| 国产成人av电影在线| 欧美天天综合网| 国产夜色精品一区二区av| 一区二区三区不卡视频在线观看 | 亚洲国产高清不卡| 亚洲午夜视频在线| 国产一区二区看久久| 色综合天天视频在线观看 | 麻豆成人免费电影| 不卡的av电影| 91精品国产综合久久婷婷香蕉| 国产精品丝袜黑色高跟| 青青草伊人久久| 色狠狠一区二区| 中文字幕av不卡| 另类成人小视频在线|