Beim klicken auf Buttom erschein ein neuer und der alte verschwindet

  • Hallo zusammen

    Ich habe seit kurzem AutoIt für mich entdeckt. nun will ich ein kleines Spiel erstellen.
    Es soll ein kleines Shootergame werden.
    Meine Idee ist, das Random ein Button auftaucht, wenn man draufklickt verschwindet er und es erscheint ein neuer Buttom.

    Hier ist mal der Anfang

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;*******************************************************************
    ;** Programm: schiessen **
    ;*******************************************************************
    ;** Autor: **
    ;** Datum: 2.12.09 **
    ;** Version 1.0 **
    ;*******************************************************************
    ;** Beschreibung **
    ;** kleines soiel bei dem man immer auf den scheiben klicken tut **
    ;** scheibe spawt rnd **
    ;*******************************************************************
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Fileinstall("star.bmp", @TempDir & "\" & "star.bmp", 1)

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

    GuiCreate("Title",400,420) ;Breite,Höhe, Position X auf Bildschirm, position Y auf Bildschirm
    $start = GUICtrlCreateButton("Start",0,0,400,20)

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

    GuiSetState()
    While 1
    $msg=GuiGetMsg()
    If $msg=-3 Then Exit
    If $msg=$start Then ziel()

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

    Wend

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

    Func ziel()

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

    $Button2 = GUICtrlCreateButton("Button2", Random(0,360), Random(20,360), 40, 40, BitOR($BS_BITMAP,$WS_GROUP))
    GUICtrlSetImage(-1, "star.bmp", -1)
    GUISetState(@SW_SHOW)
    ziel2()
    EndFunc

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

    Func ziel2()
    $Button3 = GUICtrlCreateButton("Button3", Random(0,360), Random(20,360), 40, 40, BitOR($BS_BITMAP,$WS_GROUP))
    GUICtrlSetImage(-1, "star.bmp", -1)
    GUISetState(@SW_SHOW)
    EndFunc

    [/autoit]

    ich habe keine Idee wie ich das machen könnte. Hoffe ihr könnt mir ein paar inputs geben^^

    Storyteller

    Make it idiot proof, and someone will build a better idiot!

    Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht.

    Einmal editiert, zuletzt von Storyteller (8. Dezember 2009 um 14:47)

  • Ich denke GuiCtrlSetPos() ist das, was du suchst.

    Edit: Der Befehl war schwachsinn -.- jetzt denke ich richtig ^^

  • So vielleicht?

    Spoiler anzeigen
    [autoit]

    ;*******************************************************************
    ;** Programm: schiessen **
    ;*******************************************************************
    ;** Autor: **
    ;** Datum: 2.12.09 **
    ;** Version 1.0 **
    ;*******************************************************************
    ;** Beschreibung **
    ;** kleines soiel bei dem man immer auf den scheiben klicken tut **
    ;** scheibe spawt rnd **
    ;*******************************************************************
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Fileinstall("star.bmp", @TempDir & "\" & "star.bmp", 1)

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

    $GUI = GuiCreate("Title",400,420) ;Breite,Höhe, Position X auf Bildschirm, position Y auf Bildschirm
    $start = GUICtrlCreateButton("Start",0,0,400,20)
    ;erstellt den Ziel Button außerhalb der GUI.
    $Ziel = GUICtrlCreateButton("Ziel", -200, -200, 40, 40, BitOR($BS_BITMAP,$WS_GROUP))
    ;~ GUICtrlSetImage(-1, "star.bmp", -1)
    $Punkte = 0

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

    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $start
    _MoveZiel();Verschiebt den BUtton in den sichtbaren bereich
    Case $Ziel
    $Punkte += 1 ; Gibt einen Punkt mehr
    _MoveZiel() ; Verschiebt den Button in den sichtbaren Bereich
    ConsoleWrite("Punkte: "&$Punkte&@CRLF)
    EndSwitch
    Wend

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

    Func _MoveZiel()
    ;Verschiebe den Button an eine zufällige Position innerhalb der GUI
    ControlMove($GUI,"",$Ziel,Random(0,360), Random(20,360))
    EndFunc

    [/autoit]
  • Cool danke für die schnelle Antwort hab mit sehr geholfen

    Make it idiot proof, and someone will build a better idiot!

    Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht.