Seitenumbruch
Übersicht

![]() |
BlitzproggerBetreff: Seitenumbruch |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich progge gerade an meinem ersten Spiel- einem Textadventure. Und da will ich dass wenn man unteren Bildschirmrand ankommt, dass der Text nich einfach darin versinkt. In den Tutorials hab ich grad nichts gefunden was mir weiterhelfen könnte. Bitte um Rat.
mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
was genau bedeutet "dass der Text nich einfach darin versinkt"?
Ich vermute mal du benütut "input" zur eingabe und "print" zur ausgabe. Wenn du jetzt möchtest, das die eingaben nicht immer weiter nachunten wandern, kannst du den "locate x,y" Befehl anwenden. Natürlich wäre dan ein cls noch angebracht, damit nicht alles übereinander gemalt wird. hier ein Beispiel: Code: [AUSKLAPPEN] Graphics 640,480,16,2 Locate 0,0 name$ = Input("wie ist dein name ") Print "ahh dein name ist also " +name WaitKey() Cls Locate 0,0 nachname$ = Input("wie ist dein nachname " ) Print "Ah grüß gott herr " + nachname + " " + name WaitKey() Cls Siehe dazu folgende befehle : http://www.blitzbase.de/befehle2d/locate.htm http://www.blitzbase.de/befehle2d/waitkey.htm http://www.blitzbase.de/befehle2d/cls.htm mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder noch besser, Du vergisst Input, Print und Locate, die sind nämlich nur noch aus Kompatibilitätsgründen in der Sprache und haben in modernen Projekten nix mehr verloren.
Benutze anstatt print besser ql:text Um Input zu ersetzen empfehle ich eine Suche hier im Forum nach "Eingaberoutine", am besten im Codearchiv. |
||
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 |
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok.
ich versuche es mit Locate weil Iput sehr wichtig is danke für die schnelle antwort mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich rate ebenfalls von der Benutzung von Print, Locate, Write und Input strengstens ab. | ||
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 |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hatte mal einen Textscrollingcode gemacht, der Dateien auslesen konnte, jedoch ohne Zeilenumbruch.
Code: Code: [AUSKLAPPEN] Graphics 640,480,0,2 SetBuffer BackBuffer() Dim Textarray$(1000) Datei=ReadFile("blubb.txt") i=1 readed$="" Repeat readed$=ReadLine(Datei) Textarray(i)=readed$ ;Text der Datei auslesen i=i+1 If Eof(Datei) Then Exit Forever Textarray(i-1)="" CloseFile(Datei) scrolled%=1 zeilen%=0 While Not KeyDown(1) zeilen=0 ;Die gemalten Zeilen wieder auf 0 setzen. scrolled=scrolled-MouseZSpeed() If scrolled<1 Then scrolled=1 maxscroll=scrolled*53 ;Bis zum Bildschirmrand While maxscroll>1000 maxscroll=maxscroll-1 ;Darauf achten, dass man nicht aus dem Array gelangt! Wend For i=scrolled To maxscroll zeilen=zeilen+1 ;Gemalter Zeilenwert. Text 0,zeilen*12,Textarray(i) ;Malen Next Text 400,0,scrolled Flip Cls Wend Du könntest um einen Zeilenumbruch an der Seite zu machen, die Stringlänge mit Stringwidth mit der x-Grösse des Grafikfensters vergleichen, und wenn es zu gross ist kopierst du mit ql:Right oder ql:Mid die restlichen Zeichen aus. Die anzahl der Vorigen zeichen kannst du ermitteln, in dem du rechnest: (GesamteStringlänge(ql:Stringwidth) - GrafikfensterX) : Zeichengrösse |
||
- Zuletzt bearbeitet von The_Nici am Sa, März 01, 2008 12:57, insgesamt einmal bearbeitet
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da fällt mir noch ein-
man sollte eigentlich schon sehen was bisher passiert ist, deshalb brauche ich wohl eher, wenn man unten ankommt, dass da, dann die Seite "länger" wird und man mit dem Mausrad (oder den Pfeiltasten) rauf und runter scrollen kann. Wäre nett wenn man mich auf ein Tutorial aufmerksammachen könnte. ![]() mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Siehe den oberen post? | ||
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habs in BB kopiert, doch erkennt einige Funcs net. ![]() mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...ght=scroll
Irgendwo da hab ich eine Lösung für Texte implementiert. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das is ja ne gute Lösung - aber der input ist echt sehr wichtig. Ich könnt ihn höchstens weglassen wenn ich Schaltflächen reinbauen könnte und da komm ich auch schon e bissel an meine Grenzen.
Hier ma ein teil meines codes: Code: [AUSKLAPPEN] Function Region1() Print "Du befindest dich im Wald des Lebens" Print "Im Dickicht erkennt ihr einen Wolf. Er ist alleine. Greift ihr ihn an? r1w1$ = Input() If r1w1 = "ja" Then wolf1.feind = New feind wolf1\name$="Wolf" wolf1\schaden%=3 wolf1\leben3%=5 ElseIf r1w1 = "nein" Then Print "Als ihr euch vorbeischleichen wollt wird er durch seine geschärften Sinne auf euch aufmerksam!" Print "Wegrennen bringt nichts. Ihr müsst kämpfen!" wolf1.feind = New feind wolf1\name$="Wolf" wolf1\schaden%=3 wolf1\leben3%=5 EndIf If wolf1\leben3%= 5 Then wolf1\leben3%= - schaden1 - schaden2 - mana2 leben1% = leben1 - schaden leben2% = leben2 - schaden EndIf If wolf1\leben3>0 Then Print "Der Wolf ist nicht tot. Rennt weg!!" r1w4$ = Input() EndIf If r1w4 = "ja" Then Print "Ihr entkommt in dem ihr einen Wasser fall herunterspringt!" EndIf If wolf1\leben3<1 Then Print "Der Wolf ist tot. Wollt ihr abreisen?" r1w2$ = Input() EndIf If r1w4 = "nein" And wolf1\leben3<1 Then Print "Der Wolf ist tot- und welch Wunder- hatte 50 Goldstücke dabei." Gold% =Gold + 50 EndIf If r1w2 = "nein" Then Print "Als ihr noch länger herumstreift findet ihr eine Höhle mit einem Schatz." Gold% =Gold + 100 Print "Nun müsst ihr aber abreisen." EndIf If r1w4 = "nein" Then Print "Also gut." wolf1\leben3%= - schaden1 - schaden2 - mana2 leben1% = leben1 - schaden leben2% = leben2 - schaden EndIf Print "Du hast die Möglichkeit nach Osten oder nach Süden zu gehen. Im Osten hast du gestartet und im Süden erkennt ihr die Türme einer Stadt." Print "Schreibe ost oder süd." r1$ = Input() If r1 = "ost" Then Region2 ElseIf r1 = "süd" Then Region5 EndIf End Function Von der Sorte hab ich schon 9 Ich hoffe einer kann mich auf ein Tut. oder so hinweisen wo man lernt wie man Schaltflächen positioniert etc. Wie man auch uschwer erkennen kann behersche ich vorallem nur Print, Input und If. mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
PlasmaBetreff: nette idee so ein textadventure |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber du solltest die erstmal über die befehle und deren wirkungsweise klarmachen
damit kommst du schneller vorran und machst einige sachen einfacher/effizienter so währe eine baumstruktur deiner orte verknüpft mit den dazugehörigen monstern,deren möglichkeiten,deinen möglichkeiten ,besser da du dann auch einfacher andere sachen hinzufügen kannst , |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Update mal deine Blitzversion, mein Code sollte einwandfrei funktionieren.
Auf Input kann man 100% verzichten. Siehe ql:Getkey ql:Chr ql:Text Diese Befehle gehören zu den Grundkenntnissen! |
||
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich will dass man Tasten drückt ist das ganz gut, doch würde ich gerne Schaltflächen einbauen. (So mit Schalter "ja" und "nein")
Ich such mal in den tuts. Ps: Ist echt toll wie zügig ihr antwortet ![]() mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab da mal was programmiert. Es könnte dich etwas erschlagen ![]() Code: [AUSKLAPPEN] ;GUI Type Tbutton Field name$ Field x Field y Field width Field height Field tooltip$ Field mark Field textx Field texty End Type Global mouse_X,mouse_Y Global gui_Tbutton.Tbutton,button$ Global gui_width=GraphicsWidth(),gui_height=GraphicsHeight() ;GUI ENDE ;Beispielprogramm Graphics 800, 600,0,2 SetBuffer BackBuffer() ; Schriftart Global Schrift Schrift=LoadFont("Arial",14) SetFont Schrift frametimer=CreateTimer(60) ;Buttons erstellen new_button("Start",450,270,"Alienshooter Spielen",1,90,20) new_button("Laden",445,295,"Gespeichertes Spiel laden",0,90,20) new_button("Optionen",440,320,"Einstellungen bearbeiten",0,90,20) new_button("Anleitung",435,345,"Steuerung, Hindergrundstory und mehr",0,90,20) new_button("Beenden",430,370,"Alienshooter beenden",1,90,20) While KeyDown(184)=False And KeyDown(62)=False If timer=False Then WaitTimer (frametimer) Cls ;flushs FlushKeys FlushMouse mouse_X=MouseX() mouse_Y=MouseY() draw_button() ;buttonover button$=check_button$() ;buttonhit If MouseDown(1) If button$="Beenden" Goto ende ElseIf button$="Start" del_button("Start") del_button("Laden") del_button("Optionen") del_button("Anleitung") del_button("Beenden") Goto game EndIf EndIf Flip Wend .game .ende End ;GUI FUNKTIONEN Function new_button(name$,x,y,tooltip$=False,mark=True,width=False,height=False) gui_Tbutton.Tbutton=New Tbutton If height=False height=FontHeight() If (height Mod 2)<>0 height=height+1 EndIf height=height+2 EndIf If width=False width=StringWidth(name$)+10 EndIf gui_Tbutton\name$=name$ gui_Tbutton\x=x gui_Tbutton\y=y gui_Tbutton\width=width gui_Tbutton\height=height gui_Tbutton\tooltip$=tooltip$ gui_Tbutton\mark=mark gui_Tbutton\textx=x+(width/2) gui_Tbutton\texty=y+(height/2) End Function Function draw_button() Local textx,texty For gui_Tbutton.Tbutton=Each Tbutton Color 255,255,255 Rect gui_Tbutton\x,gui_Tbutton\y,gui_Tbutton\width,gui_Tbutton\height,0 Text gui_Tbutton\textx,gui_Tbutton\texty,gui_Tbutton\name$,1,1 Next End Function Function check_button$() Local returnvalue$,breite,hoehe=FontHeight(),textx If (hoehe Mod 2)<>0 hoehe=hoehe+1 EndIf hoehe=hoehe+2 ; rand For gui_Tbutton.Tbutton=Each Tbutton If mouse_X>=gui_Tbutton\x And mouse_X<=(gui_Tbutton\x+gui_Tbutton\width) And mouse_Y>=gui_Tbutton\y And mouse_Y<=(gui_Tbutton\y+gui_Tbutton\height) returnvalue$=gui_Tbutton\name$ If gui_Tbutton\mark=True Color 105,105,0 Rect gui_Tbutton\x,gui_Tbutton\y,gui_Tbutton\width,gui_Tbutton\height,1 Color 255,255,255 Rect gui_Tbutton\x,gui_Tbutton\y,gui_Tbutton\width,gui_Tbutton\height,0 Local xx,yy Color 0,0,0 For yy = -1 To 1 For xx = -1 To 1 Text gui_Tbutton\textx+xx,gui_Tbutton\texty+yy,gui_Tbutton\name$,1,1 Next Next Color 255,255,255 Text gui_Tbutton\textx,gui_Tbutton\texty,gui_Tbutton\name$,1,1 EndIf If gui_Tbutton\tooltip <> False breite=StringWidth (gui_Tbutton\tooltip$) If (mouse_X+breite+15)>gui_width textx=mouse_X-breite-5 Else textx=mouse_X+11 EndIf Color 0,0,0 Rect textx-2,mouse_Y-hoehe/2,breite+4,hoehe Color 255,255,255 Rect textx-2,mouse_Y-hoehe/2,breite+4,hoehe,0 Text textx,mouse_Y,gui_Tbutton\tooltip,0,1 EndIf Exit EndIf Next Return returnvalue$ End Function Function del_button(name$) For gui_Tbutton.Tbutton=Each Tbutton If gui_Tbutton\name$=name$ Delete gui_Tbutton.Tbutton Exit EndIf Next End Function THE SHARK |
||
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schönes Menü.
Aber wie du weise vorausgesehen, fühle ich mich vom code ziemlich erschlagen. Ware nett wenn des mir erklären könntest. Und nun noch ein paar Fragen: 1. Was ist "PN" / wo finde ich es? 2. Wie kann ich die "Kamera" verschieben, dass ich z.b. wie in Word scrollen kann? 3. Wie kann ich Schleifen in den hintergrund stellen? (dass ich ne Repeat Schleife im Hintergrund laufen lasse, die nicht das ganze Spiel stoppt? Wie schon gesagt: ich arbeite mit der bb 2D Demo. Desto mehr Fragen geklät werde desto besser. mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. PN heißt private nachricht
2. Kameras gibts nur in 3d, was genau willst du scrollen? 3. in der repeat-schleife kommt alles tein, das abläuft zB Code: [AUSKLAPPEN] Graphics 800,600,0,2 ;Bildschirm öffnen SetBuffer BackBuffer() ;Setzt einen 2ten Buffer, auf einen zeichnet man, der andere wird angezeigt timer=CreateTimer(60) ;Setzt einen timer, damit die Prozessorlast niedrig gehalten wird und das "Spiel" nicht zu schnell läuft While Not KeyDown(1) ;Hauptschleife WaitTimer(timer) ;Bremst das Spiel, sieht zeile 3 Cls ;löscht den bilsschirm Text 0,5,"Ein text" ;schreibt den text "Ein text" an die Position 0,5 a=a+5 ;erhöht a If a>GraphicsWidth() ;wenn a größer ala die Breite des bildschirms ist a=a-GraphicsWidth() ;wird die bildschirmbreite abgezogen EndIf Rect a,200,10,10 ;zeichnet ein rechteck mit der x-Koordinate a und er größe 10x10 Flip ;tauscht die buffer aus Wend End wenn du den code nicht verstehst, scha dir mal das hervorragende Tut von Rob an: http://www.robsite.de/bbkurs2/index.htm THE SHARK[/code] |
||
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich progge an einem Textadventure und ewnn ich da mit dem Text unten angelangt bin sollte man rauf und runterscrollen können oder zumindest immer den unteren Teil sehen. Der Rest is klar. ![]() mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
The_Nici hat Folgendes geschrieben: Hatte mal einen Textscrollingcode gemacht, der Dateien auslesen konnte, jedoch ohne Zeilenumbruch.
Code: Code: [AUSKLAPPEN] Graphics 640,480,0,2 SetBuffer BackBuffer() Dim Textarray$(1000) Datei=ReadFile("blubb.txt") i=1 readed$="" Repeat readed$=ReadLine(Datei) Textarray(i)=readed$ ;Text der Datei auslesen i=i+1 If Eof(Datei) Then Exit Forever Textarray(i-1)="" CloseFile(Datei) scrolled%=1 zeilen%=0 While Not KeyDown(1) zeilen=0 ;Die gemalten Zeilen wieder auf 0 setzen. scrolled=scrolled-MouseZSpeed() If scrolled<1 Then scrolled=1 maxscroll=scrolled*53 ;Bis zum Bildschirmrand While maxscroll>1000 maxscroll=maxscroll-1 ;Darauf achten, dass man nicht aus dem Array gelangt! Wend For i=scrolled To maxscroll zeilen=zeilen+1 ;Gemalter Zeilenwert. Text 0,zeilen*12,Textarray(i) ;Malen Next Text 400,0,scrolled Flip Cls Wend Ehm, wie gesagt? |
||
![]() |
Blitzprogger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohh ja, stimmt ja. Dumm von mir. ![]() mfg |
||
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/
Unfreiwilliger Gewinner des BAC# 115. ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group