oh sorry kann ich das noch ändern? xD
Edit: Sollte das ein Mod sehen bitte verschieben , danke ![]()
oh sorry kann ich das noch ändern? xD
Edit: Sollte das ein Mod sehen bitte verschieben , danke ![]()
Hi @ all, ich hab mich in den letzten Tagen recht intensiv mit GDI+ beschäftigt und hatte auch dank Ubuntus Tut erste kleine Erfolge ![]()
Ich bastel gerade an einem Spiel im RPG-Style sprich Zelda,Pokemon was weiß ich
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 ![]()
#include <GuiConstants.au3>
#include <GdiPlus.au3>;das include
#include <Misc.au3>
OnAutoItExitRegister("_end") ; die Funktion _end am Ende des Scriptes ausführen
_GDIPlus_Startup() ;Gdi starten
Global $x = 0;x und y deklarieren
Global $y = 0
Global $GUI_Width = 400
Global $GUI_Height = 380
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")
$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)
While 1
[/autoit] [autoit][/autoit] [autoit]Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
Select
[/autoit] [autoit][/autoit] [autoit]Case _IsPressed(25) and not $x <= 0; ------------- geändert -------------
$x -= $movespeed
$aktuelleFigur=$Figur_links
Case _IsPressed(27) and $x <= $GUI_Width-41; ------------- geändert -------------
$x += $movespeed
$aktuelleFigur=$Figur_rechts
Case _IsPressed(26) and not $y <= 0; ------------- geändert -------------
$y -= $movespeed
$aktuelleFigur=$Figur_oben
Case _IsPressed(28) and $y <= $GUI_Height-80; ------------- geändert -------------
$y += $movespeed
$aktuelleFigur=$Figur_unten
EndSelect
_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
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
Den Ansatz für deine Problemlösung findest du doch in Ubuntus Tut?
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
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 ![]()
MfG Hellboy
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
Wilkommen auch von mir ![]()
Hey häng bitte mal das bild an interessiert mich xD
MfG Hellboy
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
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:
Func _GUICreateRoundRect($hwnd, $radx=15,$rady=15)
$pos = WinGetPos($hwnd)
$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)
DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $hwnd, "long", $ret[0], "int", 1)
EndFunc ;==>_GUICreateRoundRect
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
Zitatich 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
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 ![]()
MfG Hellboy
Tehe ich fands auch erst komisch ![]()
Select
Case _IsPressed(25)
$x -= 1
Case _IsPressed(26)
$y -= 1
Case _IsPressed(27)
$x += 1
Case _IsPressed(28)
$y += 1
EndSelect
Wenn du damit Pfeil-Oben und dann Pfeil-Rechts drückst ist rechts geblockt
So hingegen nicht
Select
Case _IsPressed(25)
$x -= $movespeed
Case _IsPressed(27)
$x += $movespeed
Case _IsPressed(26)
$y -= $movespeed
Case _IsPressed(28)
$y += $movespeed
EndSelect
MfG Hellboy
PS: Front- und Backbuffer gehören nun mal zu den Basics (oder?) find`s aber echt nett das mit den TuT`s ![]()
ZitatMir 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 ![]()
Select
Case _IsPressed(25)
$x -= 1
Case _IsPressed(27)
$x += 1
Case _IsPressed(26)
$y -= 1
Case _IsPressed(28)
$y += 1
EndSelect
MfG Hellboy
PS: Wann kommt die Buffereinführung ? ![]()
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
Wirklich einleuchtend erklärt hat mir sehr geholfen , freue mich auf die Fortsetzung ![]()
MfG Hellboy ![]()
Oh mein Gott, "Ich kann das besser und du kannst das nicht , und das ist geklaut und blabla...."
Kindergarten?
MfG Hellboy
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 ![]()
MfG Hellboy
Ich bin eig. der letzte der sagt "Mach mal!" aber könntest du mir das evtl. ins script einbauen ![]()
MfG Hellboy
Das Problem ist nur das der Sound nicht über die Bass.au3 wiedergegeben wird ![]()
MfG Hellboy
Haha das hab ich auch noch nicht erlebt ![]()
Naja falscher Alarm gut dasde bleibst ![]()
MfG Hellboy
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:
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <FF.au3>
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)
_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
Func _Exit()
_FFQuit()
Exit
EndFunc
PS: Damit das Script funktioniert braucht man MozRepl
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