1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Yjuq

Beiträge von Yjuq

  • Mehrer Mauskoordinaten ermitteln, speichern und an einer anderen Stelle verwenden

    • Yjuq
    • 24. Februar 2013 um 19:24

    Selbstverständlich habe ich mein Script getestet.
    Das mit den Arrays ist bewusste Schikane (:D).

    Begründe mir doch bitte einmal, weshalb Arrays für den Anfang zu schwer sein sollten?
    Klar sollte man vor den Arrays sich mit Variablen auseinander setzen.
    Aber um Arrays kommt man so oder so nicht herum.

  • Mehrer Mauskoordinaten ermitteln, speichern und an einer anderen Stelle verwenden

    • Yjuq
    • 24. Februar 2013 um 18:50

    Gandalf:
    Naja, ...
    Ich habe auch mit solchen "klick" Programmen angefangen.
    Es vermittelt anfangs die Syntax der Funktionen und man lernt schon mal Funktionen die man kennt sinnvoll zu verwenden.
    Zudem programmiert er laut seinen Angaben erst seit 2 Tage.

    So schnell hat man also die Grundlagen nicht drauf (Je nachdem ob schon vor Erfahrung von anderen Programmiersprachen vorhanden ist oder nicht).
    Dementsprechend ist das ganze nachvollziehbar.


    Sirius:
    Es ist immer praktisch den Sourcecode mit zu liefern. Nur so können wir dir eine effektive Antwort geben. Es kann nämlich sein, dass du uns was erklärst, aber was komplett anderes meinst. Da hilf der Sourcecode einfach bei dem verstehen deines Problems. Beispielsweise wäre die Verwendung von Variablen / Arrays sinnvoll. Ich habe dir mal ein Beispiel getippt. Falls es noch Fragen geben sollte, kannst du hier einfach nachfragen.

    Spoiler anzeigen
    [autoit]

    ;// Mauskoordinaten per linken Maustaste ermitteln und speichern (so ungefähr 5 Koordinaten)
    ;// --> Wenn ich das ganze jetzt richtig verstanden habe, willst du die Koordinaten abspeichern,
    ;// wo du einen linken Mausklick ausführst?

    [/autoit] [autoit][/autoit] [autoit]

    ;// diese ermittelten Mauskoordinaten dann an einer anderen Stelle im Script verwenden
    ;// --> Dafür speicherst du die Koordinaten in Variablen / Arrays. So kannst du diese dann nach
    ;// bedarf einfach wieder verwenden.

    [/autoit] [autoit][/autoit] [autoit]

    ;// Für die verwendung von _Ispressed() (Zum ermitteln ob linke Maustatse gedrückt wurde).
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;// $iCounter -> In dieser Variable wird gezählt, wie oft die linke Maustatse betätigt wurde.
    ;// $aiCoord -> Hier werden später die Koordinaten abgespeichert.
    Global $iCounter, $aiCoord[5][2]

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;// Die Schleife wird solange ausgeführt, bis die linke Maustaste 5x betätigt wurde.
    While $iCounter < 5
    Sleep(10)
    ;// Wenn die linke Maustaste gedrückt wurde, dann die Funktion _SaveCoord() ausführen.
    If _IsPressed('01') Then _SaveCoord()
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ;// Wenn $iCounter die 5 Mausklicks erreicht hat, dann werden die Koordinaten ausgegeben:
    MsgBox(262144, 'Koordinaten:', 'Klick 1:' & @TAB & 'X -> ' & $aiCoord[0][0] & @TAB & 'Y -> ' & $aiCoord[0][1] & @CRLF & _
    'Klick 2:' & @TAB & 'X -> ' & $aiCoord[1][0] & @TAB & 'Y -> ' & $aiCoord[1][1] & @CRLF & _
    'Klick 3:' & @TAB & 'X -> ' & $aiCoord[2][0] & @TAB & 'Y -> ' & $aiCoord[2][1] & @CRLF & _
    'Klick 4:' & @TAB & 'X -> ' & $aiCoord[3][0] & @TAB & 'Y -> ' & $aiCoord[3][1] & @CRLF & _
    'Klick 5:' & @TAB & 'X -> ' & $aiCoord[4][0] & @TAB & 'Y -> ' & $aiCoord[4][1] & @CRLF)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _SaveCoord()
    ;// Schleife solange ausführen, bis die linke Maustatse wieder losgelassen wird.
    While _IsPressed('01')
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ;// Speichern der X Koordinate.
    $aiCoord[$iCounter][0] = MouseGetPos(0)
    ;// Speichern der Y Koordinate.
    $aiCoord[$iCounter][1] = MouseGetPos(1)

    [/autoit] [autoit][/autoit] [autoit]

    ;// $iCounter um eins erhöhen.
    $iCounter += 1
    EndFunc

    [/autoit]
  • [Läuft] 2D/(3D)? RPG Spiel in AutoIt

    • Yjuq
    • 22. Februar 2013 um 19:33
    Zitat

    [...] Aber ich halte mich da mal designtechnisch raus, schliesslich bin ich ja noch nicht definitiv dabei [...]

    Das sehe ich aber anders! Ich weiß nicht ob da was abgesprochen wurde, aber nach der Liste zur urteilen bist du für die Sounds verantwortlich!?

    Siehe hier (Ganz unten):To Do Liste

  • [Läuft] 2D/(3D)? RPG Spiel in AutoIt

    • Yjuq
    • 22. Februar 2013 um 13:44

    Wenn ich das jetzt richtig verstanden habe, dann liegen diese Texturen einfach übereinander mit verschiedenen Transparenten?
    Dann kann man diese ja zuvor laden und dann eine neue Textur aus dem Resultat erstellen. (Beispielsweise mit GDI+)
    Diese neue Textur kann man doch dann in Irrlicht verwenden?

    Damit wäre doch dieses Problem gelöst?
    Oder sehe ich das falsch :D?

  • [Läuft] 2D/(3D)? RPG Spiel in AutoIt

    • Yjuq
    • 20. Februar 2013 um 16:58

    Anstatt hier zu jammern kannst ja mal Google beanspruchen :/
    "Grafiker Forum" oder so ähnlich.

    Habe schon sehr viele gesehen wo auch sehr gute Texturen zusammen gekommen sind.
    Eventuell kann man in einer diesen Foren nachfragen ob interesse besteht.

  • GUI Object größe in gui ermitteln

    • Yjuq
    • 20. Februar 2013 um 16:00

    Hö? Eigentlich müsste dieser Code hier funktionieren:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUICloseOnESC', 0)
    Opt('GUIOnEventMode', 1)
    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global Enum $iW, $iH, $iX, $iY
    Global $aiRandom[4], $oIE, $hGUI, $idObj, $aiPos

    [/autoit] [autoit][/autoit] [autoit]

    $aiRandom[$iW] = Random(1, 800, 1)
    $aiRandom[$iH] = Random(1, 600, 1)
    $aiRandom[$iX] = Random(0, 800 - $aiRandom[$iW], 1)
    $aiRandom[$iY] = Random(0, 600 - $aiRandom[$iH], 1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $oIE = ObjCreate("Shell.Explorer.2")

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI = GUICreate('Example', 800, 600)
    $idObj = GUICtrlCreateObj($oIE, $aiRandom[$iX], $aiRandom[$iY], $aiRandom[$iW], $aiRandom[$iH])
    GUISetOnEvent($GUI_EVENT_CLOSE, '_GUI_EVENT_CLOSE')
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $aiPos = ControlGetPos($hGUI, '', $idObj)
    ; # Beachte diesen Codeblock <-- <-- <-- <-- <--
    If @error Then
    ConsoleWrite(@CRLF & '!> ERROR' & @CRLF & @CRLF)
    Exit
    EndIf
    ; # Beachte diesen Codeblock <-- <-- <-- <-- <--
    MsgBox(262144, 'Output:', 'X position' & @TAB & $aiRandom[$iX] & ' | ' & $aiPos[$iX] & @CRLF & _
    'Y position' & @TAB & $aiRandom[$iY] & ' | ' & $aiPos[$iY] & @CRLF & _
    'Width' & @TAB & $aiRandom[$iW] & ' | ' & $aiPos[$iW] & @CRLF & _
    'Height' & @TAB & $aiRandom[$iH] & ' | ' & $aiPos[$iH], 10, $hGUI)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GUI_EVENT_CLOSE()
    Exit
    EndFunc

    [/autoit]

    Hmpf, ... Dabei wollte ich dir so ein schönes Beispiel schreiben :D
    Ist das zufällig das Problem was du hast?

  • [Läuft] 2D/(3D)? RPG Spiel in AutoIt

    • Yjuq
    • 20. Februar 2013 um 14:18

    Die Irrlicht Engine ist doch eine 3D Engine.
    Zumindest wurde diese speziell dafür angefertigt!
    Wieso sollte man diese dann nicht verwenden? :D

  • GUI Object größe in gui ermitteln

    • Yjuq
    • 20. Februar 2013 um 14:17

    Z.B. ControlGetPos() wäre für deine Zwecke anwendbar ...

  • [Läuft] 2D/(3D)? RPG Spiel in AutoIt

    • Yjuq
    • 19. Februar 2013 um 20:18

    Geeinigt wurde bisher auf:
    Zeitreise von der Zukunft bis in die Vergangenheit (Mittelalter)
    Aber ob das so fest steht :/

  • Irrlicht.dll - DLL Call

    • Yjuq
    • 19. Februar 2013 um 16:31

    Okay, also kann ich das mit dem ansprechen der Irrlicht.dll direkt lassen.
    Dann muss ich doch auf die au3 + der entsprechenden DLL zurück greifen.

    Dann bedanke ich mich herzlichst! Falls doch jemanden was einfällt, lasst es mich bitte wissen ^^

  • Irrlicht.dll - DLL Call

    • Yjuq
    • 19. Februar 2013 um 14:20

    Sorry, leider muss ich euch nochmal in anspruch nehmen ...
    Ich hänge immernoch am ersten Tutorial: Tutorial 1: HelloWorld

    Mein derzeitiges Script sieht so aus:

    Spoiler anzeigen
    [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet('{ESC}', '_Exit')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hIrrlicht = DllOpen('Irrlicht.dll'), _
    $tdimension2d = DllStructCreate('UINT; UINT'), _
    $ptrdevice

    [/autoit] [autoit][/autoit] [autoit]

    Global Enum $EDT_NULL, $EDT_SOFTWARE, $EDT_BURNINGSVIDEO, $EDT_DIRECT3D8, $EDT_DIRECT3D9, $EDT_OPENGL, $EDT_COUNT

    [/autoit] [autoit][/autoit] [autoit]

    DllStructSetData($tdimension2d, 1, 640)
    DllStructSetData($tdimension2d, 2, 480)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $ptrdevice = DllCall($hIrrlicht, 'ptr:cdecl', 'createDevice', _
    'UINT', $EDT_DIRECT3D9, _
    'ptr', DllStructGetPtr($tdimension2d), _
    'UINT', 16, _
    'BOOL', False, _
    'BOOL', False, _
    'BOOL', False, _
    'ptr', 0)

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then _Exit()

    [/autoit] [autoit][/autoit] [autoit]

    ; WinSetTitle('', '', 'Tutorial 1: HelloWorld')

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    $tdimension2d = 0
    DllClose($hIrrlicht)
    Exit
    EndFunc

    [/autoit]

    Und zwar hänge ich an der Stelle, wo es darum geht den Titel für das Fenster zu setzen. Wie man sieht geht es auch mit WinSetTitle (Zeile 27) aber ich würde es viel lieber über die DLL machen! :D
    Das Problem ist, das dies eine Art Pointer benötigt. Z.B. Des Fensters oder so ähnlich. Sicher bin ich mir aber nicht! ^^

    Hier der Link zu setWindowCaption: setWindowCaption

    Das ganze ist ein wenig schwer zu erklären, daher habe ich mal einen kurzen C++ ausschnitt abgetippt (Ob der richtig ist, ist jetzt nebensächlich) um euch das zu verdeutlichen wieso es bei mir gerade hängt:

    Spoiler anzeigen
    Code
    void main()
    {
    	IrrlichtDevice *device = createDevice(Parameter blabla)
    
    	if (!device)
    		return 1;
    
    	device -> setWindowCaption(L"Hello World! - Irrlicht Engine Demo")
    }

    Hier können glaube ich nur die C++ experten was dazu sagen. Aber über jede Hilfe wäre ich dankbar! ^^
    Diese "device->setWindowCaption()" ist ein Zeiger. Sprich: setWindowCaotion() bezieht sich auf das Objekt device.
    Soviel ich darüber weiß! :P

    Leider habe ich keine Idee wie ich das umsetzen kann. Wäre schön wenn ihr mir da weiterhelfen könntet, weil sich das Restliche Tutorial so auf dieses Verfahren bezieht.

  • Irrlicht.dll - DLL Call

    • Yjuq
    • 19. Februar 2013 um 12:39

    Okey, vielen Dank :D
    Dann kann ich mich ja jetzt wieder ans Tutorial wagen ^^

  • Alles gute zum 26'ten, chip

    • Yjuq
    • 19. Februar 2013 um 12:36

    Alles jute :D

  • Irrlicht.dll - DLL Call

    • Yjuq
    • 19. Februar 2013 um 12:28

    Cool danke :D
    Ne, die Anwendung crasht bei mir net ;P

    Läuft wie geschmiert ^^

    Aber eines solltest du mir noch erklären: DllCall der 2te Parameter. Wioeso ptr:cdecl?

  • Irrlicht.dll - DLL Call

    • Yjuq
    • 18. Februar 2013 um 22:25

    Okay, ich versuch mal mit dem Wissen das ganze zu verschlimmbessern ^^
    Dank dir :)

  • 300k Posts

    • Yjuq
    • 18. Februar 2013 um 22:19

    Leute, ihr wisst was das heißt:
    Haut in die Tasten :D

  • Irrlicht.dll - DLL Call

    • Yjuq
    • 18. Februar 2013 um 21:11

    Hallo, ich will mich mit Irrlicht beschäftigen. Ich weiß das es eine UDF dafür gibt, allerdings liegt dort eine weitere DLL bei, worauf diese UDF zugreift.
    Ich selber möchte direkt die Irrlicht.dll verwenden ohne Umwege über den Wrapper.

    Nun stocke ich aber bei einem Dll Call. Und zwar arbeite ich gerade dieses Tutorial durch: Tutorial 1: HelloWorld
    Mein derzeitiger Code sieht so aus:

    [autoit]

    Global $hIrrlicht, $IrrlichtDevice

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $hIrrlicht = DllOpen('Irrlicht.dll')

    [/autoit][autoit][/autoit][autoit]

    $irrlichtDevice = DllCall($hIrrlicht, 'ptr', 'createDevice', _
    'E_DRIVER_TYPE', 'EDT_SOFTWARE', _
    'dimension2d<u32>', 'dimension2d<u32>(640, 480)', _
    'u32', 16, _
    'bool', false, _
    'bool', false, _
    'bool', false, _
    'IEventReceiver *', 0)

    [/autoit][autoit][/autoit][autoit]

    If @error Then MsgBox(0, '', 'Error: ' & @error, 5)

    [/autoit][autoit][/autoit][autoit]

    While 1
    WEnd

    [/autoit][autoit][/autoit][autoit]

    DllClose($hIrrlicht)

    [/autoit]

    Ich weiß das ich DllCall total falsch verwende, aber bevor ich jetzt darauf näher eingehe solltet ihr euch kurz die Referenz dazu ansehen: createDevice()

    Nun sollte ein Fenster erscheinen. Tut's aber nicht. Und zwar sieht man in der Referenz das ein "eigener Datentyp" verwendet wird. Kurz: (ich glaube so heißen die) eine Klasse. Wie kann ich dies nun als "Type" eintragen?

    Ich hoffe ihr könnt mir weiterhelfen diesen DllCall so richtig zu stellen, dass dieser die gewünschte Funktion ausführt. Ich rätsel da jetzt schon seit gestern! ^^


    €dit:
    Weil nicht jeder die Irrlicht.dll hat, habe ich das oben genannte Script sowie die DLL in diese *.zip ausgelegt: Irrlicht.zip

  • [Suche Leute] 2D RPG-Spiel in Autoit

    • Yjuq
    • 17. Februar 2013 um 00:23

    Hey :D
    Ich würde leibend gerne mit dir an ein RPG arbeiten ^^

    Ich wollte schon selber zich mal eins anfangen, aber leider viel dann die Motivation immer direkt wieder in den Keller weil ich keine Mitarbeiter hatte die Motiviert waren.
    Mit Irrlicht habe ich noch nicht gearbeitet, würde ich aber wenn du dies nutzen willst.

    Naja, schreib mich bei interesse bitter per PN an!

  • Problem bei Array bzw. Routen

    • Yjuq
    • 12. Februar 2013 um 21:22

    Und wo ist das Problem?
    Du speicherst einfach alle Möglichkeiten ab und dann vergleichst du und suchst dir die kürzeste Strecke heraus.
    Ist doch ganz easy ...

    Musst nur aufpassen das du wirklich alle Kombinationen vergleichst :D

  • GDI+ Animationen und AutoIt Multiplayer

    • Yjuq
    • 9. Februar 2013 um 22:00

    1) Ne, Animationen kannst du so direkt nicht einfügen. Musst du wohl oder übel im Script animieren. Kannst aber den aufbau einer *.gif lernen und dann die einzelnen Bilder selber auslesen. Könnte man sicherlich immer wieder gebrauchen.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™