[autoit]
execute
[/autoit]?
execute
[/autoit]?
Wiso keinen Sinn? Ich mache nie direkt einen Neustart, nachdem die Updates runtergeladen wurden...
Sobald ich dann weg bin, startet der wieder neu, ohne das ich dran gedacht habe, die Daten zu sichern, und im Gegensatz zu den Einstellungen ist das nicht dauerhaft
Würd dir empfehlen beim Pong so ne Art Startbildschirm zu machen, da der Ball sonst manchmal etwas unerwartet kommt...
Sowas wie: "Starten sie das Spiel mit "ENTER"
edit: Oh, hätte ich auch direkt in Name22s Thread reinschreiben können...
While Sleep(300000)
TraySetState(8)
$timer=TimerInit()
AdlibEnable("Timer")
Switch TrayGetMsg()
Case $s_hButton
showhide()
ContinueLoop
Case $exitbutton
oNExit()
ContinueLoop
EndSwitch
WEnd
ist ne Endlosschleife in ner Endlosschleife, macht also keinen Sinn...
edit: Zu spät ![]()
name22: So, hab dein Pong mal etwas "benutzerfreundlich" gemacht ![]()
#include <GDIPlus.au3>
#include <GUIConstants.au3>
#include <Misc.au3>
Global $GUIWidth = 600 ;Breite GUI
Global $GUIHeight = 400 ;Höhe GUI
Global $BallWidth = 10 ;Breite Punkt
Global $BallHeight = 10 ;Höhe Punkt
Global $PadHeight1 = 60 ;Höhe des linken Pads
Global $PadHeight2 = 60 ;Höhe des rechten Pads
Global $PadWidth1 = 10 ;Breite des linken Pads
Global $PadWidth2 = 10 ;Breite des rechten Pads
Global $GUIColorBG = 0xFF000000 ;Farbe GUI
Global $BallColor = 0xFFFFFFFF ;Farbe Punkt
Global $Pad1Color = 0xFFFFFFFF ;Farbe des linken Pads
Global $Pad2Color = 0xFFFFFFFF ;Farbe des rechten Pads
Global $LineColor = 0xFFFFFFFF ;Farbe der Mittellinie
Global $Score1 = 0
Global $Score2 = 0
Global $iXBall = $GUIWidth / 2 - $BallWidth / 2
Global $iYBall = Random($BallHeight + 10, $GUIHeight - $BallHeight - 10)
Global $iXPad1 = 10
Global $iYPad1 = $GUIHeight / 2 - $PadHeight1 / 2
Global $iXPad2 = $GUIWidth - $PadWidth2 - 10
Global $iYPad2 = $GUIHeight / 2 - $PadHeight2 / 2
Global $StepYBall
If Random(1, 2, 1) = 1 Then
Global $StepXBall = 5
Else
Global $StepXBall = -5
EndIf
Do
$StepYBall = Random(-5, 5, 1)
Until Not $StepYBall = 0
$hWnd = GUICreate("GDI+ Pong by Name22", $GUIWidth, $GUIHeight)
GUISetState(@SW_SHOW)
_GDIPlus_Startup()
Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphic)
Global $Buffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($Buffer, 2)
_GDIPlus_GraphicsClear($Buffer, $GUIColorBG)
Global $hBrush1 = _GDIPlus_BrushCreateSolid($BallColor)
Global $hBrush2 = _GDIPlus_BrushCreateSolid($Pad1Color)
Global $hBrush3 = _GDIPlus_BrushCreateSolid($Pad2Color)
Global $hBrush4 = _GDIPlus_BrushCreateSolid($LineColor)
AdlibRegister("_Draw", 20)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
AdlibUnRegister()
_GDIPlus_BrushDispose($hBrush1)
_GDIPlus_BrushDispose($hBrush2)
_GDIPlus_BrushDispose($hBrush3)
_GDIPlus_BrushDispose($hBrush4)
_GDIPlus_GraphicsDispose($Buffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Exit
EndSwitch
If Not WinActive($hWnd) = 0 Then
If _IsPressed("57") And $iYPad1 >= 0 Then $iYPad1 -= 2
If _IsPressed("53") And $iYPad1 <= $GUIHeight - $PadHeight1 Then $iYPad1 += 2
If _IsPressed("26") And $iYPad2 >= 0 Then $iYPad2 -= 2
If _IsPressed("28") And $iYPad2 <= $GUIHeight - $PadHeight2 Then $iYPad2 += 2
EndIf
WEnd
Func _Draw()
_GDIPlus_GraphicsClear($Buffer, $GUIColorBG)
_GDIPlus_GraphicsFillRect($Buffer, $iXPad1, $iYPad1, $PadWidth1, $PadHeight1, $hBrush2)
_GDIPlus_GraphicsFillRect($Buffer, $iXPad2, $iYPad2, $PadWidth2, $PadHeight2, $hBrush3)
For $i = 0 To Round($GUIHeight / 30) - 1
_GDIPlus_GraphicsFillRect($Buffer, $GUIWidth / 2 - 15, $i * 60, 10, 30, $hBrush4)
Next
_GDIPlus_GraphicsFillEllipse($Buffer, $iXBall, $iYBall, $BallWidth, $BallHeight, $hBrush1)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $GUIWidth, $GUIHeight)
$iXBall += $StepXBall
$iYBall += $StepYBall
Switch $iXBall
Case $iXPad1 + $PadWidth1 - 5 To $iXPad1 + $PadWidth1
If $iYBall >= $iYPad1 - $BallHeight / 2 And $iYBall <= $iYPad1 + $PadHeight1 + $BallHeight / 2 Then $StepXBall = $StepXBall * - 1
Case $iXPad2 - $PadWidth2 To $iXPad2 - $PadWidth2 + 5
If $iYBall >= $iYPad2 - $BallHeight / 2 And $iYBall <= $iYPad2 + $PadHeight2 + $BallHeight / 2 Then $StepXBall = $StepXBall * - 1
EndSwitch
If $iYBall >= $GUIHeight - $BallHeight Then $StepYBall = $StepYBall * - 1
If $iYBall <= 0 Then $StepYBall = $StepYBall * - 1
If $iXBall <= 0 Then
$Score2 += 1
WinSetTitle($hWnd, "", "Player 1: " & $Score1 & " | Player 2: " & $Score2)
Sleep(1000)
$iXBall = $GUIWidth / 2 - $BallWidth / 2
$iYBall = Random($BallHeight + 10, $GUIHeight - $BallHeight - 10)
$iYPad1 = $GUIHeight / 2 - $PadHeight1 / 2
$iYPad2 = $GUIHeight / 2 - $PadHeight2 / 2
If Random(1, 2, 1) = 1 Then
$StepXBall = 5
Else
$StepXBall = -5
EndIf
Do
$StepYBall = Random(-5, 5, 1)
Until Not $StepYBall = 0
EndIf
If $iXBall >= $GUIWidth - $BallWidth Then
$Score1 += 1
WinSetTitle($hWnd, "", "Player 1: " & $Score1 & " | Player 2: " & $Score2)
Sleep(1000)
$iXBall = $GUIWidth / 2 - $BallWidth / 2
$iYBall = Random($BallHeight + 10, $GUIHeight - $BallHeight - 10)
$iYPad1 = $GUIHeight / 2 - $PadHeight1 / 2
$iYPad2 = $GUIHeight / 2 - $PadHeight2 / 2
If Random(1, 2, 1) = 1 Then
$StepXBall = 5
Else
$StepXBall = -5
EndIf
Do
$StepYBall = Random(-5, 5, 1)
Until Not $StepYBall = 0
EndIf
EndFunc ;==>_Draw
Ich bin auch nicht sehr bewandert in GDI+ (sprich: so gut wie null Erfahrung
)
Würd mich also auch mal interessieren, wie das funzt...
Das Problem ist, dass die Variablen innerhalb einer Function nicht für andere Funktionen gelten, außer sie wurden AUßERHALB der Funktion als Global deklariert, oder, wie bei meinem Script, übergeben.
Sorry, habs falsch rübergebracht...
Sollte nen Scherz werden ![]()
[autoit]Und zu den Berechnungen, du musst im Grunde nur das, was du bei _IsPressed() stehen hast, ohne das _IsPressed() schreiben^^
If 25 Then $iX -= $bewegung
If 26 Then $iY -= $bewegung
If 27 Then $iX += $bewegung
If 28 Then $iY += $bewegung
Passiert recht wenig so ![]()
Ich hab ne Geschwindigkeit von (höchstens) 90 kbit/s und zwar mit Lan...
Da kannste dir vorstellen, wo wir wohnen ![]()
Bei Bewegung 100 sieht das dann so aus ![]()
Wenn das mit der Geschwindigkeit Pong geworden wär bräuchte man ja für ein Spiel ca. 2 Tage (Hört auf, wenn einer der Spieler eingeschlafen ist ^^)
Man, ist der langsam
(Kein Wunder das ich dachte, da passiert nichts. Hab nun mal keine Geduld...)
Passiert i-wie nichts...
@Pinguin94: Lol, geiler Titel (musste mal sein) ![]()
So, ist zwar nur ne 1 Zeilige Batch-Datei, aber ich hoffe, sie wird helfen...
Ihr kennt das bestimmt auch: Ihr habt gerade Tausend Programme offen, auf einmal werdet ihr zum Essen gerufen. Ihr denkt euch nichts, als die Windows-Update meldung aufgeht und geht Essen, aber als ihr wieder vor'm PC sitzt fällt euch auf, das der PC wieder neugestartet hat. Schuld sind wiedermal die Automatischen Updates (Wollen sie den PC neustartet? Noch 15min bis automatisch ja ausgewählt wird
). Das Scipt beendet die Neustart Meldung. Das geniale: Sie wird nur bis zu den nächsten Updates beendet, so dass die Funktion auch mal benutzt werden kann, wenn sie auch was nützt...
Hoffe das war Hilfreich ![]()
MFG
Cartan12
Oder einfach so:
[autoit]#include <Sound.au3>
$temp = sound()
Sleep(1000)
_Pause($temp)
Sleep(1000)
_Resume ($temp)
Sleep(1000)
func sound()
$abspiel=_SoundOpen("C:\test.mp3")
If @error = 2 Then
MsgBox(0, "Fehler", "Die Datei existiert nicht.")
Exit
EndIf
$playsound=_SoundPlay($abspiel, 0)
Return $abspiel
EndFunc
func _Pause($abspiel2)
_SoundPause($abspiel2)
EndFunc
func _Resume($abspiel3)
_SoundResume($abspiel3)
endfunc
Schau dir mal die optionalen Parameter von run an.
ZitatFunktion StdinWriteStdinWrite schreibt in den Konsolen-Standard-Eingabe-Stream eines Child-Prozesses, der normalerweise von Konsolen-Applikationen genutzt wird, um Benutzereingaben zu lesen, z.B. von der Tastatur. Während des Aufrufs von Run für den Child-Prozess, in den man schreiben möchte, muss der STD I/O Parameter den Wert von $Stdin_Child (1) enthalten, damit diese Funktion richtig arbeitet (siehe die Funktion Run).
ZitatAlles anzeigenoptional] Steuert verschiedene Optionen, die die Interaktion zwischen Parent- und Child-Prozess betreffen (STDIO).
0x1 ($STDIN_CHILD) = Stellt ein Handle zum STDIN-Stream des Child-Fensters bereit
0x2 ($STDOUT_CHILD) = Stellt ein Handle zum STDOUT-Stream des Child-Fensters bereit.
0x4 ($STDERR_CHILD) = Stellt ein Handle zum STDERR-Stream des Child-Fensters bereit.
0x8 ($STDERR_MERGED) = Stellt das selbe Handle für den STDOUT- und STDERR-Stream bereit (Setzt $STDOUT_CHILD und $STDERR_CHILD).
0x10 ($STDIO_INHERIT_PARENT) = Stellt dem Child-Fenster das Handle zum STDIO-Stream des Parent-Fensters bereit. Kann nicht mit einem anderen STDIO-Flag kombiniert werden. Dieses Flag ist nur dann sinnvoll, wenn die Parent-Anwendung als Kommandozeilenapplikation kompiliert wurde.
0x10000 ($RUN_CREATE_NEW_CONSOLE) = Der Child-Kommandozeilenprozess wird in einem eigenen Kommandozeilenfenster ausgeführt. Dieses Flag ist nur dann sinnvoll, wenn die Parent-Anwendung als Kommandozeilenapplikation kompiliert wurde.
Ich glaube teilweise wäre das alles andere als Werbung
Ich würde dass Serverauslastung nennen
Ich würds eher Angeberei nennen ![]()
ODER: cmd per run öffnen, und mit ControlSend() schreiben
1. Unsicher
2. Keine ID