.| Autor | Beitrag |
|---|---|
|
000 10.06.2009, 18:20 Protestallianz |
Hallo, wollte eine Ereignis auslösen auf Benutzen der Linken- bzw. der Rechtenpfeiltaste. Weiter Informationen: WICHTIG: Mir ist gerade aufgefallen, dass es bei Key up funzt, was aber auch dumm ist, da es eine Tetrisstuerung wird und man da ja mal öfter zu einer Seite will. -- -GAMING- Dieser Beitrag wurde am 10.06.2009 um 19:05 von Protestallianz bearbeitet. |
|
Profil || Suche |
|
001 10.06.2009, 20:24 hausi |
Setz mal KeyPreview auf true. Ev. hat ein anderes Control den Fokus, wodurch Key-Events nicht mehr auf dem Form kommen. KeyDown / KeyUp müssten eigentlich problemlos mit VK_LEFT, RIGHT, UP und DOWN kommen, habe das auch schon oft gemacht. -- |
|
Profil || Suche |
|
002 11.06.2009, 09:15 Protestallianz |
Ja KeyUp funzt aber KeyDown nicht... komisch naja mt KeyPreview habe ich es auch schon probiert aber in der Hilfe steht, das KeyPreview sich nicht auf Steuerungstasten bezieht... ---GAMING- |
|
Profil || Suche |
|
003 11.06.2009, 11:04 hausi |
Schau mal mit Spy++, ob die WM_KEYDOWN messages überhaupt kommen. Falls ja, ist das Problem in der VCL oder deinem Code zu suchen. Hast du den VCL Source? -> Debuggen -- |
|
Profil || Suche |
|
004 11.06.2009, 11:32 Protestallianz |
Mhm bin gerade nicht daheim aber hausi, dein Lösung klingt am wahrscheinlichsten. Ich stehe aber or noch einem Problem, und zwar habe ich die Tetris Steine alle als Jpeg und habe erst mal mit Image probiert, habe da aber Probleme mit der Kollisionsabfrage(Also wann die Images sich berühren) und das größer ist, das neue "spawnen". Ich habe kiene Ahnung, wie ich endlos Images erstelle..... Also bin ich umgestigen auf ein Image und Canvas (Image1->Canvas). -GAMING- Dieser Beitrag wurde am 11.06.2009 um 11:40 von Protestallianz bearbeitet. |
|
Profil || Suche |
|
005 11.06.2009, 14:26 Bluthund |
Das ist eher ":/" als "^^" Du solltest prinzipiell zwischen Spiellogik und Darstellung trennen. The C language combines all the power of assembly language with all the ease-of-use of assembly language. |
|
Profil || Suche |
|
006 12.06.2009, 15:32 Protestallianz |
Ja dein Links ist gut, aber ich hab da extreme Problem mit, dass in 1.5 Wochen zu lernen..... Ich will es auf jedenfall nachholen aber das Projekt erstmal ohne Objektorientierte Versprochen ich hole Klassen-Tetris nach ^^ ---GAMING- |
|
Profil || Suche |
|
007 12.06.2009, 16:36 hausi |
Du solltest seinen Post genauer lesen. Das wichtige an seinem Post war nicht, dass du es OO machen sollst, sondern dass du die Darstellung von der Logik trennen sollst. Dieser Beitrag wurde am 12.06.2009 um 16:37 von hausi bearbeitet. |
|
Profil || Suche |
|
008 12.06.2009, 21:51 Protestallianz |
Und genau da fängt es an. Arry [Xpos] [Ypos]. Und die dann zu weisen. Block ist da also wird einer 1 gesetzt, fertig! Kollisionsabfrage, kein Problem(ist ja nur 1 mit 0 vergleichen)Aber jetzt kommts: Wie mache ich die Grafischeanzeige aus der Logik. Ich hab mir überlegt mit 2 Schleifen alle Arry werte durch zugehen und dann zu zeichnen. aber wie zeichne ich an der Stelle. Bzw. ist es möglich ein Image1->Canvas als Sielfeld zu nehemen und eigene bmp zu laden, oder muss ich immer im Rectangle() arbeiten, um neue zu erstellen. Am liebesten würde ich für jeden Block ein Image erstellen, dass das Bild hat, ich weiß aber nicht wie ich unendlichviele ImagesX erstlle und die dann mit ImageX anspreche. (Ja ist verwirrend, aber ich habe glaube ichverstanden was ihr meint und mir kommen so viele Ideen. Ich setzte mich gleich morgen mal ran!!!!)! -- -GAMING- |
|
Profil || Suche |
|
009 13.06.2009, 13:33 rawe |
lad doch sowas... O o Dieser Beitrag wurde am 13.06.2009 um 13:37 von rawe bearbeitet. |
|
Profil || Suche |
|
010 14.06.2009, 14:44 Protestallianz |
Ja so wollte ich es erst machen, habe jetzt aber etwas anderes: Bishher habe ich alles Fertig bis auf die Rotation und die Benutzung von anderen Dingen außer dem Viereck. Und genau daran hänge ich... mal guggen wenn nicht schreib ich hier nachher nochmal! ---GAMING- |
|
Profil || Suche |
|
011 15.06.2009, 18:28 Protestallianz |
So ich habe mir überlegt für jedes Eement und jeder Position einer Rotationsfunktion zu schreiben. Also insgesamt 7*4=28 Und das ist ganz schön viel und ich dachte mir, das geht auch einfachher und hab nen Freund gefragt, der meinte das geht mit einer Funktion für alle. Weiß einder wie man ein 2d array dreht?? ---GAMING- |
|
Profil || Suche |
|
012 15.06.2009, 21:44 Bluthund |
Erstmal vorweg: Ein zweidimensionales quadratisches n*n Array dreht man nach rechts indem aus der ersten Zeile die nte Spalte, die zweite Zeile die n-1te Spalte wird. Wenn du es gern rechnen willst: B ist hierbei eine quadratische Matrix mit n_B = n_A, die auf der Nebendiagonale Einsen hat und alle anderen Einträge 0 sind. Bspw für 3x3: [0 0 1;0 1 0;1 0 0] So und jetzt sag ich dir noch, dass du dir einfach mal den Link hättest ankucken sollen, wo nen ganz simples Verfahren beschrieben wird um die Klötze darzustellen. Nämlich indem du alle Rotationen einfach von Hand "berechnest" (du kannst natürlich auch gern nen Template schreiben, dass dies für dich zur Compilezeit tut) und im Speicher ablegst. Damit verbrätst du wahnsinnige 700 Bytes insgesamt für alle Spielsteine (7 Steine * 4 Rotationen * 5 Zeilen * 5 Spalten) und der Aufwand für die Drehung zur Laufzeit beläuft auf das Setzen des richtigen Index. The C language combines all the power of assembly language with all the ease-of-use of assembly language. Dieser Beitrag wurde am 15.06.2009 um 21:56 von Bluthund bearbeitet. |
|
Profil || Suche |
|
013 18.06.2009, 18:17 Protestallianz |
Also, es ist eine rechteckige Matrix und ja ich hätte es von vorneherein anders machen sollen, stimmt schon! Aber ich bekomme es trotzdem nicht hin. -GAMING- |
|
Profil || Suche |


in ein unsichtbares Image und kopiere dann via Canvas->CopyRect ab Spielarray[x][y]*Kachelbreite eine Kachel in das große anzeige-Image->Canvas. 0 wäre dann die weiße Kachel, 1,2,3... usw dann die entsprechenden bunten Kacheln. In der Hilfe zu CopyRect steht afair auch nen Beispiel zur Anwendung...