hilfe bei einer Programmierung

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

SNIPER

Betreff: hilfe bei einer Programmierung

BeitragMi, März 05, 2008 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BladeRunner

Moderator

BeitragMi, März 05, 2008 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
~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

BeitragMi, März 05, 2008 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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


Wink

EDIT: Zu lahm :/
Starfare: Worklog, Website (download)
 

SNIPER

BeitragMi, März 05, 2008 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
es soll sich in das halbe rechteck oben rechts bewergen mittig♦
 

SNIPER

BeitragMi, März 05, 2008 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, März 05, 2008 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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
Twitter
 

SNIPER

BeitragMi, März 05, 2008 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, März 05, 2008 23:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

*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
Twitter
 

SNIPER

BeitragDo, März 06, 2008 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ok vielen dank ich hoffe ich bekomm des so ihn denn ich muss des in 3 wochen haben für die schule
thx
 

SNIPER

BeitragDo, März 06, 2008 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, März 07, 2008 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, März 07, 2008 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, März 07, 2008 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
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
Twitter
 

SNIPER

BeitragFr, März 07, 2008 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, März 07, 2008 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
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
Twitter
 

SNIPER

BeitragFr, März 07, 2008 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BladeRunner

Moderator

BeitragFr, März 07, 2008 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, März 07, 2008 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, März 08, 2008 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
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
Twitter
 

SNIPER

BeitragSa, März 08, 2008 13:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group