[Java] DirectX buffer uitlezen

Pagina: 1
Acties:
  • 322 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goede dag allemaal,

Zoals in de titel vermeld staat wil ik de DirectX buffer uitlezen. Daarmee bedoel ik dat ik bijvoorbeeld de kleur van een pixel uit wil lezen om hier vervolgens meer handelingen mee te verrichten.

Het uiteindelijke doel is om een fishingbot te maken voor een Single Player RPG genaamd Torchlight, de muisbeweging en knopregistratie is simpel te verwezenlijken met behulp van java.awt.Robot... Echter als ik de getPixelColor() methode gebruik, krijg ik standaard zwart terug. Dit heeft naar mijn inzien te maken met het feit dat ik de DX backbuffer uitlees, die vaak geinitialiseerd wordt op zwart.

Over het algemeen doe ik dit soort dingen om wat meer programmeerervaring op te doen en meer inzicht te krijgen in datastructuren e.d.

M.v.g.

Xander

Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

1) in hoeverre is dat legaal/ethisch? daar gaat vast iemand over zagen zodadelijk :)
2) DX surfaces zijn hardware accelerated, en kan je niet zomaar uitlezen. Kijk eens naar IDirect3DDevice9::GetFrontBufferData() bijvoorbeeld.

[ Voor 13% gewijzigd door MLM op 15-02-2010 19:16 ]

-niks-


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In hoeverre 't legaal en/of ethisch is, tja... Er zijn veel mensen die cheaten bij games, en hierbij benadeel ik niemand, dus zo'n groot probleem is 't niet.

Die IDirect3DDevice9::GetFrontBufferData() is geldig in Java?

Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 21:09

NetForce1

(inspiratie == 0) -> true

Vanuit Java kun je niet zomaar native code aanroepen. Om met DirectX te communiceren zul je met JNI aan de slag moeten. Om dat wat makkelijker te maken is er JNA

[ Voor 21% gewijzigd door NetForce1 op 15-02-2010 19:39 ]

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

Ik ga het niet voorkauwen natuurlijk. alle DirectX code zit in een COM-library, dus je zult waarschijnlijk daar iets voor moeten zoeken. Daarnaast zit je ermee dat jouw applicatie geen referentie heeft aan het bestaande D3D-device (de IDirect3DDevice9 dus), en die ga je uit je target applicatie moeten vissen (gebruik een goeie debugger).

Hoe dan ook, dit is niet echt eenvoudig om te doen (ik zou zelfs durven stellen dat het gebruik van DirectX al niet erg simpel is voor beginners) en je zult je iets moeten verdiepen in native code en debugging (dat ga je niet met je java IDE kunnen doen denk ik). Er is een reden dat de meeste hacks/cheats/etc geschreven zijn in C(++) :)

-niks-


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 10:54

Janoz

Moderator Devschuur®

!litemod

Toch gaan we het hier niet doen. Als je vissen wilt vangen zul je er zelf maar achter moeten gaan zitten. Het bevind zich inderdaad in een wat grijs gebied, maar wanneer de makers het goed zouden vinden dan zouden ze de optie zelf wel ingebouwd hebben

Als je graag ervaring op wilt doen met datastructuren ed dan lijkt me dit de minst geschikte manier aangezien de grootste moeilijkheid hier het met een niet native taal een nogal erg nativ dingetje uitlezen welke zelfs met een native taal nogal lastig uit te lezen is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.