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. hellboy3

Beiträge von hellboy3

  • GDI+ Figur bewegen mit Bildwechsel

    • hellboy3
    • 4. Juni 2010 um 12:43

    oh sorry kann ich das noch ändern? xD


    Edit: Sollte das ein Mod sehen bitte verschieben , danke :rolleyes:

  • GDI+ Figur bewegen mit Bildwechsel

    • hellboy3
    • 4. Juni 2010 um 12:39

    Hi @ all, ich hab mich in den letzten Tagen recht intensiv mit GDI+ beschäftigt und hatte auch dank Ubuntus Tut erste kleine Erfolge :D
    Ich bastel gerade an einem Spiel im RPG-Style sprich Zelda,Pokemon was weiß ich :P
    Naja ich dachte mir vielleicht interessierts manche Anfänger wie sie das mit dem Bildwechsel vor der Bewegung anstellen , ich poste jetzt
    einfach das Grundgerüst von meinem Spiel (das momentane script ist schon sehr stark abgeändert), es ist einfach Ubuntu`s GDI+ Tut-Script nur etwas abgeändert , wiegesagt nichts besonderes aber es kann ja helfen/nicht schaden.
    Die Bilder und das Script findet ihr im Anhang ;)

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <GdiPlus.au3>;das include
    #include <Misc.au3>

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

    OnAutoItExitRegister("_end") ; die Funktion _end am Ende des Scriptes ausführen
    _GDIPlus_Startup() ;Gdi starten

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

    Global $x = 0;x und y deklarieren
    Global $y = 0

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

    Global $GUI_Width = 400
    Global $GUI_Height = 380

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

    Global $movespeed = 6

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

    ;----Bilder laden---------------------
    Global $Figur_unten = _GDIPlus_ImageLoadFromFile(@ScriptDir &"/Bilder/figur_unten.gif")
    Global $Figur_oben = _GDIPlus_ImageLoadFromFile(@ScriptDir &"/Bilder/figur_oben.gif")
    Global $Figur_rechts = _GDIPlus_ImageLoadFromFile(@ScriptDir &"/Bilder/figur_rechts.gif")
    Global $Figur_links = _GDIPlus_ImageLoadFromFile(@ScriptDir &"/Bilder/figur_links.gif")
    Global $bk = _GDIPlus_ImageLoadFromFile(@ScriptDir & "/Bilder/bck.png")

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

    $Gui = GUICreate("GDI+ Beispiel / Tutorial", $GUI_Width, $GUI_Height, 300,100)
    $height = _GDIPlus_ImageGetHeight($Figur_unten)
    $width = _GDIPlus_ImageGetWidth($Figur_unten)
    $verhaelnis = $height / $width
    $graphic = _GDIPlus_GraphicsCreateFromHWND($Gui);Frontbuffer
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($GUI_Width, $GUI_Height, $graphic)
    $buffer = _GDIPlus_ImageGetGraphicsContext($bitmap);Backbuffer
    Global $aktuelleFigur = $Figur_unten
    GUISetState(@SW_SHOW)

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

    While 1

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

    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch

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

    Select

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

    Case _IsPressed(25) and not $x <= 0; ------------- geändert -------------
    $x -= $movespeed
    $aktuelleFigur=$Figur_links

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

    Case _IsPressed(27) and $x <= $GUI_Width-41; ------------- geändert -------------
    $x += $movespeed
    $aktuelleFigur=$Figur_rechts

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

    Case _IsPressed(26) and not $y <= 0; ------------- geändert -------------
    $y -= $movespeed
    $aktuelleFigur=$Figur_oben

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

    Case _IsPressed(28) and $y <= $GUI_Height-80; ------------- geändert -------------
    $y += $movespeed
    $aktuelleFigur=$Figur_unten
    EndSelect

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

    _Draw()

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

    WEnd

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

    Func _end();die Exit funktion
    _GDIPlus_GraphicsDispose($graphic);Grafik Objekt freigeben
    _GDIPlus_GraphicsDispose($buffer)
    _GDIPlus_BitmapDispose($bitmap)
    ;Bilder freigeben
    _GDIPlus_ImageDispose($Figur_oben)
    _GDIPlus_ImageDispose($Figur_unten)
    _GDIPlus_ImageDispose($Figur_rechts)
    _GDIPlus_ImageDispose($Figur_links)
    _GDIPlus_ImageDispose($bk)
    _GDIPlus_Shutdown();Ressourcen freigeben
    EndFunc

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

    Func _Draw()
    _GDIPlus_GraphicsClear($buffer);Inhalt des Backbuffer`s wird gelöscht
    _GDIPlus_GraphicsDrawImageRect($buffer,$bk,0,0,$GUI_Width, $GUI_Height)
    _GDIPlus_GraphicsDrawImageRect($buffer,$aktuelleFigur,$x,$y,40,40 * $verhaelnis)
    _GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0) ;Backbuffer wird an den Frontbuffer übergeben
    ;Sleep(30)
    EndFunc

    [/autoit]

    Dateien

    GDI+ Beispiel.rar 442,52 kB – 413 Downloads
  • GPIPlus

    • hellboy3
    • 4. Juni 2010 um 12:20

    Den Ansatz für deine Problemlösung findest du doch in Ubuntus Tut?

    Spoiler anzeigen
    [autoit]

    Select
    Case _IsPressed(25) and not $x <= 0; ------------- geändert -------------
    $x -= 3
    Case _IsPressed(26) and not $y <= 0; ------------- geändert -------------
    $y -= 3
    Case _IsPressed(27) and $x <= 160; ------------- geändert -------------
    $x += 3
    Case _IsPressed(28) and $y <= 125; ------------- geändert -------------
    $y += 3
    EndSelect

    [/autoit]

    Hier nochma der Link zum Tut

    Wenn du dein Spiel auf dem Grundgerüst von Ubuntus Tut aufgebaut hast dann musste nurnoch bisschen an den Koordinaten rumspielen :huh:


    MfG Hellboy

  • Sportarten

    • hellboy3
    • 3. Juni 2010 um 20:19

    Ich vermisse Kraftsport :(
    Das gute alte Fitnessstudio

    Und ich würde die Umfrage auf "Welchen Sport mögt ihr bzw. welchen Sport treibt ihr ?" umstellen ist noch interessanter wobei ich denke das die meisten auch
    die Sportart ausüben die sie mögen (schätze ich , verbessert mich wenn ich mich irre)

    MfG Hellboy

  • Ich schrubb hier nur :o

    • hellboy3
    • 3. Juni 2010 um 20:14

    Wilkommen auch von mir :D

  • Skype Push2Talk ObjectError

    • hellboy3
    • 3. Juni 2010 um 20:11

    Hey häng bitte mal das bild an interessiert mich xD

    MfG Hellboy

  • Neuer PC

    • hellboy3
    • 3. Juni 2010 um 15:35

    Naja High End zeug wirste mit 300 euro natürlich nicht bekommen aber ich kann dir meine ATI Radeon HD 4650 von XFX ans Herz legen
    für 50-60 euro bekommste die und mit der geht schon einiges (also für den preis genial)

    -1GB GDDR2 Memory
    -Direct X 10.1
    -Grafikspeicherbus [Bit]: 128

    und vieles mehr einfach mal "ATI Radeon HD 4650 XFX" googeln ;)

    MfG Hellboy

  • Frage zu einer GUI

    • hellboy3
    • 3. Juni 2010 um 15:23

    Du könntest nach dem GuiCreate das hier machen falls dir das besser gefällt ist aber geschmackssache.

    [autoit]

    _GUICreateRoundRect($Form1_1, 49,49)

    [/autoit]

    Diese Func musste noch ins Script einfügen:

    Spoiler anzeigen
    [autoit]

    Func _GUICreateRoundRect($hwnd, $radx=15,$rady=15)
    $pos = WinGetPos($hwnd)

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

    $1 = 0
    $2 = 0
    $3 = $pos[2]
    $4 = $pos[3]
    $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $1, "long", $2, "long", $3, "long", $4,"long",$radx,"long",$rady)

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

    DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $hwnd, "long", $ret[0], "int", 1)
    EndFunc ;==>_GUICreateRoundRect

    [/autoit]

    Edit: Mach doch ein Toolfenster draus ist doch auch ganz nett

    [autoit]

    $Form1_1 = GUICreate("Shutdown", 227, 115, 522, 178,-1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE,$WS_EX_TOPMOST, $WS_EX_APPWINDOW))

    [/autoit]

    MfG Hellboy

  • Schleife funktioniert nicht

    • hellboy3
    • 1. Juni 2010 um 14:28
    Zitat

    ich der Meinung das es okay ist mit kleinen Bots Autoit zu lernen aber nicht okay ist wenn man autoit nur lern um bots zu schreiben.

    Sehe ich genauso , hab auch mit kleinen Bots,Spammern angefangen klingt jetzt nicht sehr intelligent oder wie viele meinen Sciptkiddy like aber mir hats
    am Anfang sehr geholfen.
    Naja musste wohl alleine durch oder du registrierst dich in einem Forum indem AutoIt hauptsächlich bzw. nur für Bot`s benutzt wird(Google mal autoit bot)

    MfG Hellboy

  • Wie seid ihr auf autoit gestoßen?

    • hellboy3
    • 31. Mai 2010 um 19:24

    Ich persönlich habe AutoIt über Ingamers.de kennengelernt und wenn man dann so ins coden kommt dann kommt man halt am deutschen offi Forum
    nicht vorbei.(Allein schon wenn man in Google ne frage über autoit stellt stößt man auf AutoIt.de xD)
    Dieses Forum stellt übrigens alle Foren die ich bis jetzt besucht habe in den Schatten , macht nen mega Spaß hier :D

    MfG Hellboy

  • Gdi+ Tutorial [Part 5]

    • hellboy3
    • 31. Mai 2010 um 18:28

    Tehe ich fands auch erst komisch :D

    Spoiler anzeigen
    [autoit]

    Select
    Case _IsPressed(25)
    $x -= 1
    Case _IsPressed(26)
    $y -= 1
    Case _IsPressed(27)
    $x += 1
    Case _IsPressed(28)
    $y += 1
    EndSelect

    [/autoit]


    Wenn du damit Pfeil-Oben und dann Pfeil-Rechts drückst ist rechts geblockt

    So hingegen nicht

    Spoiler anzeigen
    [autoit]

    Select
    Case _IsPressed(25)
    $x -= $movespeed
    Case _IsPressed(27)
    $x += $movespeed
    Case _IsPressed(26)
    $y -= $movespeed
    Case _IsPressed(28)
    $y += $movespeed
    EndSelect

    [/autoit]

    MfG Hellboy

    PS: Front- und Backbuffer gehören nun mal zu den Basics (oder?) find`s aber echt nett das mit den TuT`s :thumbup:

  • Gdi+ Tutorial [Part 5]

    • hellboy3
    • 31. Mai 2010 um 14:35
    Zitat

    Mir ist nur aufgefalen das zwei Tasten gleichzietig nicht aktzeptiert werden.
    (Was auch logisch ist)

    Naja wie mans braucht , bei Spielen wie Pokemon,Zelda,usw... ist es sogar ganz gut das nicht beide Tasten gleichzeitig akzeptiert werden ;)
    Wenn man die Func so aufstellt das erst x x kommt und dann y y ist es übrigens noch besser ;)

    Spoiler anzeigen
    [autoit]

    Select
    Case _IsPressed(25)
    $x -= 1
    Case _IsPressed(27)
    $x += 1
    Case _IsPressed(26)
    $y -= 1
    Case _IsPressed(28)
    $y += 1
    EndSelect

    [/autoit]

    MfG Hellboy


    PS: Wann kommt die Buffereinführung ? :S

  • Gdi+ Tutorial [Part 5]

    • hellboy3
    • 29. Mai 2010 um 21:08

    Naja sollte er das mit dem bewegen der figur einführen ,dann kommt er auch nicht an der Erklärung von Front- und Backbuffer vorbei oder nicht?
    Wäre zumindest ziemlich hilfreich das noch zu erklären :wacko:


    MfG Hellboy

  • Gdi+ Tutorial [Part 5]

    • hellboy3
    • 29. Mai 2010 um 17:24

    Wirklich einleuchtend erklärt hat mir sehr geholfen , freue mich auf die Fortsetzung ;)

    MfG Hellboy :thumbup:

  • Letzte Erinnerung - Die Rache der verlorenen Seelen [2D-RPG]

    • hellboy3
    • 29. Mai 2010 um 17:10

    Oh mein Gott, "Ich kann das besser und du kannst das nicht , und das ist geklaut und blabla...."
    Kindergarten?

    MfG Hellboy

  • SoundsetwaveVolume - Problem

    • hellboy3
    • 27. Mai 2010 um 21:21

    Juhuuu scheint zu funktionieren ich baus mal in mein script ein und wenns dort auch funzt ( und das wird es) dann kann ich das auf gelöst stellen ;)

    Danke dir schonmal name :thumbup:

    MfG Hellboy

  • SoundsetwaveVolume - Problem

    • hellboy3
    • 27. Mai 2010 um 20:42

    Ich bin eig. der letzte der sagt "Mach mal!" aber könntest du mir das evtl. ins script einbauen :S

    MfG Hellboy

  • SoundsetwaveVolume - Problem

    • hellboy3
    • 27. Mai 2010 um 18:50

    Das Problem ist nur das der Sound nicht über die Bass.au3 wiedergegeben wird :(

    MfG Hellboy

  • Die Blume sagt bei!

    • hellboy3
    • 27. Mai 2010 um 15:29

    Haha das hab ich auch noch nicht erlebt :D

    Naja falscher Alarm gut dasde bleibst ;)

    MfG Hellboy

  • SoundsetwaveVolume - Problem

    • hellboy3
    • 27. Mai 2010 um 14:34

    Hallo Leute, schon seit einiger Zeit bastel ich wenn ich Zeit habe an einer kleinen Firefox automatisierung (ne art web-music player)
    Auf WinXP läuft die Lautstärkeregelung über SoundSetWaveVolume einwandfrei , ich suche aber eine Lösung damit es auch auf WinVista und Win7 so gut läuft.

    Hier das Script, dass mein Problem schildert:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <FF.au3>

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

    Opt('GUIOnEventMode', 1)

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

    Global $iOld = -1

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

    Global $Form1 = GUICreate("LautstärkeProblem", 130, 30, 990, 30,-1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE,$WS_EX_TOPMOST, $WS_EX_APPWINDOW))
    GUISetOnEvent(-3, '_Exit')
    $Slider = GUICtrlCreateSlider(5, 7, 90, 21)
    SoundSetWaveVolume(80)
    GUICtrlSetData($Slider, 50)
    GUISetState(@SW_SHOW)

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

    _FFStart("http://www.technobase.fm/wmplayer.php","default",1,True)

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

    While True
    $iVolume = GUICtrlRead($Slider)
    If $iOld <> $iVolume Then
    SoundSetWaveVolume($iVolume)
    $iOld = $iVolume
    EndIf
    WEnd

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

    Func _Exit()
    _FFQuit()
    Exit
    EndFunc

    [/autoit]

    PS: Damit das Script funktioniert braucht man MozRepl :whistling:
    Link zu MozRepl

    Ich hoffe jemand der eins der neueren Betriebssysteme besitzt kann mir helfen
    (Ich denke da an eine Art UniversalSoundSetWaveVolume-Func : if @OSVersion="Vista" or "Win7" then........ sowas evtl??)

    MfG Hellboy

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™