hilfe bei einer Programmierung
Übersicht

SNIPERBetreff: hilfe bei einer Programmierung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe volgendes proplem:
ich möchte einen kreis bewegen wo aber der vorige immer wieder verschwindet und das ganze in if A=103 then ... For t = 1 To 5400 A=GetKey() tor = LoadSound("IncomingSMS.wav") SetFont font2 If A=103 Then Rect 70,210,130,20 If A=103 Then Rect 70,90,130,20 If A=103 Then Rect 70,120,20,80 If A=103 Then Rect 180,120,20,80 If A=103 Then Rect 1000,60,10,45 If A=103 Then Rect 1110,60,10,45 If A=103 Then Rect 1000,50,120,10 If A=103 Then Oval 1120,200,30,30 If A=103 Then Oval 1118,198,30,30 If A=103 Then Oval 1000,100,30,30 If A=103 Then PlaySound tor If A=103 Then Text 100,250, "Die Gastmannschaft hat ein Tor geschossen" das ist ein teil der programmierung und ich hoffe einer von euch kann mir helfen |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. Bitte Codetags benutzen (die erscheinen beim Posten unter den smileys). Und deine Fragestellung lässt nicht wirklich erahnen was Du wissen willst, nur wird dein code so nicht wirklich laufen, denn alle Bedingungen sind gleichzeitig true. |
||
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 |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wäre ich ein Interpreter würde ich erstmal sagen:
-- WARNING: Encountered BB_CODE, but no code-tags on line 3 -- Expression is not logical associated on line 2 near 'bewegen wo aber' -- Missing capital letter on line 1,1 -- Missing capital letter on line 2,1 -- ',' or '.' expected for LANG_GERMAN on line 1 -- ',' or '.' expected for LANG_GERMAN on line 2 ![]() EDIT: Zu lahm :/ |
||
Starfare: Worklog, Website (download) |
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es soll sich in das halbe rechteck oben rechts bewergen mittig♦ | ||
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Graphics 1420,300
Color 23,26,87 font1=LoadFont("calibrie",120,0,0,0) font2=LoadFont("calibri",50,0,0,1) ;Schrift in Arbeitsspeicher For t = 1 To 5400 A=GetKey() tor = LoadSound("IncomingSMS.wav") SetFont font2 If A=103 Then Rect 70,210,130,20 If A=103 Then Rect 70,90,130,20 If A=103 Then Rect 70,120,20,80 If A=103 Then Rect 180,120,20,80 If A=103 Then Rect 1000,60,10,45 If A=103 Then Rect 1110,60,10,45 If A=103 Then Rect 1000,50,120,10 If A=103 Then Oval 1120,200,30,30 If A=103 Then Oval 1120,200,30,30 If A=103 Then Oval 1118,198,30,30 If A=103 Then Oval 1000,100,30,30 If A=103 Then PlaySound tor If A=103 Then Text 100,250, "Die Gastmannschaft hat ein Tor geschossen" If A=104 Then Rect 570,210,130,20 If A=104 Then Rect 570,90,130,20 If A=104 Then Rect 570,120,20,80 If A=104 Then Rect 680,120,20,80 If A=104 Then PlaySound tor If A=104 Then Text 100,250, "Die Heimmannschaft hat ein Tor geschossen" SetFont font1 falsch = LoadSound ("System.wav") If A=103 Then x=x+1;G If A=104 Then y=y+1;H If A=116 Then x=x-1;T If A=116 Then PlaySound falsch If A=122 Then y=Y-1;Z If A=122 Then PlaySound falsch SetFont font1 ; der geladene Font kommt zum Einsatz Text 100,100,x Text 350,100,":" ; Text funktioniert wie Print+Locate Text 600,100,y Delay 1000 Cls Next das ist die voll programierung und des oval soll sich oben ind das rechteck mitig bewegen |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, fangen wir erst mal ganz klein an, den ich glaube es geht einigen hier wie mir, die immer noch nicht verstanden haben, was du eigentlich vorhast und wie wir dir dabei helfen könnten.
1. vergiss erst einmal alle if-Abfragen, die die gleiche Zahl haben, schreib: Code: [AUSKLAPPEN] if A= 103 then rect x,y,w,h rect x,y,w,h ... endif Das spart rechenpower. 2. nimm Delay raus, das bremst nur den PC, wenn du etwas langsamer laufen lassen möchtest, versuch es mit einem Timer, um eine Begrenzung rein zu bekommen, oder schau dir mal den Befehl Millisecs() auf www.blitzbase.de an. 3. Hat es einen Sinn, dass du die Schleife genau 5040 mal durchlaufen lässt? Mit Repeat/Until(irgendwas) kannst du eine Schleife initalisieren, die (irgendwas) als abbruchbedingung hat zB Code: [AUSKLAPPEN] ... Repeat if blabla tue dies und das until keyhit(1) Der Code führt eine SChleife solange aus, bis du die Escape Taste drückst. So wie es aussieht, versuchst du ein Fussbal spiel zu schreiben, ob nun manager oder simulation ist ja erst mal egal, dir fehlen Grundlegende Programmierkenntnisse. Schau deshalb erst mal auf www.robsite.de vorbei, da gibt es eine Menge Tuorials, die dir dabei helfen, einfach mal durch arbeiten und nicht nur abschreiben oder kopieren, sondern versuch zu verstehen, was dort passiert. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
schon mal vielen dank aber ich muss die schleife so lange laufen lassen weil eigelich noch eine digital uhr parallel dazu laufen soll aber da komm ich net aus der schleife
und könntest du mir vllt nommel genau sagen wie du des mit dem kein if then meinst |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Digitale Uhr kannst du auch mit millisecs realisieren, schau dir die Befehle auf der oben genannten Seite(BlitzBase) an, dort gibt es die deutsche Online Hilfe zu Blitz Basic und such hier im Forum mal nach Countdown, Zeit oder ähnlichem, da gibt es schon ein paar codes zu, wie man es realisieren kann.
So, zu der Frage mit den "if...then" 's, du schreibst in deinem Code: Code: [AUSKLAPPEN] If A=103 Then Rect 70,210,130,20 If A=103 Then Rect 70,90,130,20 If A=103 Then Rect 70,120,20,80 If A=103 Then Rect 180,120,20,80 If A=103 Then Rect 1000,60,10,45 If A=103 Then Rect 1110,60,10,45 If A=103 Then Rect 1000,50,120,10 If A=103 Then Oval 1120,200,30,30 If A=103 Then Oval 1120,200,30,30 If A=103 Then Oval 1118,198,30,30 If A=103 Then Oval 1000,100,30,30 If A=103 Then PlaySound tor If A=103 Then Text 100,250, "Die Gastmannschaft hat ein Tor geschossen" das kannst du einfacher machen und den Prozessor nicht so qäuelen: Code: [AUSKLAPPEN] If A=103 Then Rect 70,210,130,20 Rect 70,90,130,20 Rect 70,120,20,80 Rect 180,120,20,80 Rect 1000,60,10,45 Rect 1110,60,10,45 Rect 1000,50,120,10 Oval 1120,200,30,30 Oval 1120,200,30,30 Oval 1118,198,30,30 Oval 1000,100,30,30 PlaySound tor Text 100,250, "Die Gastmannschaft hat ein Tor geschossen" endif Das ist erst mal nur ein Tipp für den Anfang, bei deinem Code gibt es noch zig andere Sachen und Methoden, ihn zu optimiern, aber wir wollen dir ja nicht alles vorkauen, du sollst ja selber was lernen ![]() *dingdingdong* Ok, Unterrichtsstunde für heute vorbei. Hausaufgaben, lernen lernen und noch mehr lernen. mfg skey-z |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok vielen dank ich hoffe ich bekomm des so ihn denn ich muss des in 3 wochen haben für die schule
thx |
||
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi also ich hab jetzt eine stoppuhr aber jetzt hab ich des proplem das ich des net kleichzeitig laufen lassen kann und des mit dem gosup geht enweder net richtig oder ich kannst net wo muss ich des hinsetzten wenn es kleichzeiteig leuft oder muss ich en anderen befehl eingeben
Code: [AUSKLAPPEN] Graphics 800,600
schrift = LoadFont("Arial",20,1) SetFont schrift start = MilliSecs() SetBuffer BackBuffer() Repeat Cls time = MilliSecs()-start sec = time / 1000 min = time / 60000 sec=sec-(minuten*60) If sec<10 Then sec3$="0"+sec Else sec3$=sec EndIf If min<10 Then min2$="0"+min Else min2$=min EndIf Text 20,35,"Zeit: " + min2+ ":" + sec3+ ":" + Mid(time,(Len(sec)+1),2) Flip Until KeyHit(1) End Graphics 1420,300 Color 23,26,87 font1=LoadFont("calibrie",120,0,0,0) font2=LoadFont("calibri",50,0,0,1) ;Schrift in Arbeitsspeicher For t = 1 To 5400 A=GetKey() tor = LoadSound("IncomingSMS.wav") SetFont font2 If A=103 Then Rect 70,210,130,20 Rect 70,90,130,20 Rect 70,120,20,80 Rect 180,120,20,80 Rect 1000,60,10,45 Rect 1110,60,10,45 Rect 1000,50,120,10 Oval 1120,200,30,30 Oval 1120,200,30,30 Oval 1118,198,30,30 Oval 1000,100,30,30 PlaySound tor Text 100,250, "Die Gastmannschaft hat ein Tor geschossen" EndIf If A=104 Then Rect 570,210,130,20 Rect 570,90,130,20 Rect 570,120,20,80 Rect 680,120,20,80 PlaySound tor Text 100,250, "Die Heimmannschaft hat ein Tor geschossen" EndIf SetFont font1 falsch = LoadSound ("System.wav") If A=103 Then x=x+1;G If A=104 Then y=y+1;H If A=116 Then x=x-1;T If A=116 Then PlaySound falsch If A=122 Then y=Y-1;Z If A=122 Then PlaySound falsch SetFont font1 ; der geladene Font kommt zum Einsatz Text 100,100,x Text 350,100,":" ; Text funktioniert wie Print+Locate Text 600,100,y Delay 1000 Cls Next |
||
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab jetzt mal des gosub eingesetzt aber jetzt spring des hin und her und leuft net kleichzeitig bitte um hilfe
Code: [AUSKLAPPEN] .hallo
Graphics 1420,300 Color 23,26,87 font1=LoadFont("calibri",120,0,0,0) font2=LoadFont("calibri",50,0,0,1) For t = 1 To 5400 A=GetKey() tor = LoadSound("tooor.wav") SetFont font2 If A=103 Then Rect 70,210,130,20 Rect 70,90,130,20 Rect 70,120,20,80 Rect 180,120,20,80 Rect 1000,60,10,45 Rect 1110,60,10,45 Rect 1000,50,120,10 Oval 1120,200,30,30 Oval 1120,200,30,30 Oval 1118,198,30,30 Oval 1000,100,30,30 PlaySound tor Text 100,250, "Die Gastmannschaft hat ein Tor geschossen" EndIf If A=104 Then Rect 570,210,130,20 Rect 570,90,130,20 Rect 570,120,20,80 Rect 680,120,20,80 PlaySound tor Text 100,250, "Die Heimmannschaft hat ein Tor geschossen" EndIf SetFont font1 falsch = LoadSound ("tooor.wav") If A=103 Then x=x+1;G If A=104 Then y=y+1;H If A=116 Then x=x-1;T If A=116 Then PlaySound falsch If A=122 Then y=Y-1;Z If A=122 Then PlaySound falsch SetFont font1 ; der geladene Font kommt zum Einsatz Text 100,100,x Text 350,100,":" ; Text funktioniert wie Print+Locate Text 600,100,y Delay 1000 Gosub tor Cls Next .tor Graphics 1420,300 Color 23,26,87 schrift = LoadFont("calibri",120,1) SetFont schrift start = MilliSecs() SetBuffer BackBuffer() Repeat Cls time = MilliSecs()-start sec = time / 1000 min = time / 60000 sec=sec-(minuten*60) If sec<10 Then sec3$="0"+sec Else sec3$=sec EndIf If min<10 Then min2$="0"+min Else min2$=min EndIf Text 20,35,"ZEIT: " + min2+ ":" + sec3+ ":" + Mid(time,(Len(sec)+1),2) Flip Gosub hallo Until KeyHit(1) End |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du den Screen mit CLS löschst musst du ihn wieder neu Zeichnen. So einfach.
Code: [AUSKLAPPEN] Graphics 800,600,0,2 Setbuffer Backbuffer() Text 0,0,"Nun, wie du siehst können wir zeichnen" Text 0,12,"auch ohne einer Schleife. Benutzen wir" Text 0,24,"jedoch CLS, wird der Screen gelöscht," Text 0,36,"folglich müssen wir neu zeichnen!" Text 0,48,"Beliebige Taste drücken!" Flip ;Das Bild im Hintergrund nach vorne switchen! WaitKey() Cls Rect 0,0,32,32,1 Text 0,36,"Ein Klotz. Drücke eine beliebige Taste um" Text 0,48,"den Bildschirm zu löschen!" Flip WaitKey() Cls Text 0,0,"WTF, er ist weg!" Flip WaitKey() Cls Text 0,0,"So, nun, in einer Schleife!" Flip WaitKey() Repeat Text 0,0,"In der Schleife!" Text 0,12,"Wie du siehst können wir auch Funktionen" Text 0,24,"in einer Schleife wiederholt ausgeführt werden!" Rect MouseX(),MouseY(),32,32,1 Flip Cls Until Keyhit(1) End |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] ;Hier mal ein ganz einfaches Beispiel, wie du so etwas realisieren kannst: Graphics 800, 600, 32, 2 SetBuffer BackBuffer() starttime = MilliSecs() ;hier wird die aktuelle Systemzeit abgerufen midx = GraphicsWidth()/2 midy = GraphicsHeight()/2 ;Mittelpunkt des Festers MoveMouse midx, midy ;Mausposition in die Mitte setzen Repeat mx = MouseX() my = MouseY() ;Mauskoordinaten abrufen Color 255, 0, 0 Rect mx-20, my-10, 40, 20 ;Rechteck an der Mausposition zeichnen time = (MilliSecs()-starttime)/1000 ;versrtichene Zeit seit Programmstart in sekunden Text 10, 10, "Zeit: " + time ;Zeit ausgeben Flip ;Buffer umschalten (Back->Front) Cls ;Backbuffer löschen Until KeyHit(1) ;Programm beenden, wenn Esc gedrückt wird End ;Fenster Schließen PS: du solltest wirklich mal die Seiten, die ich dir schon vor ein paar Tagen genannt habe durch arbeiten, dein Code zeugt noch immer von sehr vielen Fehlern. Es soll jetzt nicht böse rüberkommen, aber wir sind nicht dafür da, deine Hausaufgaben zu machen, lernt ihr BB in der Schule, oder ist es nur eine Projektarbeit. Bitte versuche deine Sachen mal selber hin zu bekommen, ansonsten kannst du es eher in der Job-Börse Posten, wenn du dir deinen Code hier zusammen "suchst", dort wird es dann aber nciht ganz so billig. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo ist ok aber ich hab ja auf der seite des eine durchgemacht aber des gosub geht bei mir net richtig hab ja schon alles muss nur noch zu sammen schweisen und des weis ich net wie des geht des steht da glaub au net jeden fals hab ich des net gefunden | ||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
es ist doch ganz klar, dass dir auf einer Tutarial seite kein code vorgesetzt wird, der genau auf dein Problem zugeschnitten ist, hier heißt es sein eigenes Gehirn hochzufahren und logisches Denken an den Tag zu legen.
Dort werden nur Gundlagen und spezifische Einzelheiten behandelt, wenn du selber etwas schaffen möchtest, musst du das gelernte nur selber kombinieren. zu deinem Probel mit Gosub. Code: [AUSKLAPPEN] ;Hauptschleife Repeat gosub rechteck until keyhit(1) .rechteck color 255 rect 10, 10, 100, 20 return in der Haubtschleife wird die Sprungmarke .rechteck angesteuert, in der ein Rechteck gezeichnet wird, durch das Return springt das Programm wieder zurück in die Hauptschleife. ganz einfach oder? Außerdem reicht es nicht aus, ein Kapitel des Tutorials durchzulesen oder durch zu arbeiten, wichtig ist das was dort beschrieben ist, auch verstanden zu haben und alles durch zu arbeiten, damit man es auch kombinieren kann. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo des hab ich auch aber auf der ganzen seite sthet nicht wie man aus einer vesten schleife raus kommt um jetzt hiir die tore zu bedienen aber die erste schleife unabhängig weiter leuft
so was in der art steht auf der seite nicht |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es läuft immer nur das was auch aufgerufen wird. Der trick ist es nur die Hauptschleife zu haben und alle anderen 'Schleifen' einmal pro Durchlauf der Hauptschleife einmal weiter fortzuführen. | ||
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 |
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also kann man mit gosub nicht die schleifen so verbinden das sie beide gleichzeitig laufen des hatt nemlich unser lehrer gesagt
und wenn es geht dann wäre es net wenn ihr mir an meiner programierung zeigen könntet wie weil ich bekomm des net raus |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
das was du machen willst ist Multithreading und das kann BB nicht.
Wie ich schon in dem Thread von Maxi vermutet habe, kann euer Lehrer nicht programmieren, es sei den er hat es allgemein gesagt, den es gibt andere Sprachen, die das können. Zudem möchte ich dich bitten ein wenig auf deine Rechtschreibung bzw. an deinem Ausdruck zu arbeiten, es ist manchmal sehr schwer zu verstehen, was du meinst. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
SNIPER |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok kann mann dann in meiner programmierung die uhrschleife so einsetzten das es gleichzeitig mit den toren leuft
wenn ja mit welchen befehlen dann kann ich des versuchen thx |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group