Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 11, 2025 07:25

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: problem mit fireblade partikelengine
BeitragVerfasst: Mo Mär 30, 2009 22:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mär 30, 2009 14:40
Beiträge: 30
hallo,
aus irgendeinem grund funktioniert bei mir das einbinden der fireblade unit nicht.

wenn ich sie in die uses-liste aufnehme und das programm starte (nur ein leeres template ohne weiteren code) dann erhalte ich die meldung "undeclared identifier : AllocMem" in einer der fireblade units. diesen "fehler" (wenn es denn einer ist) kann ich noch beheben, indem ich in dieser unit wiederum die sysutils in die uses-liste schreibe.

nun bekomme ich aber dann neue fehlermeldungen, diesmal in der unit "fireblade": in den zeilen 656-658 bekomme ich insgesamt 5 fehler: drei mal steht dran "record, object or class type required" und zweimal "incompatible types: 'TFB_LinkedList' and 'Cardinal'".


es handelt sich um die version "Release R2 2008.09.06", ich selbst benutze delphi 6 unter windows XP.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 31, 2009 13:34 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Vieleicht liegt es ja am alter, des Codes.
Probiere es mal hier mit. http://sourceforge.net/project/showfiles.php?group_id=174518&package_id=200133&release_id=624530

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 31, 2009 13:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mär 30, 2009 14:40
Beiträge: 30
was genau meinst du jetzt ?
die "FireBlade Revision 2 v.20080906 release" von deinem link benutze ich ja...

also wie gesagt, alles was ich gemacht habe ist:
- ein normales opengl template erstellt
- die fireblade engine runtergeladen
- die units in das lib verzeichnis kopiert
- die unit "fireblade" in die uses liste reinkopiert

das dürfte doch normalerweise keine fehlermeldung geben, wo ich doch noch gar keine fireblade befehle benutzt habe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 04, 2009 13:53 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mär 30, 2009 14:40
Beiträge: 30
hat denn keiner eine idee ? oder hat vielleicht jemand eine gute und leicht zu bedienende alternative zu fireblade ?
ich will nichts besonders aufwändiges damit machen, nur ein paar einfache partikeleffekte...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 10, 2009 20:04 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Welche Delphi Version verwendest du?
Eventuell liegt das Problem nicht am Code sondern an zerstörten Zeilenumbrüchen etc.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Apr 10, 2009 20:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mär 30, 2009 14:40
Beiträge: 30
ich gehe stark davon aus, dass das problem nicht am code direkt liegt (sonst würde die fireblade engine ja bei niemanden kompilieren ^^)

also ich benutze delphi 6 personal edition

hier mal die zeilen die einen fehler verursachen: (weiss nicht ob das was bringt wenn ichs poste)
Code:
  1.     procedure AddParticle(ARef: PSingle); overload;
  2.  
  3.     { Current particle count in the context }
  4.   property ParticleCount: Cardinal read FParticles.FUsedCount;                   << hier wird ein fehler angezeigt
  5.     { The allocation size increment when new memory has to be allocated. }
  6.   property AllocationIncrement: Cardinal read FParticles.FLengthIncrement write FParticles.FLengthIncrement;   << und hier auch
  7.   end;


wenn ich diese zeilen mal probehalber lösche, tauchen danach in anderen units noch andere fehler auf.. ("left side cannot be assigned to etc..")
finde ich sehr seltsam.. ich bin mir sehr sicher dass ich die neueste version von fireblade habe, auch die dglopengl hab ich mir extra noch mal neu geladen.

gibt es denn eine andere partikel-engine, die ich benutzen könnte, oder muss ich mir meine eigene schreiben ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 11, 2009 07:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 31, 2007 18:32
Beiträge: 150
Programmiersprache: Pascal
Ich würd jetzt einfach mal drauf los raten aber ich denke das Problem liegt darin, dass er die Propertys in diesem Stiel FParticles.FUsedCount verwendet was möglicherweise dein Compiler nicht mark von daher würd ich das ganze einfache mal so ändern :
Code:
  1.  
  2. function GetPartikelCount : Cardinal;
  3. function GetAllocationIncrement : Cardinal;
  4. procedure SetAllocationIncrement(AValue  : Cardinal);
  5. .
  6. .
  7. property ParticleCount : Cardinal read GetPartikelCount;
  8. property AllocationIncrement : Cardinal read GetAllocationIncrement  write SetAllocationIncrement;
  9. .
  10. .
  11. implementation
  12.  
  13. function GetPartikelCount : Cardinal;
  14. Begin
  15.   Result := FParticles.FUsedCount;
  16. End;
  17.  
  18. function GetAllocationIncrement : Cardinal;
  19. Begin
  20.   Result := FParticles.FLengthIncrement;
  21. End;
  22.  
  23. procedure SetAllocationIncrement(AValue : Cardinal);
  24. Begin
  25.   FParticles.FLengthIncrement := AValue
  26. End;
  27.  


Dies alles berüht wiegesagt nur auf einer Ver,utung da ich selbst keine Delphi 6 Version habe bzw. hatte
ich hoffe dennoch das das die weiter hilft
mfg FrenK


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 11, 2009 08:02 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 30, 2007 18:35
Beiträge: 331
Das stimmt so. In den Properties kann man das nur machen, wenn FParticles ein Record ist, mit Klassen geht es nicht. Der FPC kompiliert aber beides.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 14, 2009 21:18 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
Hi,

also ums mal vorweg zu nehmen, FireBlade wurde unter FPC entwickelt und ich hatte leider keine Möglichkeit den Code unter Delphi zu testen. Allerdings habe ich dafür bisher auch keinen Grund gesehen, da eigentlich FPC im delphi-mode kompatibel ist (er ist sogar noch empfindlicher). Von daher überraschen mich deine Probleme etwas. Delphi 6 ist nun aber auch schon sehr betagt und vielleicht solltest du ein Upgrade in Betracht ziehen, aber mir ist klar, dass das keine Option sein kann. Ich gehe mal davon aus, dass der Code von FrenK dein Problem löst. Bitte gib mir auch nochmal ein Feedback (am besten PM) was du alles ändern musstest / geändert hast. Wenn du SysUtils nicht einbinden willst/kannst, kannst du an Stelle von AllocMem auch GetMem verwenden.

TAK hatte im Meinungen-Thread seinen X-Dream Code gepostet. Dieser verwendet aber eine Vorgängerversion, die in keiner Weise kompatibel zur jetzigen ist (da rebuilt-from-scratch Version). Für Implementierungsbeispiele kannst du in erster Linie den Democode zu Rate ziehen. Sollte daraus die Funktionsweise nicht ersichtlich werden, kannst du mir auch gerne schreiben, was du machen willst und ich kann dir dann weiterhelfen.

mfg Sebastian

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 15, 2009 16:40 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jul 20, 2006 17:34
Beiträge: 52
Außer an der Stelle gibts noch Mecker in Zeile 215 von der fb_collision:
In Delphi kann man Anscheinend nicht so auf Array-Properties schreiben (warum auch immer).
Entweder muss man dann die Property umbauen zu sowas:
Code:
  1.  property MinDimension[idx:Byte]: Single read GetMinDimension write SetMinDimension;

Was aber wieder Getter und Setter braucht

Oder man machts Quick 'n' Dirty:
Code:
  1.  
  2. procedure TFB_CollisionTree.AddElement(APrimitive: TFB_CollisionPrimitive);
  3. var
  4.   n: Integer;
  5.   minDim,maxDim:TFB_Vectorf3;
  6. begin
  7.   n := Length(FPrimitives);
  8.   SetLength(FPrimitives, n+1);
  9.   FPrimitives[n] := APrimitive;
  10.   APrimitive.Material := FCurrentMaterial;
  11.   for n := 0 to 2 do
  12.   begin
  13.     minDim[n] := APrimitive.MinDimension[n]-FBoundOffset;
  14.     maxDim[n] := APrimitive.MaxDimension[n]+FBoundOffset;
  15.   end;
  16.   APrimitive.MinDimension:=minDim;
  17.   APrimitive.MaxDimension:=maxDim;
  18. end;
  19.  


@FrenK: Ich würde außerdem dem Parameter vom SetAllocationIncrement noch ein const spendieren.

EDIT: Die fbu_effectmanager mag auch nich: Zum einen sind die Zeilenenden kaputt, da kommt zumindest mein Delphi nicht mit zurecht und zum anderen muss in Z. 124 und 128 zuerst overload und dann virtual kommen.

_________________
2+2=5
For extremely large values of two


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]