Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 16:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



BMP Per Taste Verschieben???

Discussion on BMP Per Taste Verschieben??? within the AutoIt forum part of the Coders Den category.

Reply
 
Old 08/09/2010, 21:11   #46
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by WiiZocker View Post
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.
Shadow992 is offline  
Old 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-.-
WiiZocker is offline  
Old 08/09/2010, 22:10   #48
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
KI = Künstliche Intelligenz
HardCore.1337 is offline  
Old 08/09/2010, 23:00   #49
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by WiiZocker View Post
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 View Post
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)==1then GegnerBewegen() 
Shadow992 is offline  
Reply

Tags
autoit, bmp, bmp verschieben, frage, spiel


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.