Komisches Input Problem

Übersicht BlitzBasic Beginners-Corner

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

 

Sly321

Betreff: Komisches Input Problem

BeitragDo, Nov 05, 2009 0:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leute ich bin neu im Forum und suche nach einer Lösung bei meinem programm es ist heute aus langeweile entstanden und soll jump'n'run ähnlich sein.
Ich laufe per a,s,d und leertaste und mit f schieß ich sternchen.
Soweit alles klar.
Wenn ich mit der Maus auf mein "Code" Feld klicke wird per function test() mein input angesteuert.
Es ist ein input für die variable Code$ (Code$=input("...: ")) Code$ ist global damit ich es richtig benutzen kann.
Und mein Problem ist das wenn ich einfach mit dem kleinen Character laufe mit a,s,d usw.
tauchen diese zeichen auch auf wenn ich dann bei code mit der maus klicke und was eingeben will bei input.
Diese Buchstaben stehen dann bereits in der input zeile.

Hier mein Programm tut mir leid für die unsauberkeit.
Lasst es einfach bei euch laufen, drück a,s,d,f, oder andere tasten geht dann mit der maus auf CODE
dann werden in input bereits einige zeichen stehn.
Warum und wie bekomme ich sie weg??

BlitzBasic: [AUSKLAPPEN]

;------------- Grafikeinstellung
Graphics 800,600,16,1 ;Auflösung auf 800,600
ClsColor 0,0,0 ;Background Schwarz

Global sternspeed
Global stand
Global angriff
Global antworttest$
Global yspieler=510
Global xspieler=100
Global sprung
Global spielergroesse
Global stehen=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Turtle\turtle stand.bmp")
Global stehenverkehrt=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Turtle\turtle standturn.bmp")
Global ducken=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Turtle\turtle ducken.bmp")
Global duckenverkehrt=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Turtle\turtle duckenturn.bmp")
Global springen=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Turtle\turtle sprung.bmp")
Global springenverkehrt=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Turtle\turtle sprungturn.bmp")
Global stern1=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Waffen\stern1.bmp")
Global stern2=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Waffen\stern2.bmp")
Global explosion=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Waffen\Explosion.bmp")
Global pfeil=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Menü\Pfeil.bmp")
Global xmaus
Global ymaus
Global cheat=LoadImage("C:\Dokumente und Einstellungen\Simone Liebig\Desktop\Blitz Basic\Bilder\Menü\Cheat.bmp")
Global code$



SetBuffer BackBuffer()
Repeat
landschaft()

xmaus=MouseX()
ymaus=MouseY()
DrawImage Pfeil,xmaus,ymaus

test()


Color 200,0,200
If sprung=0 ; 0=kein sprung , 1= sprung
If spielergroesse=0 ; 0=groß , 1=klein

;------------------------------------------Stehen
If KeyDown(30) Or stand=0 Then
DrawImage stehenverkehrt,xspieler,yspieler
stand=0
EndIf
If KeyDown(32) Or stand=1
DrawImage stehen,xspieler,yspieler
stand=1
EndIf
;------------------------------------------------
Else
;------------------------------------------Ducken
If KeyDown(30) Or stand=0 Then DrawImage duckenverkehrt,xspieler,yspieler
If KeyDown(32) Or stand=1 Then DrawImage ducken,xspieler,yspieler
;------------------------------------------------
EndIf
EndIf


;--------------------------------------------------Springen

If KeyDown(30) Or stand=0
If sprung>0 Then DrawImage springenverkehrt,xspieler,yspieler
stand=0
EndIf
If KeyDown(32) Or stand=1
If sprung>0 Then DrawImage springen,xspieler,yspieler
stand=1
EndIf
;----------------------------------------------------------





;---------------------------------------------------Angriff
If KeyHit(33) And angriff=0
yspielerstand=yspieler
xspielerstand=xspieler
standstand=stand
angriff=1


EndIf



If angriff=1 Then
DrawImage stern1,xspielerstand+sternspeed,yspielerstand ;Stern, Zeichnen
If standstand=1 Then sternspeed=sternspeed+6 Else sternspeed=sternspeed-6 ; Links , Rechts Schießen

If sternspeed>300 Or sternspeed<-300 Then angriff=0

If angriff=0 Then
DrawImage explosion,xspielerstand+sternspeed-15,yspielerstand-5
sternspeed=0
EndIf
EndIf
;----------------------------------------------------------
bewegung()




Flip
Until KeyHit(1)
End

Function bewegung()


spielergroesse=0
If KeyDown(32) Then xspieler=xspieler+2
If KeyDown(30) Then xspieler=xspieler-2
If KeyHit(57) And sprung=0 Then sprung=41
If sprung>0 Then
If sprung>21 Then yspieler=yspieler-5
If sprung<21 Then yspieler=yspieler+5
sprung=sprung-1
EndIf
If KeyDown(31) Then
spielergroesse=1
EndIf
End Function




Function landschaft()
Cls
Color 25,255,25
Rect 0,550,800,50


;-----------------------------Rechts
Color 20,40,120
Rect 650,0,150,350
Color 20,40,40
Rect 660,0,140,340
DrawImage cheat,675,30



End Function


Function test()

If MouseHit(1)
If ImagesCollide(pfeil,xmaus,ymaus,0,cheat,675,30,0)
Color 255,255,255

Code$=Input$("...: ")
;WaitKey
EndIf
EndIf


;If KeyHit(20) Then t=1
;If KeyHit(19) Then e=1
;If KeyHit(31) Then s=1
;If KeyHit(19) Then t2=1

If Code$="Test"
Color 255,255,255
Text 50,50,"Sternspeed: "+sternspeed
Text 50,100,"Angriff läuft? "+angriff
Text 50,150,Code$
EndIf

End Function

Thorsten

BeitragDo, Nov 05, 2009 0:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Vorher ein Mal FlushKeys durchführen.
Trotzdem solltest du in Zukunft lieber auf Input verzichten und deine eigene Routine basteln, nur so als kleiner Tipp.
 

Sly321

BeitragDo, Nov 05, 2009 1:27
Antworten mit Zitat
Benutzer-Profile anzeigen
joa ich will halt was eingeben, wie würde ich das machen wenn ich z.B. chat text oder ähnliches eingeben will ohne input??
bin leider nur anfänger bring mir soweit alles selbst bei =D
 

Sly321

BeitragDo, Nov 05, 2009 1:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber erstmal fettes danke schön Very Happy Very Happy

ozzi789

BeitragDo, Nov 05, 2009 8:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Sly321

Bitte benützte den Edit Button, Doppelposts sind nicht alzu gerne gesehn Smile

So habe mal die Forensuche angeworfen und :
https://www.blitzforum.de/foru...be+routine

gefunden, sollte dir helfen.

Getkey wird der Befehl sein welcher dir helfen wird, in der Forenhilfe hat es einen guten Beispiel code, den könnte man dann zu ner Eingabe routine abändern.

Chr solltest du dir auch mal anschauen.

Der Vorteil einer Routine ist, das dein Programm weiter läuft, bei Input wird auf die Eingabe gewartet, d.h das sonst nichts anderes gemacht werden kann, und das zmb bei einem Chat dafür sorgen könnte das du rausfliegst, weil sich dein Programm für längere Zeit nicht gemeldet hat (Time Out).

Mfg ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

BladeRunner

Moderator

BeitragDo, Nov 05, 2009 15:45
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.
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
 

Sly321

BeitragDo, Nov 05, 2009 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ahh kay thx

und


Wie mache ich das wenn ich bei Getkey() etwas mit der löschtaste (ASCII 8) löschen will?? Laughing

ozzi789

BeitragDo, Nov 05, 2009 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Solltest anhand des Codes vom Link den ich gepostet habe rausfinden Wink (der vom Codearchiv)
Nuja ne kleine Hilfe Wink

BlitzBasic: [AUSKLAPPEN]
eingabe$="Ich gebe Text eiU"
Print Left$ (eingabe$,Len(eingabe$)-1)
WaitKey
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Sly321

BeitragDo, Nov 05, 2009 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
hab danke ^^
muss jetz nur noch i.was machen das der "chat" nur erscheint wenn ich auf eingabe drücke und dann auch wieder verschwindet und die nacxhricht wo postet
weil sonst schreibe ich im spiel die ganze zeit

ozzi789

BeitragDo, Nov 05, 2009 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Pseudocode

Code: [AUSKLAPPEN]
Global eingabe

while

If keyhit (enter) eingabe=eingabe+1
If eingabe>1 then eingabe=0


...dein game ...


wend


function routine()
if eingabe=1
getkey usw
endif
endfunction
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Nicdel

BeitragDo, Nov 05, 2009 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
So etwas sollte man mit ein wenig Denken und Grundwissen auch schaffen.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Sly321

BeitragDo, Nov 05, 2009 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
danke an ozzy und ein
TUT MIR LEID an Nicdel
ich werde nie wieder was in dem forum posten man dann geh doch wo anders hin zu pro oder so und vergeude hier nich meine zeit in dem ich deine mündlichen fekalien lese
danke

D2006

Administrator

BeitragDo, Nov 05, 2009 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
1.) Noch so ein verbaler Ausrutscher und du darfst eine Verwarnung entgegennehmen.

2.) Ist die Kritik durchaus berechtigt. Wenn du wirklich Programmieren lernen willst, musst du anfangen Selbstinitiative zu zeigen und mal über ein Problem nachzudenken, statt sich hier durchzufragen. Ansonsten empfehle ich, damit aufzuhören, unsere Zeit zu vergeuden.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Sly321

BeitragDo, Nov 05, 2009 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hatte schon 2 ansätze, ein mit imagescollide per maus aufn chat
dann auch per eingabe allerdings anders
ich habe nach einer möglichkeit gesucht den chat dabei zu speichern und dauerhaft zu sichern und ab 5 zeilen oder so zu löschen bzwn ur die letzte zeile,
mich kotzen sone leute wie Die da an die denken sie sind soo super toll weil sie sachen schon können wo andere ne frage haben!

D2006

Administrator

BeitragDo, Nov 05, 2009 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Und uns kotzen Leute an, die keinerlei Hinweise auf selbstständiges Nachdenken hinterlassen, sondern eher ohne groß zu überlegen Folgefragen stellen. Und dann noch Interpunktionsschwächen zeigen.

Aber dennoch schwingen wir nicht gleich die Beleidigungskeule und das solltest du auch unterlassen!
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Sly321

BeitragDo, Nov 05, 2009 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
jaja komm schmatz mir ein

D2006

Administrator

BeitragDo, Nov 05, 2009 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay:

~GESCHLOSSEN~
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group