BMP Per Taste Verschieben???

08/05/2010 14:36 WiiZocker#1
Hallo, ist es möglich eine .BMP Datei per Taste zu verschieben.
Ich dachte mir das sich die Coordinaten ändern sollten damit das Passiert, allerdings geht es nicht.

Gibt es irgendeine möglichkeit dafür???

MfG WiiZocker
08/05/2010 14:39 bladerofdarknes#2
ich hab zwar deine frage nicht ganz verstanden, aber schau dir mal die funktion an:
FileMove
08/05/2010 14:48 WiiZocker#3
Nein, das ist nicht was ich suche, ich habe es Hinbekommen das das Bild sich bewegt, allerdings öffnet sich damit eine neue Gui-.-
08/05/2010 15:39 PenGuin :O#4
Source?
08/05/2010 15:52 WiiZocker#5
Es öffnet sich ein neues Fenster, statt das alles in einem Fenster Passiert.
Ich habe 2 Varianten hingeschrieben.
Falls das Hilft.


Ich weiß, soein game gibt es schon ist klar xD
Aber ich mache es nur zu übungszwecken.

Um es selber zu benutzen^^
bzw für mich erweitern.

File ist Clean, schließlich verlange ich hilfe ;D

08/05/2010 17:08 Shadow992#6
Quote:
Originally Posted by WiiZocker View Post
Es öffnet sich ein neues Fenster, statt das alles in einem Fenster Passiert.
Ich habe 2 Varianten hingeschrieben.
Falls das Hilft.


Ich weiß, soein game gibt es schon ist klar xD
Aber ich mache es nur zu übungszwecken.

Um es selber zu benutzen^^
bzw für mich erweitern.

File ist Clean, schließlich verlange ich hilfe ;D

Na wenn man eine 2.Gui erstellen lässt, dann braucht man sich nicht wundern, wenn dann ein 2. Fenster kommt...
PHP Code:
;Neues Fenster öffnet sich:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

HotKeySet("{Left}","SpielerNachLinks")
HotKeySet("{Right}","SpielerNachRechts")

$X_BallPos 206
$Y_BallPos 
308
$X_Spieler 
160
$Y_Spieler 
592
$X_Gegner 
160
$Y_Gegner 
16

#Region ### START Koda GUI section ### Form=C:\Users\Jan\Desktop\Pong\Daten\Spielfeld GUI.kxf
$PongGui GUICreate("Pong By WiiZocker"436638257164)
$Ball GUICtrlCreatePic("Daten\Ball.bmp"$X_BallPos$Y_BallPos2222BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Spieler GUICtrlCreatePic("Daten\Spieler.bmp"$X_Spieler$Y_Spieler12123BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Gegner GUICtrlCreatePic("Daten\Gegner.bmp"$X_Gegner$Y_Gegner12123BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Spielfeld GUICtrlCreatePic("Daten\Spielfeld.bmp"00435637BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg 
GUIGetMsg()
Switch 
$nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

Func SpielerNachLinks
()
$X_Spieler $X_Spieler 7
Aktuell
()
EndFunc

Func SpielerNachRechts
()
$X_Spieler $X_Spieler 7
Aktuell
()
EndFunc

Func Aktuell
()
GUICtrlSetPos($Ball,$X_BallPos,$Y_BallPos)
GUICtrlSetPos($Spieler,$X_Spieler,$Y_Spieler)
GUICtrlSetPos($Spieler,$X_Gegner,$Y_Gegner)
EndFunc 
08/05/2010 17:08 KDeluxe#7
benutz doch einfach GUICtrlSetPos():
PHP Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

HotKeySet("{Left}","SpielerNachLinks")
HotKeySet("{Right}","SpielerNachRechts")

$X_BallPos 206
$Y_BallPos 
308
$X_Spieler 
160
$Y_Spieler 
592
$X_Gegner 
160
$Y_Gegner 
16

#Region ### START Koda GUI section ### Form=C:\Users\Jan\Desktop\Pong\Daten\Spielfeld GUI.kxf
$PongGui GUICreate("Pong By WiiZocker"436638)
$Ball GUICtrlCreatePic("Daten\Ball.bmp"$X_BallPos$Y_BallPos2222BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Spieler GUICtrlCreatePic("Daten\Spieler.bmp"$X_Spieler$Y_Spieler12123BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Gegner GUICtrlCreatePic("Daten\Gegner.bmp"$X_Gegner$Y_Gegner12123BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Spielfeld GUICtrlCreatePic("Daten\Spielfeld.bmp"00435637BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While True
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
    EndSwitch
WEnd

Func SpielerNachLinks
()
    If 
$X_Spieler 15 Then
        $X_Spieler 
$X_Spieler 7
    
EndIf
    
GUICtrlSetPos($Spieler$X_Spieler$Y_Spieler)
EndFunc

Func SpielerNachRechts
()
    If 
$X_Spieler 295 Then
        $X_Spieler 
$X_Spieler 7
    
EndIf
    
GUICtrlSetPos($Spieler$X_Spieler$Y_Spieler)
EndFunc 
E\ Da wohl wohl jemand ein paar Sekunden schneller, mein Beispiel achtet aber noch auf die Position.
08/05/2010 21:27 WiiZocker#8
Danke euch beiden und @Shadow, das wusste ich auch ;D habs nur so mit hingeschrieben.

Edit: Wie schaffe ich es das der Ball von dem Spieler Apprallt?

Func BallBewegen()

While 1

$Y_BallPos = $Y_BallPos + 4

GUICtrlSetPos($Ball,$X_BallPos,$Y_BallPos)
Sleep(5)

If ;...... Then
$Y_BallPos = $Y_BallPos - 4
EndIf


;MsgBox(0,"Gewonnen","Du hast Gewonnen!")
;EndIf

WEnd
EndFunc
08/05/2010 21:33 HardCore.1337#9
ich glaube ich faile grade mächtig, aber ich würde das verschieben mit GDI+ machen.
08/05/2010 21:39 Shadow992#10
Quote:
Originally Posted by HardCore.1337 View Post
ich glaube ich faile grade mächtig, aber ich würde das verschieben mit GDI+ machen.
Er kriegt es nicht mal mit einer GUI hin und du kommst mit GDI+ ?
Schöner wäre es, da hast du recht, aber da wird er sich wohl vorerst die Zähne dran ausbeisen. ;)
08/05/2010 21:54 WiiZocker#11
OK habe ebent Editiert und nicht gewusst das schon geantwortet worden ist.

Code:
Edit: Wie schaffe ich es das der Ball von dem Spieler Apprallt?

Func BallBewegen()

While 1

$Y_BallPos = $Y_BallPos + 4

GUICtrlSetPos($Ball,$X_BallPos,$Y_BallPos)
Sleep(5)

If ;...... Then
$Y_BallPos = $Y_BallPos - 4
EndIf


;MsgBox(0,"Gewonnen","Du hast Gewonnen!")
;EndIf

WEnd
EndFunc
08/05/2010 21:56 HardCore.1337#12
.nAno hat mal einen Workshop über ein ähnliches Thema gemacht.
Vlt. hilft dir das weiter. (Findest du in seiner Sig.)
08/05/2010 22:30 WiiZocker#13
Ok danke, aber das problem besteht noch immer....
08/06/2010 08:07 Shadow992#14
Quote:
Originally Posted by WiiZocker View Post
Ok danke, aber das problem besteht noch immer....
Was für ein Problem?
Wir haben das Problem doch schon gelöst
(sogar 2mal).
08/06/2010 13:27 WiiZocker#15
Ok, es ist schomn gelöst, also das ursprüngliche, aber da ich nicht noch nen Thread posten will, frag ich hier nochmal^^

Quote:
Edit: Wie schaffe ich es das der Ball von dem Spieler Apprallt?

Func BallBewegen()

While 1

$Y_BallPos = $Y_BallPos + 4

GUICtrlSetPos($Ball,$X_BallPos,$Y_BallPos)
Sleep(5)

If ;...... Then
$Y_BallPos = $Y_BallPos - 4
EndIf


;MsgBox(0,"Gewonnen","Du hast Gewonnen!")
;EndIf

WEnd
EndFunc
Hier mal Zittiert was auf der 1sten Seite geschrieben steht.