Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.08.2006, 09:49 Titel: Strings an Funktionen und zurück |
|
|
Wie übermittle ich einen String an eine Funktion?
Ich verzweifle hier schon fast... er (der compiler für Windows) ist der Meinung, der Typ stimmt nicht überein... hab die aktuellste Version. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 20.08.2006, 10:52 Titel: |
|
|
Hallo.
Code: | Declare Function RKommtVor (Zeichenkette as String) As Uinteger
PRINT RKommtVor("Lötkolben")
PRINT RKommtVor("Rasenmäher")
SLEEP: END
Function RKommtVor (Zeichenkette as String) As Uinteger
If Instr(UCASE$(Zeichenkette),"R") THEN
RKommtVor=1
Else
RKommtVor=0
End If
End Function |
Zitat: | Ein Computer macht nie Fehler! - nur die Programmierer! |
Btw, auch die machen Fehler: http://de.wikipedia.org/wiki/FDIV-Bug
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Zuletzt bearbeitet von Sebastian am 20.08.2006, 10:54, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 10:54 Titel: |
|
|
Welchen der vielen möglichen Wege hast du denn gewählt?
Wenn der Compiler etwas zu bemängeln hat, wäre ein Stückchen Quellcode nicht schlecht..
(..am Besten der Teil, den der Compiler bemängelt )
..sonst erhältst du mglw. nur Verweise auf die Befehlsreferenz.
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.08.2006, 10:56 Titel: |
|
|
Code: | If Instr(UCASE$(Zeichenkette),"R") THEN
RKommtVor=1
Else
RKommtVor=0
End If |
umstand ftw
Code: | Return Instr(ucase(zeichenkette),"R") <> 0 |
_________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 11:01 Titel: |
|
|
MisterD hat Folgendes geschrieben: | Code: | Return Instr(ucase(zeichenkette),"R") <> 0 |
| Ist aber nicht ganz, was Sebastian wollte: Code: | Return Abs(Instr(ucase(zeichenkette),"R") <> 0) | triffts eher
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.08.2006, 11:16 Titel: |
|
|
So schauts bei mir aus...
soll 'ne 3D-Engine über GL werden, aber irgendwo haperts da noch (hab gestern openGL verstanden!!!! (Lange Zeit gerätselt...)
Aber auch erstmal Danke für die Sources... werd sie mal durchsehen...
Code: | Declare function glLoadVertices$(filename as string) as string
Declare function glLoadMesheses$(filename as string) as string
Declare sub glBuild(mesh as string, vertices as string)
Declare sub render.prepare()
Declare sub render()
function glLoadVertices$(filename as string) as string
'PS: der Code kommt noch...
return "abc"
end function
function glLoadMeshes$(filename as string) as string
return "abc"
end function
sub glBuild(mesh as string, vertices as string)
end sub
... |
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 20.08.2006, 11:29 Titel: |
|
|
Die Dollarzeichen brauchst du nicht, wenn du am Ende "as string" festlegst. Daran hat's gelegen.
Code: | Declare function glLoadVertices(filename as string) as string
Declare function glLoadMesheses(filename as string) as string
Declare sub glBuild(mesh as string, vertices as string)
Declare sub render.prepare()
Declare sub render()
function glLoadVertices(filename as string) as string
'PS: der Code kommt noch...
return "abc"
end function
function glLoadMeshes(filename as string) as string
return "abc"
end function
sub glBuild(mesh as string, vertices as string)
end sub |
_________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 11:30 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Code: | Declare function glLoadVertices$(filename as string) as string.. |
| Die Funktion glLoadVertices$(..) ist durch das '$' am Ende bereits als String deklariert..
'zur Sicherheit' hast du aber noch ein 'As String' drangehängt..
Ich wußte nicht, daß das geht..
..daß das sinnvoll ist..
..daß der Compiler das nicht bemängelt..
..oder ist das einfach nur doppeltgemoppelt und fakehrt?
[Edit]
Schade, Sebastian war schneller..
..Flatrate scheint doch Vorteile zu haben
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 20.08.2006, 11:40, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.08.2006, 11:32 Titel: |
|
|
Also jetzt blick ich gar nichts mehr.
Der Code ist doch identisch...
hier meine Fehlermeldungen:
http://pmediaapps.piranho.com/FBfehla.png (wenn das Bild nicht angezeigt wird)
...
Wer sich wundert:
Das Programm ist modular aufgebaut.
Da ist das Hauptprogram, die ezGL.bi, die mir eigentlich OpenGL erleichtern soll - letztendlich jedoch doch nur aliase irgendwo verwendet, und arwing.mod, auch eine Include, die das Model 'Arwing' handled...
Das Modell soll zunächst in einen String geladen werden, und von da immer wieder neu abgerufen werden...
Soll ein StarFox-Fangame (Weltraumshooter) zum Schluss werden... mal sehn, was draus wird
[edit]
Sorry, hatte erst den Editor geöffnet, sodass ich eure Antworten nicht gesehen hatte. Nein, das $ hatte ich erst nachträglich eingefügt, als "Workaround", 's ging auch vorher net. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 11:36 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Wer sich wundert | ja, ich..
der Link linkt nich
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.08.2006, 11:39 Titel: |
|
|
Dann klickste mal mit rechts auf das Bild (wenns als fehlend markiert wird) und wählst Bild anzeigen...
Hab die Dollarzeichen wieder rausgenommen, jetzt mault er wieder was von "Invalid Datatype"
Ich übermittel Strings, was soll da verkehrt sein? |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.08.2006, 11:48 Titel: |
|
|
Egal, sh... auf die "Geheimhaltung", hier der aktuelle Source:
Hauptprogramm:
http://pmediaapps.piranho.com/starfox.engine.bas
Eigentliche Grafikengine?
http://pmediaapps.piranho.com/ezGL.bi
Arwing-Modell-Definitionen (aber noch kein Modell)
http://pmediaapps.piranho.com/arwing.mod
Die vermaldeite Fehlermeldung
http://pmediaapps.piranho.com/nochnfehla.png
Bin ich blind, oder warum seh ich den Fehler nicht?
[edit] also irgendwas stimmt mit Piranho heute net...
ezGL.inc:
Code: | '$include: 'GL/gl.bi'
'$include: 'GL/glu.bi'
Declare function glLoadVertices(filename as string) as string
Declare function glLoadMesheses(filename as string) as string
Declare sub glBuild(mesh as string, vertices as string)
Declare sub render.prepare()
Declare sub render()
function glLoadVertices(file as string) as string
return "abc"
end function
function glLoadMeshes(file as string) as string
return "abc"
end function
sub glBuild(mesh as string, vertices as string)
end sub
sub glINIT
screen 18, 32, , 2
'Viewport:
glViewport 0, 0, 640, 480
'?
glMatrixMode GL_PROJECTION
'?
glLoadIdentity
'Kamera einstellen
gluPerspective 45.0, 640.0/480.0, 0.1, 100.0
'Kameramodus?
glMatrixMode GL_MODELVIEW
'?
glLoadIdentity
'Shader-Modus
glShadeModel GL_SMOOTH
'Löschen-Farbe
glClearColor 0.0, 0.0, 0.0, 1.0
'Löschen-Dichte (?)
glClearDepth 1.0
'?
glEnable GL_DEPTH_TEST
'?
glDepthFunc GL_LEQUAL
'?
glHint GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST
end sub
sub render.prepare
glClear GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT
end sub
sub render
flip
end sub |
Starfox.engine.bas
Code: | ''
'' STARFOX GAME CORE
'' alias 'engine'
''
option explicit
dim key as string
dim shared detail as integer
dim shared file as string
#include once "ezGL.bi" 'Eazy GL - by me ;-)
#include once "fbgfx.bi" 'for Scan code constants
#include once "arwing.mod" 'ARWING MODEL
arwing.pz = -600
detail = 100
glInit()
WindowTitle "StarFox"
do
render.prepare()
render.arwing()
render()
if MULTIKEY(SC_LEFT) then
arwing.rx -= 1
elseif MULTIKEY(SC_RIGHT) then
arwing.rx += 1
endiF
if MULTIKEY(SC_UP) then
arwing.ry -= 1
elseif MULTIKEY(SC_DOWN) then
arwing.ry += 1
endiF
if multikey(SC_PLUS) then
arwing.sx += 1 / detail
arwing.sy += 1 / detail
arwing.sz += 1 / detail
elseif multikey(SC_MINUS) then
arwing.sx -= 1 / detail
arwing.sy -= 1 / detail
arwing.sz -= 1 / detail
endif
loop until MULTIKEY(SC_ESCAPE)
end |
Arwing.mod:
Code: | 'arwing model
#include once "ezGL.bi" 'Eazy GL - by me ;-)
#include once "fbgfx.bi" 'for Scan code constants
dim shared detail as integer
dim shared file as string
dim shared arwing.px, arwing.py, arwing.pz as single 'Position Bytes
dim shared arwing.rx, arwing.ry, arwing.rz as single 'Rotation Bytes
dim shared arwing.sx, arwing.sy, arwing.sz as single 'Size Bytes
dim shared arwing.vertice,arwing.mesh as string 'Arwing
arwing.sx = 1.00
arwing.sy = 1.00
arwing.sz = 1.00
file = "arwing.vtc"
arwing.vertice = glLoadVertices$("sd")
'arwing.mesh = glLoadMesh("arwing.msh")
sub render.arwing
'? (evtl. neues Mesh erzeugen)
glLoadIdentity
'Position
glTranslatef arwing.px / detail, arwing.py / detail, arwing.pz / detail
'Rotation
glRotatef arwing.rx, 0, 1, 0
glRotatef arwing.ry, 1, 0, 0
glRotatef arwing.rz, 0, 0, 1
'Angaben aus Vorder-Ansicht!
glBegin GL_TRIANGLES
'set up triangles
'glBuild(arwing.vertice,arwing.mesh)
glEnd
glBegin GL_QUADS
'set up quadri's
glEnd
end sub |
Die Fehlermeldung:
arwing.mod(5) : error 4: Duplicated Definiton, Detail
dim shared detail as integer
arwing.mod(21) : Error 26:invalid data types
arwing.vertice = glLoadVertices$("sd") |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 20.08.2006, 12:16 Titel: |
|
|
Hi,
Die Fehlermeldung:
arwing.mod(5) : error 4: Duplicated Definiton, Detail
dim shared detail as integer
(in der Starfox.engine.bas auch definiert, in arwing.mod raus)
arwing.mod(21) : Error 26:invalid data types
arwing.vertice = glLoadVertices$("sd") (weg mit dem $-Zeichen)
Gruss Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Zuletzt bearbeitet von volta am 20.08.2006, 12:21, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.08.2006, 12:20 Titel: |
|
|
Hab's geändert und... jetzt streicht er fast alles als falsch an...
irgendwas stimmt da nich, ich fang am besten noch mal an...
Trotzdem danke für eure Hilfe...
Ich meld mich, wenn's fertig ist - oder wenn's wieder Probleme gibt... |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 12:21 Titel: |
|
|
Mein Vorschlag für Änderungen an Arwing.Mod: Code: | 'dim shared detail as integer
'dim shared file as string
dim shared arwing.vertice as string,arwing.mesh as string 'Arwing
| ..läßt sich auf alle Fälle kompilieren..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 20.08.2006, 12:35 Titel: |
|
|
Ich will ja nicht arwing.mod compilieren, sondern das Hauptprogramm (.bas), und da brauch ich diese Vars....
Ist aber egal, ich fang nochmal komplett von vorn an...
mal sehn, was draus wird  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 21.08.2006, 11:20 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | MisterD hat Folgendes geschrieben: | Code: | Return Instr(ucase(zeichenkette),"R") <> 0 |
| Ist aber nicht ganz, was Sebastian wollte: Code: | Return Abs(Instr(ucase(zeichenkette),"R") <> 0) | triffts eher
Gruß
ytwinky |
mpf deklarier die funktion halt als integer, true = -1 sogesehen, kA wieso sebastian mit uinteger angefangen hat.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 21.08.2006, 18:18 Titel: |
|
|
Hihihi, wenn ich drei Smileys gemacht hätte, wäre deutlich geworden, daß ich
es nicht ganz ernst gemeint hab', aber dann wäre mglw. ein Einwand von
'Übermäßigem Gebrauch von Smileys' gekommen..
Sei's drum, wir habens beide überlebt
nbs
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|