4 gewinnt problem
Übersicht

![]() |
viper199Betreff: 4 gewinnt problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Ich habe ein Problem, habe schon seit (sehr) langer Zeit nichts mehr programmiert und konnte auch vorher nur einige grundsachen. Ich habe mich dazu entschlossen nach ein wenig wieder rein lesen mit einem 4 gewinnt Spiel anzufangen, doch ich habe ein Problem. Code: [AUSKLAPPEN] AppTitle "4 Gewinnt"
Graphics 640,580,16,2 SetBuffer BackBuffer() Global player1 = LoadImage("Bilder\chip_rot.bmp") Global player2 = LoadImage("Bilder\chip_gelb.bmp") Global bg2 = LoadImage("Bilder\bg2.bmp") bg2_y=100 Repeat Cls MaskImage bg2 , 255, 255, 255 MaskImage player1 , 255, 255, 255 MaskImage player2 , 255, 255, 255 DrawImage player1, MouseX(), MouseY() DrawImage player2, player2_x, player2_y DrawImage bg2, bg2_x, bg2_y Flip Until KeyHit(5) End Das ist im moment der code, ich möchte natürlich, dass wenn "MouseDown" der chip nach unten fällt, habe jedoch keinerlei idee wie ich das einbauen soll! Ich hoffe ihr könnt mir weiter helfen! Schonmal danke im Voraus! MFG viper199 |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das maskImage muss vor die Schleife...
mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, du willst, dass wenn die Maus gedrückt wurde, der Chip runterfällt, richtig? Gut.
Code: [AUSKLAPPEN] If MouseHit(1) Then fallen=True
If fallen=True Then chip_pos_y=chip_pos_y+1 If chip_pos_x>580-ImageWidth(chip) Then fallen=False Jetzt musst du den Chip nur noch an chip_pos_y zeichnen und vorher chip_pos_y auf die gewünschte Höhe stellen. z.B.: Code: [AUSKLAPPEN] chip_pos_y=50
Dies ist nur ein Beispiel. Ausarbeiten kannst du das hoffentlich selbst. Immer schneller fallen und so. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
viper199 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank euch beiden!
ähnlich nur einiges unentwickelter ![]() der chip folgt weiterhin der Maus sie soll ja liegen bleiben ^^ jemand eine Idee was ich falsch mache? Code: [AUSKLAPPEN] AppTitle "4 Gewinnt" Graphics 640,580,16,2 SetBuffer BackBuffer() Global player1 = LoadImage("Bilder\chip_rot.bmp") Global player2 = LoadImage("Bilder\chip_gelb.bmp") Global bg2 = LoadImage("Bilder\bg2.bmp") MaskImage bg2 , 255, 255, 255 MaskImage player1 , 255, 255, 255 MaskImage player2 , 255, 255, 255 bg2_pos_y=100 If MouseHit(1) Then fallen=True If fallen=True Then player1_pos_y=player1_pos_y+1 If fallen=True Then player1_pos_x= 50 If player1_pos_x>580-ImageWidth(player1) Then fallen=False Repeat Cls DrawImage player1, MouseX(), MouseY() DrawImage player2, player2_pos_x, player2_pos_y DrawImage bg2, bg2_pos_x, bg2_pos_y Flip Until KeyHit(5) End Danke! |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Das hier:
Code: [AUSKLAPPEN] If MouseHit(1) Then fallen=True
If fallen=True Then player1_pos_y=player1_pos_y+1 ;If fallen=True Then player1_pos_x= 50; -->diese Zeile ist unnötig If player1_pos_x>580-ImageWidth(player1) Then fallen=False muss in die Schleife. 2. Du musst den Chip natürlich auch an "player1_pos_y" zeichnen. Code: [AUSKLAPPEN] DrawImage player1, MouseX(),player1_pos_y
|
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
viper199 |
![]() Antworten mit Zitat ![]() |
---|---|---|
okay viele dank FUnktioniert =) | ||
![]() |
viper199 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay und neues problem, ich hoffe es kann mir hier wieder jemand helfen,
ich habe mich dazu entschieden den chip mit hilfe einer Kollision zu stoppen, doch irgendwie rennt er trozdem weiter! Wäre cool wenn mir jemand sagen könnte warum das so ist =S Code: [AUSKLAPPEN] AppTitle "Vier Gewinnt" Graphics 640,580,16,2 SetBuffer BackBuffer() Global player1 = LoadImage("Bilder\chip_rot.bmp") Global player2 = LoadImage("Bilder\chip_gelb.bmp") Global bg1 = LoadImage("Bilder\gitter.bmp") Global bg2 = LoadImage("Bilder\bg2.bmp") MaskImage bg1 , 255, 255, 255 MaskImage bg2 , 255, 255, 255 MaskImage player1 , 255, 255, 255 MaskImage player2 , 255, 255, 255 bg1_pos_y=100 bg2_pos_y=100 Repeat Cls If MouseHit(1) Then fallen=True If fallen=True Then player1_pos_y=player1_pos_y+3 If ImagesCollide(player1,player1_pos_x,player1_pos_y,0,bg1,255,102,0) Then player1_pos_y=463 DrawImage bg1, bg1_pos_x, bg1_pos_y DrawImage player1, MouseX(), player1_pos_y DrawImage player2, player2_pos_x, player2_pos_y DrawImage bg2, bg2_pos_x, bg2_pos_y Flip Until KeyHit(1) End |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn die Kollision statt findet, dann musst Du auch wieder fallen auf false setzen, sonst wird die Bewegung weiterhin ausgeführt:
Code: [AUSKLAPPEN] If ImagesCollide(player1,player1_pos_x,player1_pos_y,0,bg1,255,102,0) Then player1_pos_y=463 : fallen = false
MfG |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Pitje PuckBetreff: zur Hilfe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Viper,
ich persönlich würde die Sache mit der Kollisionsabfrage vergessen. Du brauchst erstmal ein Array, das dein Spielfeld repräsentiert. Wenn du dann den Spielstein in einen Slot fallen lässt, kennst du ja die Y-Position ab der der Stein nicht mehr weiterfallen soll. Nämlich die Anzahl der freien Felder*die Höhe des einzelen Feldes. An dem Punkt solltest du den fallenden Stein löschen und im Array vermerken. Die Steine im Array kannst du dann an ein anderen Stelle in der Hauptschleife zeichnen lassen. Falls das zu schwierig ist, frag nochmal nach. Und wenn jemand denkt das wäre Mumpitz, bitte ergänzen. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group