mirror of
https://github.com/bnowakow/GT7-Scripts.git
synced 2025-12-17 09:37:05 +00:00
PoC for timeout for turn detection
This commit is contained in:
@@ -22,9 +22,11 @@ TurnTolerance := 10
|
||||
|
||||
GoTo EndTurnDef
|
||||
|
||||
|
||||
CheckTurn(x,y, b_size := 2)
|
||||
CheckTurn(x,y, timeout := 3500, b_size := 2)
|
||||
{
|
||||
check_turn_start_tick_count := A_TickCount
|
||||
;ToolTipper("A_TickCount at the begining of CheckTurn " A_TickCount, 100, 150)
|
||||
|
||||
color_player := 0xDE6E70
|
||||
if (__enableTurn_mod__ = 0){
|
||||
return
|
||||
@@ -34,11 +36,21 @@ CheckTurn(x,y, b_size := 2)
|
||||
|
||||
loop {
|
||||
tc := BitGrab(x, y, b_size)
|
||||
|
||||
;ToolTipper("debug until loop")
|
||||
for i, c in tc
|
||||
{
|
||||
|
||||
|
||||
check_turn_now_tick_count := A_TickCount
|
||||
check_turn_tick_count_from_start_to_now := check_turn_now_tick_count - check_turn_start_tick_count
|
||||
if (check_turn_tick_count_from_start_to_now > timeout) {
|
||||
ToolTipper("Turn Check Timeout exceeded", 100, 200)
|
||||
return false
|
||||
}
|
||||
;ToolTipper("debug i loop")
|
||||
|
||||
td := Distance(c, color_player)
|
||||
ToolTipper("Turn" td)
|
||||
; ToolTipper("Turn" td)
|
||||
if (td < 20 ){
|
||||
turn_complete := true
|
||||
|
||||
@@ -46,10 +58,20 @@ CheckTurn(x,y, b_size := 2)
|
||||
}
|
||||
}
|
||||
|
||||
} until turn_complete = true
|
||||
ToolTipper("Turn Found")
|
||||
check_turn_now_tick_count := A_TickCount
|
||||
check_turn_tick_count_from_start_to_now := check_turn_now_tick_count - check_turn_start_tick_count
|
||||
if (check_turn_tick_count_from_start_to_now > timeout) {
|
||||
ToolTipper("Turn Check Timeout exceeded", 100, 200)
|
||||
return false
|
||||
}
|
||||
} until (turn_complete = true)
|
||||
check_turn_found_tick_count := A_TickCount
|
||||
check_turn_tick_count_from_start_to_found := check_turn_found_tick_count - check_turn_start_tick_count
|
||||
ToolTipper("tickCount from start to end " check_turn_tick_count_from_start_to_found, 100, 250)
|
||||
; Sleep, 100000 ; debug
|
||||
;ToolTipper("Turn Found")
|
||||
|
||||
return
|
||||
return true
|
||||
}
|
||||
|
||||
ResetTurn:
|
||||
|
||||
@@ -53,67 +53,128 @@ Race_PANAM()
|
||||
Loop {
|
||||
; Turn 1
|
||||
; Tooltip
|
||||
CheckTurn(turn1.startX, turn1.startY)
|
||||
ToolTipper("Turn 1 start found")
|
||||
/*
|
||||
if( A_Index != 1){
|
||||
Nitrous_Off()
|
||||
Accel_On(75)
|
||||
|
||||
|
||||
turn_one_end_found := false
|
||||
if (CheckTurn(turn1.startX, turn1.startY))
|
||||
{
|
||||
turn_one_end_found := true
|
||||
ToolTipper("Turn 1 start found")
|
||||
}
|
||||
*/
|
||||
/*
|
||||
if( A_Index != 1){
|
||||
Nitrous_Off()
|
||||
Accel_On(75)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
controller.Axes.LX.SetState(18-3*%A_Index%)
|
||||
;Sleep(500)
|
||||
Accel_On(100)
|
||||
CheckTurn(turn1.endX, turn1.endY)
|
||||
ToolTipper("Turn 1 end found")
|
||||
|
||||
Nitrous_On()
|
||||
controller.Axes.LX.SetState(75)
|
||||
sleep(2000)
|
||||
controller.Axes.LX.SetState(65)
|
||||
sleep(2500)
|
||||
controller.Axes.LX.SetState(62)
|
||||
sleep(2000)
|
||||
|
||||
|
||||
turn_one_end_found := false
|
||||
turn_one_end_found := true ; debug TODO check if wheels are curved
|
||||
if (CheckTurn(turn1.endX, turn1.endY))
|
||||
{
|
||||
turn_one_end_found := true
|
||||
ToolTipper("Turn 1 end found")
|
||||
|
||||
Nitrous_On()
|
||||
controller.Axes.LX.SetState(75)
|
||||
}
|
||||
sleep(2000)
|
||||
if (turn_one_end_found)
|
||||
{
|
||||
controller.Axes.LX.SetState(65)
|
||||
}
|
||||
sleep(2500)
|
||||
if (turn_one_end_found)
|
||||
{
|
||||
controller.Axes.LX.SetState(62)
|
||||
}
|
||||
sleep(2000)
|
||||
|
||||
turn_two_start_found := false
|
||||
; Turn 2
|
||||
if( A_Index = 1 || A_Index = 6){
|
||||
CheckTurn(turn2.startX, turn2.startY)
|
||||
if (CheckTurn(turn2.startX, turn2.startY, 5000))
|
||||
{
|
||||
turn_two_start_found := true
|
||||
}
|
||||
}
|
||||
else{
|
||||
CheckTurn(545, turn2.startY)
|
||||
if (CheckTurn(545, turn2.startY)) {
|
||||
turn_two_start_found := true
|
||||
}
|
||||
}
|
||||
if (turn_two_start_found)
|
||||
{
|
||||
ToolTipper("Turn 2 start found")
|
||||
controller.Axes.LX.SetState(18.3)
|
||||
}
|
||||
ToolTipper("Turn 2 start found")
|
||||
controller.Axes.LX.SetState(18.3)
|
||||
CheckTurn(turn2.endX, turn2.endY)
|
||||
ToolTipper("Turn 2 end found")
|
||||
controller.Axes.LX.SetState(50)
|
||||
if( A_Index = 1 || A_Index = 6){
|
||||
controller.Axes.LX.SetState(75)
|
||||
sleep(2000)
|
||||
|
||||
controller.Axes.LX.SetState(65)
|
||||
sleep(500)
|
||||
turn_two_end_found := false
|
||||
turn_two_end_found := true ; debug TODO check if wheels are curved
|
||||
if (CheckTurn(turn2.endX, turn2.endY))
|
||||
{
|
||||
turn_two_end_found := true
|
||||
ToolTipper("Turn 2 end found")
|
||||
controller.Axes.LX.SetState(50)
|
||||
}
|
||||
|
||||
if( A_Index = 1 || A_Index = 6){
|
||||
if (turn_two_end_found)
|
||||
{
|
||||
controller.Axes.LX.SetState(75)
|
||||
}
|
||||
sleep(2000)
|
||||
|
||||
if (turn_two_end_found)
|
||||
{
|
||||
controller.Axes.LX.SetState(65)
|
||||
}
|
||||
sleep(500)
|
||||
}
|
||||
else{
|
||||
Turn_Left(500, 28)
|
||||
if (turn_two_end_found)
|
||||
{
|
||||
Turn_Left(500, 28)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
; Turn 3
|
||||
CheckTurn(turn3.startX, turn3.startY)
|
||||
Nitrous_Off()
|
||||
ToolTipper("Turn 3 start found")
|
||||
controller.Axes.LX.SetState(12)
|
||||
CheckTurn(turn3.endX, turn3.endY)
|
||||
Nitrous_On()
|
||||
ToolTipper("Turn 3 end found")
|
||||
controller.Axes.LX.SetState(42)
|
||||
sleep(500)
|
||||
controller.Axes.LX.SetState(58)
|
||||
if (CheckTurn(turn3.startX, turn3.startY))
|
||||
{
|
||||
Nitrous_Off()
|
||||
ToolTipper("Turn 3 start found")
|
||||
controller.Axes.LX.SetState(12)
|
||||
}
|
||||
|
||||
turn_three_end_found := false
|
||||
turn_three_end_found := true ; debug TODO check if wheels are curved
|
||||
if (CheckTurn(turn3.endX, turn3.endY))
|
||||
{
|
||||
turn_three_end_found := true
|
||||
Nitrous_On()
|
||||
ToolTipper("Turn 3 end found")
|
||||
controller.Axes.LX.SetState(42)
|
||||
}
|
||||
|
||||
sleep(500)
|
||||
if (turn_three_end_found)
|
||||
{
|
||||
controller.Axes.LX.SetState(58)
|
||||
}
|
||||
sleep(2000)
|
||||
controller.Axes.LX.SetState(62)
|
||||
|
||||
if (turn_three_end_found)
|
||||
{
|
||||
controller.Axes.LX.SetState(62)
|
||||
}
|
||||
sleep(2000)
|
||||
|
||||
CheckTurn(lap_marker.startX, lap_marker.startY)
|
||||
ToolTipper("Lap Complete")
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user