Ich bin mitten in OpenGL, und möchte mehrere Würfel einfügen. Damit das auch später übersichtlich wird, möchte ich eine Block = class erstellen. Um die Koordinaten eines Würfels zu erhalten, braucht der Shader eine matrix ( T_obj ). Jedes Objekt von TBlock soll eine eigene Matrix speicher können.
Code: Alles auswählen
unit Block;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils,
dglOpenGL,
oglContext, oglShader, oglMatrix,oglVector;
type
TBlock = class
private
FT_obj: TMatrix;
public
property T_obj:TMatrix write FT_Obj;
end;
implementation
end.
Code: Alles auswählen
type
ArrayforBLock = array of TBlock;
var
ListBlock: ArrayforBlock;
Code: Alles auswählen
setlength(ListBlock,2);
Da kommt ein Fehler: sigsegv.
Das heißt ja, dass kein Wert in Obj gespeichert ist. Aber auch wenn ich versuche Obj als einheitsmatrix zu schreiben kommt dieser Fehler. Ich glaube es ist etwas grundlegend Falsch an der Klasse.
Ich hoffe mir kann jemand erklären wie ich die Klasse strukturieren muss und warum. Ich fange gerade an mit Klassen und Objektorientierung. Bitte für dumme erklären ^^