Alles nochmal von Vorne.

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Anassis

Betreff: Alles nochmal von Vorne.

BeitragMo, Sep 22, 2008 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, da meine letzten Blitzbasic versuche schon über 1 jahr her sind, hab ich so ziemlich alles vergessen Rolling Eyes

Nun habe ich mich nochmal ganz von anfang an hingesetzt, und arbeite nun mit dem Buch "jetzt lerne Ich Spiele programmiern..."

Soweit klappt das auch schon wieder

habe jetzt aber 2 Fragen zu meinem Kapitel 3 Lektion Code:

Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()

;___________________________________________________
; Test mit Schleifen


For a=1 To 10
 Write " "
  Write a
 Next

Print

For b=11 To 20
 Write " "
  Write b
 Next

Print

For c=21 To 30
 Write " "
  Write c
 Next

Print

For d=31 To 40
 Write " "
  Write d
 Next

Print

For e=41 To 50
 Write " "
  Write e
 Next

Print

For f=51 To 60
 Write " "
  Write f
 Next

Print

For g=61 To 70
 Write " "
  Write g
 Next

Print

For h=71 To 80
 Write " "
  Write h
 Next

Print

For i=81 To 90
 Write " "
  Write i
 Next

Print

For j=91 To 100
 Write " "
  Write j
 Next

Print
WaitKey

Cls
Flip



;______________________________________________________________
; Kompakttest mit Funktion


Print Zaehler$(1,10)
Print Zaehler$(11,20)
Print Zaehler$(21,30)
Print Zaehler$(31,40)
Print Zaehler$(41,50)
Print Zaehler$(51,60)
Print Zaehler$(61,70)
Print Zaehler$(71,80)
Print Zaehler$(81,90)
Print Zaehler$(91,100)

WaitKey



Function Zaehler$(Zahl1,Zahl2)
 For a=Zahl1 To Zahl2
  Write " "
   Write a
 Next
End Function



Der erste versuch war mit Schleifen wie man sieht, das war mir jedoch ein viel zu langer Code, also habe ich versucht das ganze in eine Funktion zu packen, das klappt nun auch Smile

Wenn ich nun aber den Bildschirm mit CLS lösche, springt der Zähler trotsdem nichtmehr nach oben an den Bildschirmrand, wie krieg ich das den hin?

Das wäre auch schon meine Frage.
Und ja lacht nur das ich sowas simples nicht hinkriege, bin halt ein noob Laughing

Gruß Lars

Smily

BeitragMo, Sep 22, 2008 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi,

Nutze Text statt Write bzw Print

cu,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Anassis

BeitragMo, Sep 22, 2008 11:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt ja, mit Text kann man ja Koordinaten eingeben, hät ich aber auch selbst drauf kommen können Embarassed

Dadurch ergibt sich aber ein anderes Problem unzwar, nur mal ein kleiner ausschnitt

Code: [AUSKLAPPEN]
Text 100,50, Zaehler$(1,10)


WaitKey


Function Zaehler$(Zahl1,Zahl2)
 For a=Zahl1 To Zahl2
  Text x,y, a
 Next
End Function


Egal welche Koordinaten ich vom Text eingebe, Er schreibt immer auf dem gleichen punkt und vorallem übereinander?

Wie krieg ich das den nun wieder zu ner Schönen zeile wie bei Write oder print?

Gruß Lars

Smily

BeitragMo, Sep 22, 2008 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
y ist ja auch immer das gleiche.

Erhöh mal vor jeder textausgabe y um 12 punkte. Beim cls setzt du es wieder zurück auf 0.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

The_Nici

BeitragMo, Sep 22, 2008 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

For i = 0 To 19
   Text 0,i*12,"Tschüss Welt!"
Next
WaitKey()

Geht eine For-Schleife 20 mal durch und erhöht dann i immer um eins. (von 0 zu 19)
Dann schreibt er jedesmal an der Stelle 0, Anzahl Schleifendurchläufe * 12 "Tschüss Welt".

MfG
 

Anassis

BeitragMo, Sep 22, 2008 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar, soweit klappt das jetzt schon mit dem zählen


Code: [AUSKLAPPEN]
Graphics 800,600,32,2


Text x,y, Zaehler$(1,10)


Function Zaehler$(Zahl1,Zahl2)
 For i=Zahl1 To Zahl2
  Text 10,i*12,i
  Next
End Function

WaitKey


Die Funktion behalte ich absichtlich um es immer ändern zu können, das mit dem *12 hatte ich anfangs falsch eingesetzt, thx.

Werde dadran nun noch rumprobiern bis ich das gleiche ergebnis rauskriege wie bei meinem 1.ten Code mit Print.

Gruß Lars
  • Zuletzt bearbeitet von Anassis am Mo, Sep 22, 2008 13:23, insgesamt 2-mal bearbeitet

BladeRunner

Moderator

BeitragMo, Sep 22, 2008 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Die function ist fehlerhatf. überleg mal, Du rufst ne Funktion mit dem befehl zur Textausgabe auf und hast in ihr nochmal nen Befehl zur Textausgabe. Das ist doppel gemoppelt. Zudem wird in der Funktion eine Koordinate 'x' benutzt die nirgendwo definiert wird.
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
 

Anassis

BeitragMo, Sep 22, 2008 13:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Bladerunner hatte ich gerade gemerkt, habe es ebend editiert!
Trostdem thx

BladeRunner

Moderator

BeitragMo, Sep 22, 2008 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch dein edit ist immernoch fehlerhaft, denn weiterhin rufst Du text mit text drin auf Wink
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
 

Anassis

BeitragMo, Sep 22, 2008 13:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh stimmt ja, moment ich änder das ganze nochmal, sry ^^

EDIT:
Code: [AUSKLAPPEN]
Graphics 800,600,32,2


Zaehler$(1,10,0)


Function Zaehler$(Zahl1,Zahl2,x)
 For i=Zahl1 To Zahl2
  Text x,i*12,i
 Next
End Function

WaitKey


Jetzt aber!!

Nova

BeitragMo, Sep 22, 2008 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For i = 0 To 3
   Print "Sabbel"
   WaitKey
Next
Cls

; WICHTIGER BEFEHL!
Locate 0, 0
; WICHTIGER BEFEHL!


For i = 0 To 3
   Print "Sabbel"
   WaitKey
Next


Einfach bei jedem Cls mit "locate" den Textzeiger wieder auf Anfang stellen. Geht so auch sehr gut. Wink
AMD Athlon II 4x3,1GHz, 8GB Ram DDR3, ATI Radeon HD 6870, Win 7 64bit

Smily

BeitragMo, Sep 22, 2008 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
man sollte die verwendung von print und write im grafikmodus generell vermeiden, nova
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Anassis

BeitragMo, Sep 22, 2008 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt, Bin zwar kein Guru, sondern ein Noob, aber mit dem Text befehl kann man sich Locate da schon ganz sparen, da man mit text einfach gleich koordinaten festlegen kann.

Nun habe ich aber ein andres Problem.

Code: [AUSKLAPPEN]
Graphics 800,600,32,2

Zaehler$(1,10,0)
Zaehler$(11,20,12)


Function Zaehler$(Zahl1,Zahl2,y)
 For i=Zahl1 To Zahl2
  Text i*20,y,i
 Next
End Function


WaitKey


Wer den Code testet dem wirds auffallen, ich möchte das das 11-20 auch wieder vorne beginnt, aber komischerweise beginnt er weiter hinten, als ob er 0-10 schreibt aber unsichtbar lässt??

Gruß Lars
 

da_poller

BeitragMo, Sep 22, 2008 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
in der for schleife jedesmal einen counter mitzählen lassen der die position des textes angibt (somit kann man auch den starrtwert des textes als extra parameter definieren..

The_Nici

BeitragMo, Sep 22, 2008 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
da_poller wtf. i ist der counter.
Und da sollte alles richtig sein.
11-20 macht, dass er von 11*12 bis 20*12 Zahlen schreibt. = richtig?
 

da_poller

BeitragMo, Sep 22, 2008 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
lol bitte lesen dan posten.. führe seinen code aus und du wirst merken das die ausgabe CA so aussieht:

Code: [AUSKLAPPEN]

123456789
                  1011121314...


seine frage war wie es möglich ist den text immer an x anfangsposition auszugeben.

dazu darf er i NICHT als textwert UND x koordinate zusammen verwenden..

mfg poller!

edit:
ps: wtf ist unhöflich
 

Anassis

BeitragMo, Sep 22, 2008 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
V1:
Code: [AUSKLAPPEN]
Graphics 800,600,32,2



Zaehler$(1,10,0,0)
Zaehler$(11,20,0,20)


Function Zaehler$(zahl1,Zahl2,x,y)
 For i=Zahl1 To Zahl2
  Text i*20,x,y
 Next
End Function


WaitKey
End


V2:
Code: [AUSKLAPPEN]
Graphics 800,600,32,2



Zaehler$(1,10,0,0)
Zaehler$(11,20,0,20)


Function Zaehler$(zahl1,Zahl2,x,y)
 For i=Zahl1 To Zahl2
  Text x,y,i*20
 Next
End Function


WaitKey
End


Klappt beides nicht, da kommt nur Kauderwelsch raus, ich dachte erst das vielleicht mit eine art:

If x>1 Then x=0

zu lösen ,klappt aber auch nicht so recht, scheint so als würde er dieses If in der Funktion komplett ignorieren?

Könnt ihr mir vielleicht noch nen tipp geben?

Gruß Lars

BladeRunner

Moderator

BeitragMo, Sep 22, 2008 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600,32,2
setbuffer Backbuffer()

while not keyhit(1)
  cls
    Zaehler$(1,10,0,0)
    Zaehler$(11,20,0,20)
  flip
wend

Function Zaehler$(zahl1,Zahl2,x,y)
    For i=Zahl1 To Zahl2
        Text i,x,y+10*(i-zahl1)
    Next
End Function
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
 

Anassis

BeitragMo, Sep 22, 2008 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm so recht klappt das alles nicht.
Ist aber auch nicht wetier Tragisch da das Buch eh noch nicht mit Text und den Buffern befehlen arbeitet.
Deswegen hatte ich erst auch nur Print & Write befehle, da das Kapitel sich nur darum handelte.

Der Versuch nun war nur ein kleiner eigenversuch, aber denke soweit bin ich noch nicht.
Also werde ich erstmal noch weiter die Kapitel durcharbeiten.

Trotsdem danke für die hilfe Smile

Gruß Lars

BladeRunner

Moderator

BeitragMo, Sep 22, 2008 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
oooops, fehler meinerseits: die zeile sollte
Code: [AUSKLAPPEN]
Text x,y+10*(i-zahl1), i

lauten, da ist mir die BMax-Syntax zum Verhängnis geworden. Ich bitte um Verzeihung.
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

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group