Noob braucht Hilfe
Übersicht

BrilluxBetreff: Noob braucht Hilfe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich versuche gerade Blitz Basic mit dem Buch "Spiel programmieren mit Blitz Basic"(gutes Buch ![]() Ich bin Jetzt bei Kapitel 12, bei der Aufgabe ein kleines Spiel zu programmieren, das für anderthalb Sekunden ein Quadrat in der linken oder in der rechten hälfte des Bildschirms erscheinen lässt. Man bekommt einen Punkt wenn das Quadrat in der Linken Hälfte ist und man die linke Maustaste drückt, oder die rechte Maustaste für ein Quadrat in der Rechten hälfte. Minuspunkte gibt es wenn falsch oder in anderthalb Sekunden gar nicht gerückt wurde. Ich hoffe ihr habt das Spielprinzip verstanden. ![]() So hier mein bisheriger Code: Code: [AUSKLAPPEN] Graphics 1024,768,32,2 SetBuffer BackBuffer() ClsColor 0,0,255 Cls Color 255,255,0 schrift = LoadFont("Arial",40) SetFont schrift punkte = 0 SeedRnd MilliSecs() Repeat Cls Text 200,0,"Punkte: " + punkte x = Rand(974) y = Rand(40,718) Rect x,y,50,50 anfang = MilliSecs() taste = 0 Repeat taste = GetMouse() ende = MilliSecs() Until ende-anfang > 1500 Or taste <> 0 pause = 1500-(ende-anfang) If (taste = 1 And x < 500) Or (taste = 2 And y >= 500) Then punkte = punkte + 1 Else punkte = punkte - 1 EndIf Delay pause Flip Until KeyHit(1) Da besteht jetzt folgendes Problem das es nur beim ersten Versuch klappt. Bei den folgenden Versuchen wird immer nur die Maustaste des vorherigen Versuchs mit dem aktuell angezeigten Quadrat verglichen. Sodass die Punkte Falsch angezeigt werden. Ich hoffe das es so verständlich genug erklärt ist, wenn nicht nachfragen. ![]() Wäre schön wenn mir jemand bei dem Problem helfen könnte. Gruß Brillux |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bau mal ein Flushmouse() ein.
Das löscht den Zwischenspeicher. AUsserdem funzt dein Code bei mir einwandfrei Und schön, alle die hier posten sind Blitz-Noobs. na schön, das war jeder hier mal, aber könntet ihr bitte aufhören eu Beiträge immer "Noob braucht Hilfe" "Anfänger frage" etc. zu nennen. Schreit doch im Titel worum es geht ![]() Nicht persönlich nehmen ![]() MfG Blitzcoder |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn es nur um die linke und rechte Bildhälfte geht, muss es dann
nicht heissen: If (taste = 1 And x < 500) Or (taste = 2 And X >= 500) Then ... anstelle von: If (taste = 1 And x < 500) Or (taste = 2 And Y >= 500) Then...? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gerhard hat einen der Fehler genannt: es muss tatsächlich x statt y heissen.
Zweiter Punkt: Gewöhne Dir beim benutzen von and , or und not an die Bedingungen sehr sorgfältig mit Klammern zu setzen. Erspart einem oftmals sehr unliebsame Überraschungen. Code: [AUSKLAPPEN] If ((taste = 1) And (x < 500)) Or ((taste = 2) And (X >= 500)) Then ...
Hier mag es nicht ins Gewicht fallen, aber grad anfangs sollte man auf Nummer sicher gehen. Wo allerdings der Fehler lag: Die Prüfung auf die Punkte ist korrekt, allerdings wird das aktuelle Quadrat immer erst nach dieser Prüfung sichtbar, da das Flip am Ende des codes steht. Setze das flip direkt nachdem alles gezeichnet ist und der Code läuft ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Brillux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Stimmt da müsste bei beiden x stehen ![]() Aber es besteht bei mir trotzdem noch immer das Problem, dass es teilweise einen Minuspunkt gibt obwohl ich richtig klicke. ![]() FlushMouse() habe ich auch eingebaut. |
||
Brillux |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok jetzt funktionert es ![]() Danke BladeRunner. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group