Print und Variablen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

DjDETE

BeitragMo, Apr 20, 2009 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mit 11 angefangen zu programmieren...
Zu deinem Problem:
Es wäre wirklich sinnvoll wenn du zuerst ein paar grundlegende Tutorials durcharbeitest, ich kann dir auch das Buch "Programmieren für Kids" ans Herz legen, hat mir sehr geholfen (Gibt's vlt. in deiner Bücherei).
MfG DeTe
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden.

kriD

Betreff: debug

BeitragMo, Apr 20, 2009 23:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab nen sehr nützlichen befehl für dich, coolerj.

undzwar debuglog und vlt noch runtimeerror. damit wird es dir möglich sein alleine deinen code zu debuggen udn die fehlerquelle ausfindig zu machen.
der pc macht nur, was du ihm vorher per BB aufgetragen hast, die fehlerquelle ist also deine logik bzw. dein verständnis der Programmiersprache.

mit debuglog kannst du während der laufzeit des programms zB variablen in der debuglog anschauen, indem du
Code: [AUSKLAPPEN]
debuglog meinetollevariable

schreibst,
oder zb bloß überprüfen, ob das programm überhaupt an bestimmte stellen gelangt und das machst, was du willst, indem du
Code: [AUSKLAPPEN]
if 1=1 then
debuglog "juhu, 1 ist tatsächlich 1!!11elf"
endif

schreibst.

mit runtimeerror wird das programm (sogar mit beliebiger nachricht) abgebrochen, sobal der befehl aufgerufen wird. auch das kann beim debuggen auch sehr nützlich sein, zB:
Code: [AUSKLAPPEN]
if 0 then
runtimeerror "hier muss was falsch gelaufen sein!"
endif


auf das du in zukunft deine fehler selbst finden mögst und nicht andauernd einen neuen ("wo is mein fehler?"-)thread aufmachst, weil dein programm wieder nicht will, wie du (alles logisch, s.o.).
in besonderen notfällen, oder wenn das programm augenscheinlich WIRKLICH etwas unlogisches tut, was man sich auch nch mehrmaligem und tagelangen debuggen und probieren sowie forensuche nicht erklären kann, wirds dir keiner verübeln, wenn du nachfragst, wo dein fehler ist, weil solche sachen auch die anderen programmierer hier weiterbringen, im gegensatz zu simpler debugarbeit, die jeder hier auch ohne solche posts bei seiner eigenen programmiererei zu leisten hat.

gehört halt dazu Wink

lg kriD

EDIT: irgendwie funktioniert das syntax-highlighting nicht
Wenn ich du wäre, wäre ich lieber ich!
  • Zuletzt bearbeitet von kriD am Di, Apr 21, 2009 15:48, insgesamt 3-mal bearbeitet

BladeRunner

Moderator

BeitragDi, Apr 21, 2009 5:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Highlighting, Drik, funktioniert sehr wohl, Du musst es nur auch benutzen Wink (syntax="bb" statt code)
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

kriD

BeitragDi, Apr 21, 2009 9:38
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hatte es bunutzt, BR, jedoch hat er aus meinen 3 codestellen eine riesige gemacht und anstatt [/syntax], wie ich es geschrieben habe stand nacher im post [syntax:01421irgenwelchenummern]. da dieser große syntaxabschnittt nicht gerade zur übersichtlichkeit beitrug hab ich nach mehrmaligem rumprobieren doch lieber code verwendet.

ich änders dir zuliebe aber mal wieder um

lg kriD
Wenn ich du wäre, wäre ich lieber ich!

BladeRunner

Moderator

BeitragDi, Apr 21, 2009 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
oha, dann ist das wohl ein Bug. Danke für den Hinweis Smile
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

kriD

BeitragDi, Apr 21, 2009 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
gerne Wink
habs nun wieder in code geändert..[/offtopic]

lg kriD
Wenn ich du wäre, wäre ich lieber ich!
 

coolerj

BeitragMi, Apr 22, 2009 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
So ein kleines aber für mich komisches problem.
Weil ich es genau so wie bei jeden anderen aber bei denen geht es.
Code: [AUSKLAPPEN]

;Graphics setzen
Graphics3D 1280, 1024, 1
;Name setzen
AppTitle "BlitzBall"
;SetBuffer
SetBuffer BackBuffer()
;Load Texturen
gras = LoadTexture("gras.bmp")
pyramide = LoadTexture("pyramide.bmp")
ball = LoadTexture("ball.bmp")
[color=red]cubet = LoadTexture("Mauer.bmp")[/color]
;Objekte erstellen
;Camera wird erstellt und konfiguriert
camera = CreateCamera()
;Light wird erstellt und konfiguriert
light = CreateLight()
;Spiel Ball wird erstellt und konfiguriert
cone = CreateSphere(32)
EntityType cone, 1
EntityTexture cone, ball
;Hintergrund wird erstellt und konfiguriert
[color=red]cube = CreateCube()
EntityType cube, 2
PositionEntity cube, 3, 0.5, 10
ScaleEntity cube, 2, 1.5, 2
EntityTexture cube, cubet[/color]
;Boden wird erstellt und konfiguriert
b = CreateCube()
PositionEntity b, 2, -1, 10
EntityTexture b, gras
ScaleMesh b, 10,0.05,10
;Variablen setzen
x# = 0
y# = 0
z# = 10
sprunggeschwindigkeit = 3
zaehler = 0
sprunghoehe = 0
faktor = 4
apw$ = "abccba"

While Not KeyHit(1)
;Wenn sprunghohe unter 0 ist dann wird sie zu 0
sprunghoehe=sprunghoehe-sprunggeschwindigkeit
If sprunghoehe < 0 Then sprunghoehe = 0
   ;Über prüfen ob Kugel über Rand ist
   ;X Abfrage
   If x# >= 11 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      y# = 0
   End If
   If x# <= -9 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      z# = 10
   End If
   ;Z Abfrage
   If z# >= 20 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      z# = 10
   End If
   If z# <= -0 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      z# = 10
   End If
   ;Über prüfen ob irgendeine Taste gedrücht wird
   If KeyDown(203) = 1 Then x# = x# - 0.1 ;Pfeil nach links cone nach links
   If KeyDown(1) = 1 Then End ;ESC Beenden
   If KeyDown(205) = 1 Then x# = x# + 0.1 ;Pfeil nach rechts cone nach rechts
   If KeyDown(208) = 1 Then z# = z# - 0.1 ;Pfeil nach unten cone nach unten
   If KeyDown(200) = 1 Then z# = z# + 0.1 ; Pfeil nach oben cone nach oben
   If KeyDown(32) = 1 Then TurnEntity camera, 0, - 1, 0 ;D camera nach rechts
   If KeyDown(30) = 1 Then TurnEntity camera, 0, 1, 0 ;A camera nach links
   If KeyDown(17) = 1 Then MoveEntity camera, 0, 0, 0.05 ;W camera nach vorne
   If KeyDown(31) = 1 Then MoveEntity camera, 0, 0, - 0.05 ;S camera nach hinten
   If KeyDown(16) = 1 Then MoveEntity camera, 0,0.05, 0 ;Q camera nach oben
   If KeyDown(18) = 1 Then MoveEntity camera, 0, - 0.05, 0 ;E camera nach unten
   If KeyDown(29) And KeyDown(46) Then ;Str C cheats eingeben
      ;Starte Cheat Dialog
      cheat$ = Input$ ("Bitte Cheat Code eingeben:")
      Print cheat$
      If cheat$ = 1 Then
         faktor = 4
         Print "Faktor erfolgreich auf 4 gesetzt"
      End If
      If cheat$ = 3 Then
         sprunggeschwindigkeit = 5
         Print "Sprunggeschwindigkeit erfolgreich auf 5 gesetzt"
      End If
      If cheat$ = 4 Then
         sprunggeschwindigkeit = 4
         Print "Sprunggeschwindigkeit erfolgreich auf 4 gesetzt"
      End If
      If cheat$ = 5 Then
         Print "Admin PW:" + apw$
      End If
      Delay 1000
   End If
   If KeyDown(29) And KeyDown(50) = 1 Then ;Str M Musikabspielen
   ;Musikspieler
   track = Input$ ("Wähle einen Musiktrack aus von der CD(0 zum abbrechen):")

   chnCD = PlayCDTrack (track,2)
 
   End If
   If KeyDown(60) = 1 Then ;F2 für ProHilfe
      ;Ausgabe ProHilfe und Beedinung
      pw$ = Input$ ("PW:")
     If pw$ = apw$ Then
      stellung = Input$ ("1 für Tastenerklärung, 2 für kurze Hilfe, 3 für faktor:, 4 für geschkeit. :")
      If stellung = 3 Then
        faktor = Input$ ("1 für klein, 2 für mittel, 3 auch mittel(aber größer), 4 groß:")
     End If
      If stellung = 4 Then
        sprunggeschwindigkeit = Input$ ("1 - 5(3 standard):")
        If sprunggeschwindigkeit < 1 Or sprunggeschwindigkeit > 5 Then
        Repeat
       sprunggeschwindigkeit = 3
       sprunggeschwindigkeit = Input$ ("1 - 5(3 standard):")
       Until sprunggeschwindigkeit < 1 Or sprunggeschwindigkeit > 5
       End If
     End If
     End If
   End If
   If KeyDown(59) = 1 Then ;F1 für NormHilfe
      ;Ausgabe NormHilfe und Beedinung
      stellung = Input$ ("1 für Tastenerklärung, 2 für kurze Hilfe, 3 für Credits und Beenden:")
      If stellung = "1" Then
         Print "W:Kamera nach vorne"
         Print "A:Kamera nach links"
         Print "S:Kamera nach hinten"
         Print "D:Kamera nach rechts"
         Print "Cursorrasten:Steuerung der Kugel"
         Print "Str C:Cheats"
         Print "F1:NormHilfe"
         Print "F2:ProHilfe(benötigt Admin PW)"
         Print "Str M:Musik abspielen aus einer CD"
         Print "Drücke eine Taste um weiter zuspielen."
         WaitKey
      End If
   End If
   If KeyDown(57) = 1 Then sprunghoehe = 180 ;Leertaste für Springen
   Collisions 1, 2, 2, 2
   UpdateWorld
   RenderWorld
   ;Über prüfen ob Spielerball auf balla ist
   ;If z# = zballa# Then
   ;   Print "Balla getroffen"
   ;   Delay 10000
   ;End If
   PositionEntity cone, x#, y#+(Sin(sprunghoehe) * faktor ), z# ;cone wird auf die Richtige Posi gesetzt
   Flip
Wend
End

(Das Rote ist da wo mein Fehler ligt.)
Aus irgendein Grund gibt er ein Fehler aus hier mal da wo ich es gespeichert habe.
http://www.bilder-space.de/sho...gaVYSx.JPG
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/

Nicdel

BeitragMi, Apr 22, 2009 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Welcher Fehler?
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

coolerj

BeitragMi, Apr 22, 2009 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hups habe den Fehler vergessen.Der ist:
Texture does not exist.

Ich habe sie aber ganz sicher siehe Bild
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/

kriD

BeitragMi, Apr 22, 2009 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
kann viele gründe für den fehler geben
entweder falscher pfad, oder das bild falsch geschrieben, oder variable mit der richtigen textur nicht verwendet, (oder wieder sting in ner floatvariable gespeichert, und dann als pfad genommen?)

man weißes nicht...

zur info: man muss auch das .bmp dazu angeben....
also "pfad/pyramide.bmp"

irgendwo gabs glaubich auchmal in der onlinehilfe oder ähnlichem eine ansammlung aller fehler und gründe, die zu diesen fehlern führen können.. musst mal suchen

lg kriD
Wenn ich du wäre, wäre ich lieber ich!
 

coolerj

BeitragMi, Apr 22, 2009 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
wie kann man eine bestimmte kollision finden und dann das kollidierte objekt zerstören wenn es zerstörbar ist?
Bitte Helft mir
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/

ozzi789

BeitragMi, Apr 22, 2009 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Collisions du machst einen transparnten Kreis/Würfel um dein Objekt (als Child) und benutzt den mit Collisions.
Die Objekte speicherst du als Type Dim und löscht sie bei bedarf.
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

coolerj

BeitragMi, Apr 22, 2009 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
sry. kappier ich nicht.
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/

ozzi789

BeitragMi, Apr 22, 2009 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Robssite
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

mDave

BeitragMi, Apr 22, 2009 17:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu benutzt du einfach:
Code: [AUSKLAPPEN]

If EntityCollided(Blub,Kollision) And dingistzerstörbar=1 then HideEntity Blub


Dabei sollte dein Blub ein Modell sein welches du in einem Type speicherst.
Und welches du Mit EntityRadius eine Kollisionsmöglichkeit gegeben hast.
So kannst du die dingistzerstörbar variable für jedes Objekt in diesem Type individuell machen.
So brauchst du also nicht tausende Variablen.

Die Kollision ist natürlich die Kollision die du vorher definiert hast.

Ich weiß nicht was du dir unter zerstören vorstellst, deshalb habe ich dorthinten einfach mal HideEntity hingeschrieben.

Ich hoffe ich konnte dir helfen.

Mfg md

EDIT: Mist zu langsam... vier Minuten für einen Beitrag. Menno^^
 

coolerj

BeitragMi, Apr 22, 2009 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit zerstören meinte ich das das Objekt weg ist und nirgendwo find bar ist
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/

Tankbuster

BeitragMi, Apr 22, 2009 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit HideEntity wird es unsichtbar. Wenn du es ganz aus dem Speicher löschen willst, solltest du FreeEntity benutzen. Bei einem Type-Eintrag empfiehlt es sich diesen ebenfalls zu löschen. Wink
Twitter
Download Jewel Snake!
Windows|Android
 

coolerj

BeitragDo, Apr 23, 2009 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
was soll den der Wert kollision sein???
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/
 

mDave

BeitragDo, Apr 23, 2009 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Wert hast du dann vor der Hauptschleife definiert.
Es gibt an mit welcher Kollision das Objekt kollidieren soll.

Die Onlinehilfe wirkt Wunder. Du solltest dir sie noch einmal angucken.


Mfg md
 

coolerj

BeitragDo, Apr 23, 2009 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe das nicht beschrieben aber es geht (die kollision).
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group