Variable must be a type?
Übersicht

![]() |
M0rgensternBetreff: Variable must be a type? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo an alle...
Ich hab im Forum zwar schon Fragen zu dem Fehler gefunden, aber bei mir scheints was ganz anderes zu sein. Also, weil mich jemand um Hilfe gefragt hat weil er bei seinem SnakeKlon nicht weiter kam, habe ich jetzt Lust gehabt selbst einen zu programmieren. Ich arbeite mit types und bekomme jetzt den Fehler der in der Überschrift steht. Der Type sieht so aus: Code: [AUSKLAPPEN] Type TKopf
Field Kx# Field Ky# Field Geschwindigkeit# End Type Der Kopf wird hier initialisiert: Code: [AUSKLAPPEN] Kopf.TKopf = New TKopf
Kopf\Kx# = GraphicsWidth()/2 Kopf\Ky# = GraphicsHeight()/2 Kopf\Geschwindigkeit# = 2 Und hier tritt der Fehler auf: Code: [AUSKLAPPEN] If KeyHit(200) And Richtung <> Runter Then Richtung = Hoch ;Hoch Steuern
If KeyHit(208) And Richtung <> Hoch Then Richtung = Runter ;Runter Steuern If KeyHit(203) And Richtung <> Rechts Then Richtung = Links ;Links Steuern If KeyHit(205) And Richtung <> Links Then Richtung = Rechts ;Rechts Steuern Select Richtung Case Hoch Kopf\Ky# = Kopf\Ky# - Kopf\Geschwindigkeit# Case Runter Kopf\Ky# = Kopf\Ky# + Kopf\Geschwindigkeit# Case Rechts Kopf\Kx# = Kopf\Kx# + Kopf\Geschwindigkeit# Case Links Kopf\Kx# = Kopf\Kx# - Kopf\Geschwdindigkeit# End Select Um genau zu sein setzt er den Cursor (nur den Cursor, markiert wird nichts) in diese Reihe: Code: [AUSKLAPPEN] Kopf\Ky# = Kopf\Ky# - Kopf\Geschwindigkeit#
Ich hab schon gesucht ohne Ende in dem Code, aber ich finde den Fehler beim besten Willen nicht. Wäre echt toll wenn jemand was finden würde, Danke schonmal im Voraus... Lg, M0rgenstern |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
schau mal hier, da ist ein Schreibfehler, kann ja mal passieren, deshalb würde ich zu kürzeren aber trotzdem Aussagekräftigen variablen raten zB Kopf/speed#, dann sieht man es meistens schneller
Zitat: Case Links
Kopf\Kx# = Kopf\Kx# - Kopf\Geschwdindigkeit# Moment, sehe gerade dass der Fehler schon vorher angezeigt wird. gehst du alle Instanzen mit For...Each durch? |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum denn? Ich habe nur EINEN Kopf... Muss ich dann trotzdem For... Each schreiben?
Lg, M0rgenstern |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei einem noch nicht bei mehreren schon. Was skey-z grade schrieb wollte ich auch schreiben. Mehr Fehler sind nicht drin. | ||
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 |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm... Aber warum zeigt er mir das dann an?
Das macht ja nichts wenn das in ner Funktion steckt normalerweise... Ich hab jeztt noch das in ner anderen Funktion hinzugefügt (die liegt über der Steuerung) da wirds jetzt auch angezeigt: Code: [AUSKLAPPEN] Oval Kopf\Kx#, Kopf\Ky#,12,10,1
Ich habe für diesen Type nur einen Kopf erstellt. Ansonsten hab ich noch einen anderen Typ für den Schwanz, davon lasse ich 5 erstellen. Lg, M0rgenstern... |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für eine Funktion muss Kopf.TKopf natürlich global sein... | ||
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 |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
baahh... Ja, danke... Oh man, das is peinlich....
Aber ich hab mal ne Frage, warum ist bb eigentlich so dumm: Code: [AUSKLAPPEN] For i=0 To 4 ;Vier Körperteile zu beginn
Global Teil.TSchwanz = New TSchwanz Teil\Sx# = Kopf\Kx# - i;Damit die Schlange nach Westen gerichtet ist Teil\Sy# = Kopf\Ky# Next wenn ich den Schwanz auch als global deklariere dann sagt er mir global darf nur im Hauptprogramm auftreten... (ich verstehe schon, dass er die Schleife nicht als Hauptprogramm anerkennt) Aber wo wäre das Problem wenn man das als global deklarieren würde? Interessiert mich grade mal. lg, M0rgenstern |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil Variablen die in einer Schleife erstellt werden am Ende der Schleife wieder entfernt werden, die sind immer Local.
Hat auch nichts damit zu tun dass BB dumm ist oder so, dass ist bei so ziemlich jeder Hochsprache der Fall. MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
???
Wäre mir ehrlich gesagt neu, dass die Variablen nach der Schleife wieder entfernt werden... Ich benutz die doch danach noch, oder wie genau meinst du das? Lg, m0rgenstern |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Variablen die einer Schleife erstellt wurden(was du ja getan hast), werden beim Verlassen der Schleife wieder gelöscht, daher kein Global.
Probiers aus, schreib statt Global mal Local und du wirst die Variable nach der Schleife nicht mehr benutzen können. MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaube er meinte Functionen
schleifen stimmt nicht Code: [AUSKLAPPEN] for i=0 to 1
x=2 next print x |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm...
Und warum zeigt er den Fehler dann in ner Schleife an? In Funktionen wäre es mir nämlich klar. Lg, M0rgenstern |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
...weil DaysShadow prinzipiell recht hat, BlitzBasic sich aber nicht nach diesem Standard richtet. Local benutzen oder Global vor der Schleife verwenden. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso, okay... Danke...
Lg, M0rgenstern |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Type mutter
bei mehreren types muss das so aussehen
Field var End Type neuemutter() m.mutter=First mutter Print m\var WaitKey() Function neuemutter() m.mutter=New mutter m\var=Rand(0,10) End Function Code: [AUSKLAPPEN] Type mutter
Field var End Type For i=0 To 10 neuemutter() Next For m.mutter=Each mutter Print m\var Next WaitKey() Function neuemutter() m.mutter=New mutter m\var=Rand(0,10) End Function ohne auch nur eine globale ? Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Xeres: Ja, musste ich leider auch grad feststellen
Tut mir Leid dass ich hier für Verwirrung gesorgt habe...in Bmax ist es jedenfalls so ![]() MfG DaysShadow |
||
Blessed is the mind too small for doubt |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group