Skip to content

Commit

Permalink
stage
Browse files Browse the repository at this point in the history
  • Loading branch information
Umbrella167 committed May 13, 2024
1 parent b0ca6c7 commit e93194b
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 120 deletions.
3 changes: 1 addition & 2 deletions Core/tactics/play/testSkill.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,14 @@ 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"
-- end

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,
Expand Down
107 changes: 0 additions & 107 deletions ZBin/lua_scripts/worldmodel/task.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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 使用这个函数的角色
Expand Down Expand Up @@ -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()
Expand Down
24 changes: 13 additions & 11 deletions share/staticparams.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down Expand Up @@ -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
{
Expand Down

0 comments on commit e93194b

Please sign in to comment.