Einige Fragen (hauptsächlich OOP bzw. pointer)

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

Serge

Betreff: Einige Fragen (hauptsächlich OOP bzw. pointer)

BeitragMi, Jan 12, 2005 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
So da ich diesbezüglich in der Modulbeschreibung zumindest keine Hilfe gefunden habe. Habe was OOP angeht nur mal vor einem Jahr etwas Erfahrung gesammelt in C++

1. Ein Type kann nicht die eigenschaften von 2 verschiedenen Klassen verändern oder? Ich habe z. B. zwei Grundtypes, Type A und Type B
Alle anderen sollen entweder die nur die Eigenschaften von Type A, nur die Eigenschaften von Type B oder aber beide eigenschaften vererben.
Das letztere geht nicht oder etwa doch?

2. Konstructur und Destructur in BM.
ist "new" der constructor?
kann man auch folgendes machen:
Type A
besitzt einen Konstructor
Type B verärbt die Eigenschaften von Type A
und überschreibt das "new" von Type A mit einem eigenem "new".
Kann man dann mit Super.new() trotzdem die new funktion von Type A ansprechen?
Was ist der Destruktor? Und wie lösche ich eine essenz eines Types wieder?
(oder geht es nur mit handle freigeben + Flushmem?)

3. Folgendes Beispiel:
B = new blabla
B = new blabla

Somit geht das Handle auf das zuerst erzeugte Element verloren, wird die Essenz mit Flushmem dann aus dem Speicher gelöscht?
Wie siehts mit dem folgendem aus:
B = new blabla
C = B
B = new blabla
?

4. Pointer auf Funktionen.
Wie funktioniert das?
Habe darüber nix gefunden.
Also könnte ich dann den Pointer auf eine Funktion an eine Variable übergeben und über diese Variable die Funktion aufrufen?
z. B.
Function testtest(a,b)

A = pointer auf testtest
A(50,100)
oder wie darf man das verstehen?

5. Folgendes Beispiel:

Type A

Type B extend A

Type C extend B

alle drei besitzen die selbe Funktion "test"
wenn ich jetzt in einer essenz von type C
Super.test
aufrufe, wird dann die "test" - Funktion von Type B aufgerufen oder A?

Für Hilfe bzw. erklärungen danke ich schonmal Smile
Gruß Serge
http://www.dark-matter-soft.de

Jolinah

BeitragDo, Jan 13, 2005 1:32
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Bin ich mir nicht sicher.

2. New ist der Konstruktor, Delete der Destruktor.
Beide sind aber etwa speziell in BMax und können keine Parameter annehmen. Daher empfiehlt es sich eine statische Funktion zu schreiben die eine neue Instanz zurück gibt. Super.New() sollte theoretisch funktionieren, bin ich mir aber auch nicht ganz sicher.

3. Genau, es wird immer gezählt wie viele Handles etc. es noch gibt die auf ein Objekt zeigen. Flushmem löscht dann die Objekte aus dem Speicher die eben keine links mehr haben.

4.
Code: [AUSKLAPPEN]
Local pointerfunc(bla:Byte)

Function myfunc(param1:Byte)
  Print "HALLO WELT"
End Function

pointerfunc = myfunc

pointerfunc(2)


5. Müsste man mal testen Wink
 

Serge

BeitragDo, Jan 13, 2005 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke bis hierher,
hier noch einige Fragen bezüglich BB allgemein:

6. Wie kann ich nur einen Bereich eines Bildes anzeigen?
Drawimagerect() scheinen dazu jetzt ja 2 Parameter zu fehlen, das offsetx bzw. y.
Damit scheint doch eine Funktion zu fehlen um z. B. aus einem Tileset einzelne Tiles anzuzeigen?
Wie kann man sowas lösen, muss man das Bild dazu jetzt in kleine Sprites zerschnipseln?

7. Womit spielt man Hintergrundmusik ab? mit den Soundbefehlen? kann man mit loadsound auch .mp3's laden?

8. Playsound() gibt einen Channel zurück. Wird der Channel wieder freigegeben sobald der Sound zuende gespielt wurde? (falls er nicht repeated wird)

edit: 9. Wie lautet die funktion die die seit dem start abgelaufene Zeit zurückgibt?
http://www.dark-matter-soft.de
 

Serge

BeitragDo, Jan 13, 2005 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoffe mir kann jemand Antworten darauf geben ^^
hab nämlich noch weitere Fragen:

10. Gibt es einen Befehl der mir den aktuellen Grafikspeicher anzeigt? So wie der Befehl für den Arbeitsspeicher.

11. Wenn man das Spiel mit alt+tab minimiert und dann wieder maximiert, müssen die Grafiken neu geladen werden oder kümert sich BM selber darum? bzw. klappt es dann auch auf allen systemen?
http://www.dark-matter-soft.de

bruZard

BeitragDo, Jan 13, 2005 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Serge hat Folgendes geschrieben:
11. Wenn man das Spiel mit alt+tab minimiert und dann wieder maximiert, müssen die Grafiken neu geladen werden oder kümert sich BM selber darum? bzw. klappt es dann auch auf allen systemen?


Diese Frage kann Dir wahrscheinlich nicht mal Mark selbst beantworten ... selbst simple Tastatur Eingaben scheinen nicht auf allen System gleich zu laufen ... die Zweifel an der gross gelobten CrossPlatform werden langsam immer lauter.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

Serge

BeitragDo, Jan 13, 2005 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja mit allen System meine ich in erster linie alle Windows Systeme Smile
Bei PB war es so, dass man sich selbst darum kümmern musste die Grafiken wiederzuladen beim minimieren mit alt+tab und das hat eigentlich wunderbar geklappt.
http://www.dark-matter-soft.de
 

Dreamora

BeitragDo, Jan 13, 2005 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Windowsbeta hat aktuell allgemein Probs mit den Grafiken:


minimieren -> alle quads und text sind weiss

wenn man im programm "graphics" nochma aufruft und die texturen neu lädt, hilft das zb net, es bleibt alles weiss.

Aber dafür ist die Beta ja da, um so probleme zu lösen.


Was die Win Kompatibiltät betrifft: Wir sind langsam an dem Punkt wo man einen NT Kernel voraussetzen darf -> Windows 2000 oder XP. BM ist ja nicht mehr für steinzeitkisten gedacht ( die einzige entschuldigung für ein non-multitask Absturz-OS wie Win98 / ME ), das sieht man schon am OpenGL und Mark's Worklog.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am Do, Jan 13, 2005 22:55, insgesamt einmal bearbeitet
 

D²O

BeitragDo, Jan 13, 2005 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Serge,
das hängt vieleicht auch von der GrafikKarte ab.

Z.B. konnte ich alle Unreal Tournament spiele mit einer Nvidia Karte
mit alt+enter zwischen Fenster und vollbild wechseln,
mit meiner ATi hängt sich das spiel, nachdem ich wieder in den Vollbildmodus will, auf.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group