Warum funkts das nicht?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

StepTiger

BeitragMi, Jan 03, 2007 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
text scheinst du erst mit flip anzeigen lassen zu müssen. Mach mal Locate und Print!

Code: [AUSKLAPPEN]
JaNein$="Nein"

If JaNein$ = "Nein"
Cls
Color 250,0,0
Schrift1 = LoadFont("Arial",20,1,1,1)
SetFont Schrift1
Locate 250,300
Print "Zur Strafe wird dein PC heruntergefahren"
Delay 2000
Locate 350,325
Print "Muhahahahahah"
Delay 2000
Cls
Locate 375,300
Print  "Pech"
EndIf

WaitKey
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

BladeRunner

Moderator

BeitragMi, Jan 03, 2007 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder benutze vernünftiges Doublebuffering. Locate und Print sind aus einer vergangenen Aera und daher nicht mehr zu empfehlen.
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
 

White-air

BeitragDo, Jan 04, 2007 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
thx mit "Locate" und "Print" funkts das aba wenn ich "Text" nehme geht
das irgendwie net.
 

Dreamora

BeitragDo, Jan 04, 2007 0:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz oben im Programm: SetBuffer Backbuffer()

Am Ende der Hauptschleife: flip

Ist eigentlich grundwissen, am besten machst du die tutorials hier im Forum sowie auf www.robsite.de um dich erst einmal ein wenig mit den Grundlagen auseinander setzen zu können.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

MolchMitDolch

BeitragDo, Jan 04, 2007 2:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Obwohl dein erstes problem, die Frage und die Antwort mit INPUT, zwar schon geklärt sind wollte ich dich darauf hinweisen das die IF-schleife groß- und kleinschreibung beachtet. Das könnte unter Umständen unangenehmes bewirken:

Bsp.:
Code: [AUSKLAPPEN]
variable$="Antwort"          ;der variable einen großgeschriebens wort zuweisen
if variable$="antwort" then  ;nach kleingeschrieber schreibweise abfragen
     print "richtig"
else
     print "falsch"
endif
waitkey()
end


Besser wäre in diesem Fall, wenn du die IF- Schleife so schreiben würdest:
Code: [AUSKLAPPEN]
if lower(variable$)="antwort" then

(besonders wenn es sich um werte handelt die nicht von dir eingegeben werden)


Zu deinem zweiten Problem, der erste Code: den ~WÜRDE ICH~ so schreiben (vllt besser in BB anschauen da hier im Forum das Eingerückte ein bisschen verwirrend dargestelt wird):
Code: [AUSKLAPPEN]
Graphics 800, 600, 16, 2    ;ein grund warum nichts angezeigt wird könnte sein weil du nicht
                     ;im 2d grafik modus bist, das ist notwendig wenn du den "text"-
                     ;befehl verwendest...
SetBuffer BackBuffer()      ;...genauso wie der backbufferbefehl (fals du nicht weist wofür
                     ;die befehle verwendet werden stehn unten im post noch links für
                     ;das entsprechende tutorial

JaNein$="Nein"   ;die Variable habe ich einfach gesetzt damit die untere schleife aktiviert
            ;wird, selbstverständlich gehört sie nach der testphase nichtmehr in den code!!


If JaNein$ = "Nein"   ;hier kannst du wenn du willst wie im oberen bsp schreiben:
               ;      If Lower(JaNein$)="nein"
               ;(besonders ratsam wenn JaNein$ durch benutzereingabe, und nicht von dir
               ;definiert wurde
   Cls
   Color 250,0,0
   Schrift1 = LoadFont("Arial",20,1,1,1)
   SetFont Schrift1
      ;freizeilen lockern den code auf und kosten nichts ;)
   Text 250,300 , "Zur Strafe wird dein PC heruntergefahren"
   Flip   ;notwendig wegen TEXT-befel, bzw. buffer (siehe Tutorial fals unklarheiten bestehen)
   Delay 2000
   Text 350,325 , "Muhahahahahah"
   Flip   ;siehe letzter flip komentar
   Delay 2000
   Cls
   Text 375,300 , "Pech"
   Flip   ;s.o.
EndIf

WaitKey()   ;nur zu testzwecken eingefühgt...
End         ;...muss später entfernt werden!!!


Beim zweiten Code-teil verhält es sich wie beim Ersten: über allem:
Code: [AUSKLAPPEN]
Graphics 800, 600, 16, 2
SetBuffer BackBuffer()


und nach jedem TEXT-befehl ein
Code: [AUSKLAPPEN]
flip


dann müsste der code eigendlich funktionieren Wink

Ich weis nicht wie gut du dich mit bb auskennst, aber wenn du mit Funktionen umgehen kannst dann wäre es wesentlich übersichtlicher wenn
du alle
Code: [AUSKLAPPEN]
Text, x-zahl, y-zahl, blabla
Flip
Delay zeit


in eine funktion packst:
Code: [AUSKLAPPEN]
Function BesseresText(x, y, bla$, zeit)
   Text, x, y, bla$
   Flip
   Delay zeit
End Function


Ändert zwar nichts an der funktionalität aber es macht den Code übersichtlicher....


Noch paar weiterführende Links:
1.Zum Thema Buffer (wie das mit text genau funktioniert usw):
a)Befehlserklärung: http://www.blitzbase.de/befehle2d/setbuffer.htm
b)Ausführlich (aber hauptsächlich auf 2d games bezogen): http://www.blitzbase.de/tutorials/rob_9.htm
2.zm Thema Funktionen (Ich weis nicht wie gut du dich auskennst, ist vllt interesant, muss man aber am anfang wirklich nicht können Wink )http://www.blitzbase.de/befehle2d/function.htm
3.Die Onlinehilfe und wie man sie in bb2d/bb3d einbringt, fals du sie noch nicht hast:http://www.blitzbase.de/2b.htm

So, also ich hoffe ich hab dir nichts extra erklärt was du schon weist, aber besser bissl zuviel gesagt, als irgendetwas wichtiges nicht sagen^^
Und man verzeihe mir mein Roman aber mir war langweilig Very Happy

mfg MolchMitDolch

StepTiger

BeitragDo, Jan 04, 2007 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Graphics 800, 600, 16, 2 ;ein grund warum nichts angezeigt wird könnte sein weil du nicht
;im 2d grafik modus bist, das ist notwendig wenn du den "text"-
;befehl verwendest...

Das stimmt so nicht. Graphics ist nicht notwendig, um Textbefehle nutzen zu können. BB setzt standartmäßig auf 2D Modus. Sinnvoll ist es trotzdem.
Jedoch lassen sich Textbefehle genau so gut im 3D Modus benutzen.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

White-air

BeitragDo, Jan 04, 2007 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
funktioniert thx
 

snörkl

BeitragDo, Jan 04, 2007 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ich denke jetzt brauchst du wohl meine version nicht mehr Wink

übrigens: wenn du was mit grafiken proggst und nicht am anfang
setbuffer backbuffer() schreibst, dann bewegen sich die dinger abgehackt^^- hat mich mal fast zu verzweiflung gebracht bis ichs gemerkt hab Very Happy

mfg
Snörkl Shocked <--mein lieblingssmiley xD
 

MolchMitDolch

BeitragFr, Jan 05, 2007 2:14
Antworten mit Zitat
Benutzer-Profile anzeigen
@StepTiger
*anKopfFass* ja stimmt, braucht man für TEXT-befehl ned Embarassed
Ich verwende fast immer 3d, deshalb bin ich einfach davon ausgegangen das man, wenn man 2d haben will, auch "graphics" schreibt Wink
  • Zuletzt bearbeitet von MolchMitDolch am Sa, Jan 06, 2007 17:36, insgesamt einmal bearbeitet
 

0penguin0

BeitragFr, Jan 05, 2007 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
MolchMitDolch hat Folgendes geschrieben:
... hinweisen das die IF-schleife groß- und ...
... diesem Fall, wenn du die IF- Schleife so schreiben ...


Very Happy
 

White-air

BeitragSa, Jan 06, 2007 2:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab da noch eine Frage XD:
Also wie kann ich das coden das wenn er auf ein Image klickt das dann was passiert Z.B.

Cls
Print "hallo"

weil ich bekomm das voll net hin.

Ich habs so gecodet:
If MouseDown(1) = Frage1Ja
Cls
Locate 400,300
Print "hallo"
EndIf
 

BlitzBasic303

BeitragSa, Jan 06, 2007 3:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Wert=IMAGERECTCOLLIDE (Bild, X, Y, Frame, StartX, StartY, Breite, Höhe)
Wert=IMAGERECTOVERLAP (Bild, X, Y, StartX, StartY, Breite, Höhe)
Wert=IMAGESCOLLIDE (Bild1, X1, Y1, Frame1, Bild2, X2, Y2, Frame2)
Wert=IMAGESOVERLAP (Bild1, X1, Y1, Bild2, X2, Y2)
Wert=RECTSOVERLAP (X1, Y1, Breite1, Höhe1, X2, Y2, Breite2, Höhe2)
 

White-air

BeitragSa, Jan 06, 2007 3:34
Antworten mit Zitat
Benutzer-Profile anzeigen
hä wie jez das versteh ich irgendwie net,was muss ich jez genau eingeben wenn ich will,das etwas passiert,wenn man mit der maustaste auf das bild klickt.das bild hat die variable "Frage1Ja" und es liegt auf "70,450".
Kann mir einer helfen?
 

BlitzBasic303

Betreff: RE:

BeitragSa, Jan 06, 2007 3:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Onlinehilfe...

Naja will ich ma nich so sein...

Wenn dein Button keine transparenz benutzt:
Code: [AUSKLAPPEN]

If IMAGERECTOVERLAP(Frage1Ja, 70, 450, Mousex(), MouseY,1, 1) and Mousehit(1) then

Wenn doch:
Code: [AUSKLAPPEN]

If IMAGERECTCOLLIDE(Frage1Ja, 70, 450, 0, Mousex(), MouseY,1, 1) and Mousehit(1) then
 

White-air

BeitragSa, Jan 06, 2007 5:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab das so
If IMAGERECTCOLLIDE(Frage1Ja, 70, 450, 0, Mousex(), MouseY,1, 1) and Mousehit(1) then
Cls
Locate 400,300
Print "hallo"
EndIf

Nur das hier:
Cls
Locate 400,300
Print "hallo"

komm leider nicht wenn ich draufklicke
 

Todeskop

BeitragSa, Jan 06, 2007 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
die maus selber collidiert doch nicht wenn ich mich nicht irre also musst du ein bild oder so drüber zeichnen und das bild nach kollision abfragen....
 

White-air

BeitragSa, Jan 06, 2007 9:31
Antworten mit Zitat
Benutzer-Profile anzeigen
wie denn?
 

Todeskop

BeitragSa, Jan 06, 2007 9:32
Antworten mit Zitat
Benutzer-Profile anzeigen
du lädst nen bild und posittionierst das immer bei deiner maus..... Rolling Eyes
Ihrgentwo ist iner blitzbase hilfe auch ein rect beispiel wo das dann mit einem rect gemacht wird...
 

White-air

BeitragSa, Jan 06, 2007 9:36
Antworten mit Zitat
Benutzer-Profile anzeigen
könntest du mir ein code beispiel geben?
 

Todeskop

BeitragSa, Jan 06, 2007 9:41
Antworten mit Zitat
Benutzer-Profile anzeigen
RECT MOUSEX(),MOUSEY(),10,10,1
....
und dann das miter kollision nur halt mit dem rect....
das wirst du ja wohl selber können....
wenn nicht lad dir turtorials usw. runter....

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group