From e93194ba732bec3dc29a547ec2bdf1b5ceb6ef6e Mon Sep 17 00:00:00 2001 From: Umbrella167 <1670187757@qq.com> Date: Mon, 13 May 2024 20:33:26 +0800 Subject: [PATCH] stage --- Core/tactics/play/testSkill.lua | 3 +- ZBin/lua_scripts/worldmodel/task.lua | 107 --------------------------- share/staticparams.h | 24 +++--- 3 files changed, 14 insertions(+), 120 deletions(-) diff --git a/Core/tactics/play/testSkill.lua b/Core/tactics/play/testSkill.lua index 46875e8..7437e9f 100644 --- a/Core/tactics/play/testSkill.lua +++ b/Core/tactics/play/testSkill.lua @@ -33,7 +33,6 @@ firstState = "ready1", switch = function() debugEngine:gui_debug_msg(CGeoPoint(500,1000),"EnemyPos 1: (" .. enemy.posX(1) .. "," .. enemy.posY(1) .. ")",3) debugEngine:gui_debug_msg(CGeoPoint(500,800),"PlayerTargetPos: (2000 , -48)",3) - GlobalMessage.Tick = Utils.UpdataTickMessage(vision,0,1,2) -- debugEngine:gui_debug_msg(CGeoPoint(0,0),task.angleDiff((ball.pos() - player.pos("Assister")):dir(),(player.pos("Assister") - CGeoPoint(0,0)):dir())) -- if(player.infraredCount("Assister") > 5) then -- return "shoot" @@ -41,7 +40,7 @@ firstState = "ready1", end, - Assister = task.goCmuRush(CGeoPoint(2000,-48)), + Assister = task.goSimplePos(CGeoPoint(2000,-48)), -- Assister = task.getballV2("Assister", param.playerVel, 1, CGeoPoint(0, 0), 0), -- Kicker = task.getball("Assister",param.playerVel,param.getballMode,CGeoPoint:new_local(0,0)), -- Kicker = function() return task.defender_marking("Kicker",CGeoPoint(0,0)) end, diff --git a/ZBin/lua_scripts/worldmodel/task.lua b/ZBin/lua_scripts/worldmodel/task.lua index 0ec7c16..ee05940 100644 --- a/ZBin/lua_scripts/worldmodel/task.lua +++ b/ZBin/lua_scripts/worldmodel/task.lua @@ -360,74 +360,6 @@ function GetBallV2(role, p, dist1, speed1) -------dist开始减速的距离 sp end -function TurnToPointV1(role, p, speed) - --参数说明 - -- role 使用这个函数的角色 - -- p 指向坐标 - -- speed 旋转速度 - return function() - local p1 = p - if type(p) == 'function' then - p1 = p() - else - p1 = p - end - if speed == nil then - speed = 800 - end - local playerPos = player.pos(role) - local playerDir = player.dir(role) - local playerToBallDist = player.toBallDist(role) - local playerToBallDir = (ball.pos() - player.pos(role)):dir() - local playerToTargetDir = (p1 - player.pos(role)):dir() - local ballPos = CGeoPoint:new_local (ball.posX(),ball.posY()) - local ballToTargetDir = (p1 - ball.pos()):dir() - local subPlayerBallToTargetDir = playerToTargetDir - ballToTargetDir - -- Debug - -- debugEngine:gui_debug_msg(CGeoPoint(-3000, 1000+150*0), string.format("playerDir: %6.3f", playerDir),param.BLUE) - -- debugEngine:gui_debug_msg(CGeoPoint(-3000, 1000+150*1), string.format("playerToBallDir: %6.3f", playerToBallDir),param.BLUE) - -- debugEngine:gui_debug_msg(CGeoPoint(-3000, 1000+150*2), string.format("playerToTargetDir: %6.3f", playerToTargetDir),param.BLUE) - -- debugEngine:gui_debug_msg(CGeoPoint(-3000, 1000+150*3), math.abs(playerDir-playerToTargetDir)*57.3) - -- debugEngine:gui_debug_msg(CGeoPoint(-3000, 1000+150*4), string.format("playerToBallDist: %6.3f", playerToBallDist),param.BLUE) - -- debugEngine:gui_debug_msg(CGeoPoint(-3000, 1000+150*5), string.format("sub: %6.3f", ballToTargetDir-playerToTargetDir),param.BLUE) - -- debugEngine:gui_debug_x(p) - - -- 逆时针旋转 - local idirLeft = (playerDir+param.PI/2)>param.PI and playerDir-(3/2)*param.PI or playerDir+param.PI/2 - -- 顺时针旋转 - local idirRight = (playerDir-param.PI/2)>param.PI and playerDir+(3/2)*param.PI or playerDir-param.PI/2 - - -- if math.abs(playerDir-playerToTargetDir) > 0.14 or math.abs(playerDir-playerToBallDir) > 0.40 then - if math.abs(playerDir-playerToTargetDir) > 0.14 then - if subPlayerBallToTargetDir > 0 then - -- 逆时针旋转 - -- debugEngine:gui_debug_msg(CGeoPoint(1000, 1000), "0") - local target_pos = playerPos+Utils.Polar2Vector(speed, idirLeft)+Utils.Polar2Vector(2*playerToBallDist, playerToBallDir) - debugEngine:gui_debug_x(target_pos) - local mexe, mpos = GoCmuRush { pos = target_pos, dir = playerToBallDir, acc = a, flag = 0x00000100, rec = r, vel = v } - return { mexe, mpos } - end - -- 顺时针旋转 - -- debugEngine:gui_debug_msg(CGeoPoint(1000, 1000), "1") - local target_pos = playerPos+Utils.Polar2Vector(speed, idirRight)+Utils.Polar2Vector(2*playerToBallDist, playerToBallDir) - debugEngine:gui_debug_x(target_pos) - local mexe, mpos = GoCmuRush { pos = target_pos, dir = playerToBallDir, acc = a, flag = 0x00000100, rec = r, vel = v } - return { mexe, mpos } - -- else - elseif playerToBallDist > 1 then - -- debugEngine:gui_debug_msg(CGeoPoint:new_local(1000, 1000), "2") - local mexe, mpos = GoCmuRush { pos = ballPos, dir = playerToTargetDir, acc = a, flag = 0x00000100, rec = r, vel = v } - return { mexe, mpos } - else - local idir = (p1 - player.pos(role)):dir() - local pp = player.pos(role) + Utils.Polar2Vector(0 + 10, idir) - local mexe, mpos = GoCmuRush { pos = pp, dir = idir, acc = 50, flag = 0x00000100 + 0x04000000, rec = 1, vel = v } - return { mexe, mpos } - - end - end -end - function TurnToPointV2(role, p, speed) --参数说明 -- role 使用这个函数的角色 @@ -584,45 +516,6 @@ function Shootdot(role,p, Kp, error_, flagShoot) -- end --- function getBallAndShootToPoint(role, target) --- if type(target) == "function" then --- target = target() --- end - --- local roleDir = player.dir(role) --- local ballToTargetDir = (target - ball.rawPos()):dir() - --- debugEngine:gui_debug_msg(CGeoPoint(1000, 1000),player.myinfraredCount(role)) - --- if(playerDirToPointDirSub(role,target) < param.shootError) then --- local kp = 1 --- local rolePos = CGeoPoint:new_local(player.rawPos(role):x(), player.rawPos(role):y()) --- local idir = function(runner) --- return (target - player.pos(runner)):dir() --- end --- local mexe, mpos = GoCmuRush { pos = rolePos, dir = idir, acc = a, flag = 0x00000000, rec = r, vel = endVelController(role, rolePos) } --- -- return { mexe, mpos, kick.chip, idir, pre.low, power(targetPos, kp), power(targetPos, kp), 0x00000000 } --- return { mexe, mpos, kick.flat, idir, pre.low, power(target, kp), power(target, kp), 0x00000000 } --- else - --- end - --- if math.abs(roleDir - ballToTargetDir) < 0.1 and player.myinfraredCount(role) > 10 then - --- end --- -- local ikick = chip and kick.chip or kick.flat --- -- local ipower = power and power or 8000 --- -- local idir = d and d or dir.shoot() --- -- local iflag = 0x00000000 --- -- local mexe, mpos = GoCmuRush { pos = p, dir = idir, acc = a, flag = iflag, rec = r, vel = v } --- -- return { mexe, mpos, ikick, idir, pre.low, kp.specified(8000), cp.full, iflag } - - --- local tTable = getball(role, param.playerVel, 1, target, 1)() --- return tTable --- end - - function playerDirToPointDirSub(role, p) -- 检测 某座标点 球 playe 是否在一条直线上 if type(p) == 'function' then p1 = p() diff --git a/share/staticparams.h b/share/staticparams.h index 7efe979..e2dfead 100644 --- a/share/staticparams.h +++ b/share/staticparams.h @@ -15,14 +15,16 @@ namespace PARAM const int BALLMERGEDISTANCE = 0; const int TEAMS = 2; - /* ZJHU */ - extern const int enemy_buffer; - extern const int playerBallRightsBuffer; - extern const int playerInfraredCountBuffer; - extern const int our_goalie_num; - extern const int defend_num1; - extern const int defend_num2; - /* ZJHU */ + namespace ZJHU + { + + extern const int enemy_buffer; + extern const int playerBallRightsBuffer; + extern const int playerInfraredCountBuffer; + extern const int our_goalie_num; + extern const int defend_num1; + extern const int defend_num2; + } namespace Field { @@ -68,9 +70,9 @@ namespace PARAM const int playerBuffer = 130; // 检测敌人是否在某直线上的缓冲值 == param.enemy_buffer const double playerBallRightsBuffer = 120; // 球权判断缓冲值 == param.playerBallRightsBuffer const double playerInfraredCountBuffer = 120; // 红外判断缓冲值 == param.playerInfraredCountBuffer - const int our_goalie_num = 0; // == param.our_goalie_num - const int defend_num1 = 1; // == param.defend_num1 - const int defend_num2 = 2; // == param.defend_num2 + const int our_goalie_num = 2; // == param.our_goalie_num + const int defend_num1 = 1; // == p aram.defend_num1 + const int defend_num2 = 12; // == param.defend_num2 } namespace Tick {