Jump to content
  • 0

pomoc [LUA] Vypočítanie vzdialenosti + nastavovanie


Guyy

Dotaz

Zdravím.. Už asi hodinu sa trápim s jednou vecou. Ide o to, že robím lua script do CS:GO kde bude zobrazovať data o hráčovi. Spravil som render aj všetko a tak som chcel spraviť pohybovanie s menu pomocou myši. Myslel som si, že to bude jednoduché ale až ked som to skúsil tak tam treba zložitejšiu matematiku jak som si predstavoval. Takže, viem na akej pozícií (Vector2) je lavý horný roh na obrazovke a viem na akej pozícií je myš (Vector2). Pokiaľ by som použil (čo som aj použil) Menu.X = mouse.x tak sa mi menu síce bude posúvať, ale "držím" lavý horný roh a potrebujem to, že kdekoľvek na neho kliknem (to už mam ošetrené) tak myškou ho budem "držať" tam kde som klikol. Na to potrebujem funkciu ktorá nastaví pozíciu lavemu hornemu rohu podľa toho jak daleko mám myš od toho rohu. 

 

if(cheat.IsMenuVisible() and cheat.IsKeyDown(0x01)) then

		local mouse = cheat.GetMousePos()
		local pStart = Vector2.new(AikoData.X, AikoData.Y); -- Lavy horny roh
		local pEnd = Vector2.new(AikoData.X + AikoData.W, AikoData.Y + AikoData.H); -- Pravy dolny roh

		if(isBetween(mouse, Vector2.new(pStart.x, pStart.y), Vector2.new(pEnd.x, pEnd.y))) then -- Pokiaľ má myšku v mojom menu
    
			AikoData.X = math.sqrt((mouse.x * 2) + (AikoData.X * 2))
			AikoData.Y = math.sqrt((mouse.y * 2) + (AikoData.Y * 2))
		end
	end

 

Pytagorovu vetu som tam dal pre to, lebo na googli som to videl ako vypočítanie vzdialenosti 2 bodov.. Takto samotné to ide tak ako to chcem ale ma to vysoký smooth takže to nejde s myškou a za 5cm do strany som s myškou von s menu.

Link to comment
Share on other sites

2 odpovědí na tuto otázku

Recommended Posts

  • 3

Budeš potrebovať súradnice bodu, z ktorého začínaš ťahanie myšou. Keď prvýkrát zistíš, že bola stlačená myš v oblasti menu, ulož si aktuálnu pozíciu myši do nejakej premennej (napr. dragStart). Ďalej si ulož vzdialenosti dragStart od ľavého horného bodu menu na osiach x a y (napr. dragOffsetX = dragStart.x - AikoData.X; dragOffsetY = dragStart.y - AikoData.Y). Je dôležité, aby si tieto vzdialenosti už ďalej počas ťahania myšou neprepisoval (chceš tam mať uložené rovnaké hodnoty počas celej doby ťahania).

Počas ťahania myšou budú potom nové súradnice ľavého horného bodu menu x = mouse.x - dragOffsetX a y = mouse.y - dragOffsetY (kde mouse je aktuálna pozícia myši).

Pytagorovu vetu nebudeš potrebovať.

Edited by DuFF
  • Děkuji (+1) 1
Link to comment
Share on other sites

  • 0
On 10. 5. 2021 at 22:12, DuFF said:

Budeš potrebovať súradnice bodu, z ktorého začínaš ťahanie myšou. Keď prvýkrát zistíš, že bola stlačená myš v oblasti menu, ulož si aktuálnu pozíciu myši do nejakej premennej (napr. dragStart). Ďalej si ulož rozdiel vzdialenosti dragStart od ľavého horného bodu menu na osiach x a y (napr. dragOffsetX = dragStart.x - AikoData.X; dragOffsetY = dragStart.y - AikoData.Y). Je dôležité, aby si tieto vzdialenosti už ďalej počas ťahania myšou neprepisoval (chceš tam mať uložené rovnaké hodnoty počas celej doby ťahania).

Počas ťahania myšou budú potom nové súradnice ľavého horného bodu menu x = mouse.x - dragOffsetX a y = mouse.y - dragOffsetY (kde mouse je aktuálna pozícia myši).

Pytagorovu vetu nebudeš potrebovať.

Ďakujem :) Samého ma niečo takéto vôbec nenapadlo, bude treba doladiť aby to menu šlo viac smooth lebo to skáče ale funguje tak ako som to chcel, ďakujem :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...