KeyHit problem

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3, 4  Weiter

Neue Antwort erstellen

PhillipB

Betreff: KeyHit problem

BeitragSo, Feb 13, 2011 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hall ich hbae leider mal wieder ein problem!
Ich will Lichter und Blinker erstellen!
Ich will wenn man L drück das die Lichter angehen und wenn man dann noch mal L drückt wieder außgehen,Ich habe es schon mit KeyHit(38) probiert!
Sobald dann zwei mal gedrückt wird wird der wert wieder auf 0 gelegt doch irgentwie nimmt er kein KeyHit!
Da ich nochmal alles rausgemacht habe und dann Text 20,30 , "L: "+ KeyHit (38) probiert hatte um es zu testen!
Doch die Variable springt auf 1 und dann direckt auf 0!
Hat villt. einer ne idee was man anders machen könnte oder ob es eine andere Möglichkeit gibt!
Mfg
PhillipB.

Eingeproggt

BeitragSo, Feb 13, 2011 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...180#253180

Das was hier für MouseHit beschrieben ist gilt auch für KeyHit.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

biggicekey

BeitragSo, Feb 13, 2011 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
du brauchst noch eine variable die du mit dem keyhit veränderst.
Code: [AUSKLAPPEN]

if keyhit(38)
lichtan = 1-lichtan
endif

Text 20,30,lichtan
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

PhillipB

BeitragSo, Feb 13, 2011 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs jetz so gemacht aber iwie geht des noch nicht wo ist mein Fehler?
Code: [AUSKLAPPEN]
Repeat
   mh = MouseHit(38)

If mh = 0 Then
   EntityTexture Scheinwerfer,Scheinwerferan
EndIf

If mh = 1 Then
   EntityTexture Scheinwerfer,Scheinwerferan
EndIf

If mh = 2 Then
   mh = 0
EndIf

BladeRunner

Moderator

BeitragSo, Feb 13, 2011 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
MOUSEhit hat ein Mouse im Namen, 'L' ist eine Taste.
Klingelts ?
Zudem setzt Du zwei mal die Textur Scheinwerfer_an.
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

PhillipB

BeitragSo, Feb 13, 2011 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
ohh uuups und wo muss ich jetz until und so reinschmeißen?

Eingeproggt

BeitragSo, Feb 13, 2011 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Da seh ich mindestens 2 Fehler:

1.) MouseHit(38) gibts nicht. Du wolltest KeyHit(38) abfragen. Dass es sich gleich verhält war auf die Sache mit den "in Variable speichern" bezogen.

2.) Du verwendet in beiden If-Blöcken denselben Befehl bzw. dieselbe Textur... so kann sich nix verändern.

und über die Abfrage auf =2 kann man auch streiten. Die Prüft ja ob die Taste 2mal gedrückt wurde... und das wird in einem normalen Programm das mit xx Frames pro Sekunde läuft sehr selten der Fall sein.

mfG, Christoph.

EDIT: Tja, das soll vorkommen dass man zu langsam ist.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

PhillipB

BeitragSo, Feb 13, 2011 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe doch schon sry geschrieben! Ich habs verbesser!
Code: [AUSKLAPPEN]
;Lichter(2)
Repeat
   mh = KeyHit(38)

If mh = 0 Then
   EntityTexture Scheinwerfer,Scheinwerferaus
EndIf

If mh = 1 Then
   EntityTexture Scheinwerfer,Scheinwerferan
EndIf

If mh = 2 Then
   mh = 0
EndIf

Cls

While Not KeyHit (1)


Wo war der andere Fehler?
Und wo musste das Until oder forever hin?!

BladeRunner

Moderator

BeitragSo, Feb 13, 2011 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
PhillipB hat Folgendes geschrieben:
ohh uuups und wo muss ich jetz until und so reinschmeißen?

Sollen wir Dein Programm schreiben oder willst Dzu selbst was erreichen? Ich kann Dir nicht sage nwas Dein programm alles machen soll, also kann ich Dir nicht sagen was sonst noch alles vor dein Until gehört.


Wie wäre es also einfach mit ausprobieren?
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

PhillipB

BeitragSo, Feb 13, 2011 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitz braucht ja noch UNtil oder Forever aber wo muss ich das jetz hin machen das kam davor noch nicht!

BladeRunner

Moderator

BeitragSo, Feb 13, 2011 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ans Ende deiner gewünschten Schleife? Nochmal: DU und NUR DU kannst wissen was alles in deine repeat-until soll!
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

PhillipB

BeitragSo, Feb 13, 2011 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann kommt Expecting expression

BladeRunner

Moderator

BeitragSo, Feb 13, 2011 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich klinke mich hier aus, da meine Glaskugel kaputt ist.
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

count-doku

BeitragSo, Feb 13, 2011 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann ganz genau sagen,
worans liegt. (Auch ohne Glaskugel Wink )

BlitzBasic: [AUSKLAPPEN]
;Lichter(2) 
Repeat ; Repeat hört mit Until/Forever auf. Siehe Hilfe.
mh = KeyHit(38)

If mh = 0 Then
EntityTexture Scheinwerfer,Scheinwerferaus
EndIf

If mh = 1 Then
EntityTexture Scheinwerfer,Scheinwerferan
EndIf

If mh = 2 Then
mh = 0
EndIf

Cls

While Not KeyHit (1); Ist eine While Schleife. Hört mit Wend auf. Siehe Hilfe

Zusätzlich gibt es wohl kein mh=2 wie Eingeproggt schon sagte.

PhillipB

BeitragSo, Feb 13, 2011 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Wend hab ich unten drinne stehen(Welche Glaskugel?)
Wie kann man des jetz ganz genau einfauen?
Kann mir das einer bitte nochmal ganz genau erklären?

count-doku

BeitragSo, Feb 13, 2011 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Also:


So müsste es aussehen: (Muss evtl. noch etwas auf dein Prog anpassen!)
BlitzBasic: [AUSKLAPPEN]
;Hauptschleife
Local timer=CreateTimer(30),scheinwerferstatus
While Not KeyHit(1)
Cls

If KeyHit(38) Then scheinwerferstatus=1-scheinwerferstatus ; Ändert bei jedem KeyHit den Status von 'scheinwerferstatus'
If scheinwerferstatus = 0 Then
EntityTexture Scheinwerfer,Scheinwerferaus
ElseIf scheinwerferstatus=1
EntityTexture Scheinwerfer,Scheinwerferan
EndIf

RenderWorld ; Da EntityTexture -> 3D -> RenderWorld
WaitTimer timer
Flip 0
Wend


Und ein voll lauffähiges Beispiel:
BlitzBasic: [AUSKLAPPEN]
;Lauffähiges Beispiel:
Graphics 800,600,0,6
SetBuffer BackBuffer()
Local timer=CreateTimer(30),scheinwerferstatus
While Not KeyHit(1)
Cls

If KeyHit(38) Then scheinwerferstatus=1-scheinwerferstatus ; Ändert bei jedem KeyHit den Status von 'scheinwerferstatus'
If scheinwerferstatus = 0 Then
Color 255,0,0
ElseIf scheinwerferstatus=1
Color 0,255,0
EndIf
Oval 5,5,10,10

WaitTimer timer
Flip 0
Wend


Jetzt verstanden?

PhillipB

BeitragSo, Feb 13, 2011 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
In etwa wofür ist der Timer?
Manschmal hackt es aber da muss man denn 2 mal drücken!
  • Zuletzt bearbeitet von PhillipB am So, Feb 13, 2011 17:10, insgesamt einmal bearbeitet

count-doku

BeitragSo, Feb 13, 2011 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Damit das Programm nicht mit der maximalen CPU Geschwindigkeit durchrattert.
Siehe: https://www.blitzforum.de/foru...hlight=100

PhillipB

BeitragSo, Feb 13, 2011 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Asoo und wi könnte man dan einen Blinker programmieren?

Hubsi

BeitragSo, Feb 13, 2011 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit MilliSecs und, vom Prinzip her, der gleichen Technik der Scheinwerfer.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Gehe zu Seite 1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group