|
You last visited: Today at 16:44
Advertisement
BMP Per Taste Verschieben???
Discussion on BMP Per Taste Verschieben??? within the AutoIt forum part of the Coders Den category.
08/09/2010, 21:11
|
#46
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by WiiZocker
Hab den Code für dem Abprallen im Inet gefunden, aber ich muss noch hinbekommen das wenn der ball auf die linke seite des Spielers fliegt, auch nach links geneigt wieder abprallt.
Der gegner ist auch noch nicht der Schlechteste.(Musste schlechteste schreiben da er bis jetzt unschlagbar ist  )
Das sind die 2 sachen die ich noch ändern muss.
Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ImageSearch.au3>
HotKeySet("{F2}","Neustart")
HotKeySet("{esc}","ENDE")
HotKeySet("{Left}","SpielerNachLinks")
HotKeySet("{Right}","SpielerNachRechts")
#region Constants
; Diese Werte kann man aus dem Bild direkt auslesen
; Sagen wir also dein Bild Ball.bmp ist 22 Pixel hoch und 30 breit
; Dann musst du auch dementsprechend das machen:
; $Width_Ball=30
; $High_Ball=22
Const $Width_Spieler=121
Const $Width_Ball=22
Const $Width_Gegner=121
Const $High_Spieler=23
Const $High_Ball=22
Const $High_Gegner=23
#endregion Constants
$down=1
$Verloren = 600
$Width = 436
$Height = 638
$X_Ball = 206
$Y_Ball = 308
$X_Spieler = 160
$Y_Spieler = 592
$X_Gegner = 160
$Y_Gegner = 16
$X_SF = 0
$Y_SF = 0
$left = 214
$top = 80
$ballleft = 408
$balltop = 664
$x = Random(1,3)
$y = Random(1,3)
$Time = TimerInit()
#Region ### START Koda GUI section ### Form=C:\Users\Jan\Desktop\Pong\Daten\Spielfeld GUI.kxf
$PongGui = GUICreate("Pong By WiiZocker", $Width, $Height, $left, $top)
$Ball = GUICtrlCreatePic("Daten\Ball.bmp", $X_Ball, $Y_Ball, 22, 22, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$GUI_ONTOP))
$Spieler = GUICtrlCreatePic("Daten\Spieler.bmp", $X_Spieler, $Y_Spieler, 121, 23, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$GUI_ONTOP))
$Gegner = GUICtrlCreatePic("Daten\Gegner.bmp", $X_Gegner, $Y_Gegner, 121, 23, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$GUI_ONTOP))
$Spielfeld = GUICtrlCreatePic("Daten\Spielfeld.bmp", $X_SF, $Y_SF, 435, 637, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS,$GUI_DISABLE))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$Abprallen = GUICtrlSetPos($ball, $X_Ball + $x, $Y_Ball + $y)
MsgBox(0,"Spielstart","Mit einem Klick auf OK startet das Spiel.")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
Start()
sleep(20)
Gegner()
WEnd
Func SpielerNachLinks()
If $X_Spieler > 15 Then
$X_Spieler = $X_Spieler - 7
GUICtrlSetPos($Spieler,$X_Spieler,$Y_Spieler)
EndIf
EndFunc
Func SpielerNachRechts()
If $X_Spieler < 295 Then
$X_Spieler = $X_Spieler + 7
GUICtrlSetPos($Spieler,$X_Spieler,$Y_Spieler)
EndIf
EndFunc
Func GegnerSteuern()
If $X_Gegner > 15 Or $X_Gegner < 295 Then ;Hier sollte er nicht durch die Mauer gehen. Wie kann ich das Ändern?
$X_Gegner = $X_Ball
$X_Gegner = $X_Gegner - 7
GUICtrlSetPos($Gegner,$X_Gegner,$Y_Gegner)
EndIf
EndFunc
Func BallBewegen()
if $down=1 Then
$Y_Ball = $Y_Ball + 12
else
$Y_Ball = $Y_Ball - 12
EndIf
If $Y_Ball >= $Verloren Then
MsgBox(0,"Verloren","Du hast Verloren")
Exit
EndIf
if $X_Ball < 19 Then $x = $x * -1
if $X_Ball > 416 - 12 Then $x = $x * -1
if $Y_Ball < 19 then $y = $y * -1
if $Y_Ball > 757 - 24 Then $y = $y * -1
$X_Ball = $X_Ball + $x
$Y_Ball = $Y_Ball + $y
$BallPosition = GUICtrlSetPos($Ball,$X_Ball,$Y_Ball)
;Eine Abprall funktion für die Linke und rechte seite des Spielers/Gegners
EndFunc
Func Collision($x1,$y1,$width1,$high1,$x2,$y2,$width2,$high2)
$hpos1=$y1+$high1
$wpos1=$x1+$width1
$hpos2=$y2+$high2
$wpos2=$x2+$width2
if (($hpos1>=$y2 and $y1<$y2) or ($hpos2>=$y1 and $y1>$y2)) Then
if (($wpos1>=$x2 and $x1<$x2) or ($wpos2>=$x1 and $x1>$x2)) then
return true
else
return false
endif
else
return false
endif
EndFunc
Func Start()
BallBewegen()
if Collision($X_Spieler,$Y_Spieler,$Width_Spieler,$High_Spieler,$X_Ball,$Y_Ball,$Width_Ball,$High_Ball)==true Then
$down=0
EndIf
if Collision($X_Ball,$Y_Ball,$Width_Ball,$High_Ball,$X_Gegner,$Y_Gegner,$Width_Gegner,$High_Gegner)==true Then
$down=1
EndIf
EndFunc
Func Neustart()
$X_Ball = 206
$Y_Ball = 308
$X_Spieler = 160
$Y_Spieler = 592
$X_Gegner = 160
$Y_Gegner = 16
$X_SF = 0
$Y_SF = 0
MsgBox(0,"Spielstart","Mit einem Klick auf OK startet das Spiel.")
EndFunc
Func ENDE()
Exit
EndFunc
Func Aktuell()
GUICtrlSetPos($Gegner,$X_Gegner,$Y_Gegner)
EndFunc
Func Gegner()
GegnerSteuern()
EndFunc
Und wie ändere ich das, dass der gegner nicht durch die Wand geht?
MfG Jan
|
Ich habe erstmal die "Engine" (ist ja nicht wirklich viel) geschrieben und das in eine Funktion gepackt bzw. auf die Allgemeinheit ausgeweitet.
Danach habe ich die "KI" gebastelt.
Ich habe also so getan als wäre die KI ein menschlicher Spieler und eben alle Regeln/Befehle für mich auch für den Gegner gemacht.
|
|
|
08/09/2010, 22:04
|
#47
|
elite*gold: 0
Join Date: Jul 2009
Posts: 492
Received Thanks: 126
|
Ok, aber wie kann ich das mit dem gegner machen das er wenn er sich bewegt, nur eine bestimmte geschwindigkeit bewegt?
Jetzt habe ich es zu Testzwecken so gemacht das er IMMER den Ball folgt und dadurch TRIFFT er ja auch immer ;D
MfG Jan
Ps. Was genau ist eine KI? hab gerade keine lust zu googlen^^
Muss gleich pennen usw...schule-.-
|
|
|
08/09/2010, 22:10
|
#48
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
KI = Künstliche Intelligenz
|
|
|
08/09/2010, 23:00
|
#49
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by WiiZocker
Ok, aber wie kann ich das mit dem gegner machen das er wenn er sich bewegt, nur eine bestimmte geschwindigkeit bewegt?
Jetzt habe ich es zu Testzwecken so gemacht das er IMMER den Ball folgt und dadurch TRIFFT er ja auch immer ;D
MfG Jan
Ps. Was genau ist eine KI? hab gerade keine lust zu googlen^^
Muss gleich pennen usw...schule-.-
|
Quote:
Originally Posted by HardCore.1337
KI = Künstliche Intelligenz
|
Sollte alles beantworten, aber eine einfache Lösung wäre das mit Zufall zu lösen:
PHP Code:
If (random(1,3,1)==1) then GegnerBewegen()
|
|
|
 |
|
Similar Threads
|
target verschieben
04/18/2010 - World of Warcraft - 4 Replies
Hi ich hab mir so ein pack sozusagen downgelodet von rapid frames und nun wollt ich kurz fragen wie man dies hier verschiebt
http://img232.imageshack.us/img232/5009/unbenannt di.png
hab auch leider keine ahnung welches addon das ist
|
Angelfertigkeit verschieben?
11/01/2009 - Metin2 Private Server - 1 Replies
Hallo
ich spiele auf Metin35 und will einen Angelbot benutzen.
Das Problem ist nur das ich die Angelfertigkeit nicht verschieben kann, und bei denn meisten Bot´s muss man die ja auf F4 legen.
Denke net das ich zu blöd bin da ich auf DE server und so das schon tausendma gemacht hab^^:D
also wie es geht weiß ich schon, aber i.wie is das bei mir fest, also nicht verschiebbar.
Kann das an der deutschen exe liegen oder was könnte das für gründe haben?
Hoffe mir kann jemand Helfen.:confused:
|
NPC verschieben
10/04/2009 - Metin2 Private Server - 0 Replies
hallo
ich würde gerne wissen wie man npcs verschieben kann ;)
also z.b. den schmied auf den dorfplatz setzten oder so^^
suchen kann man ja nich weil bei npc sinds zu wenig buchstaben xD
wenns so ein thema schon gibt könnte pls jemand den link posten
thx nick
|
Quartz Bar verschieben
10/10/2007 - World of Warcraft - 9 Replies
So, da ich mein interface überarbeitet hab, will ich von der castbar von Bongos auf die Quartz umsteigen...nur wie kann man die casting bar verschieben und die kleine ausmachen ;/
|
Verschieben
05/12/2005 - General Gaming Discussion - 4 Replies
Kann man das spiel mal aus dem Upcomming releases raus kopieren in ne andere Kategorie oder ne Eigene erstellen?
Das sieht aus als leben wir hinterm Mond.
|
All times are GMT +1. The time now is 16:45.
|
|