Seite 2 von 3
Verfasst: 08.07.2006 20:03
von Alves
Nein?
Verfasst: 08.07.2006 20:19
von Kaeru Gaman
wie sollte es das können?
ein 32bit - system kann maximal 4GB speicher verwalten (2^32byte = 4GB) also 4096MB
davon wird beim PC das untere MB für systemkram benötigt, dann hast du noch 4095MB, und das betriebssystem selber muss auch noch wo hin oder nicht?
das ist eine frage der zwingenden logik!
Verfasst: 08.07.2006 21:11
von AndyX
Interessant...
aber warum funktionieren dann Festplatten mit bis zu 300GB Speicher?
Verfasst: 08.07.2006 21:11
von Alves
Weil nicht alles gleichzeitig verarbeitet wird.
Verfasst: 08.07.2006 21:16
von Kaeru Gaman
> ein 32bit - system kann maximal 4GB speicher verwalten
damit meinte ich systemspeicher.
auf ner festplatte ist das was ganz anderes. man kann auch dateien mit über 4GB erzeugen, wenn das File-system dafür ausgelegt ist, man kann sie nur nicht komplett in den speicher laden.
Verfasst: 10.07.2006 14:56
von Ghost
ähm ich hab mal 2 Fragen zu den Beispiel code.
1. Wieso muss hier die colliesionsabfrage eigentlich in eine Prozedure ? hatt das was mit den Koordinaten zu tun weil diese ja nicht in Variablen fesstgehalten werden
2.
wieso steht den da a.b bezw. was bedeutet das? is das spalten bezw. Zeilen einteilung oder bedeutet dass was anderes
a = Spalte
b = Zeile ?
Verfasst: 10.07.2006 15:19
von Zaphod
Die Kollsion ist in einer eigenen Prozedur, weil das guter Programmierstil ist. Glaube mir, wenn du erst einmal längere Programme schreibst wirst du feststellen, dass die unheilich schwer zu lesen sind, wenn du einfach alles in eine Hauptschleife gerotzt hast.
Es gibt ein paar Strukturregeln, die man einhalten sollte für saubere, lesbare und damit wartbare Programme:
- So wenig globale Variablen wie möglich. Achtung: ein paar sind einfach notwendig.
- logisch unterteilt in Funktionen (dinge wie eingabe, kollision, gegnerverhalten, datei ein/ausgabe sollte man unbedingt von einander trennen)
- Finger Weg von Goto. Es mag manchmal sinnvoll sein Goto zu verwenden, aber *NIEMALS* zur Programmablaufsteuerung, höchstens mal um aus eine schleife zu springen, wenn man direkt unter die schleife springt
- ein variablename, funktionsname etc sollte einen hinweis darauf geben was sie enthält bzw macht.
<variablenname>.b bedeutet, dass du den Bytewert der Variablen haben willst. Das hat DD deswegen gemacht, weil er sein Kartenformat mit Bytes aufgebaut hat. Read ist dazu da um aus der Datasection zu lesen (keine Bange, das ist eigentlich nicht kompliziert, schau dir dazu mal die Hilfe an).
Verfasst: 10.07.2006 15:40
von Ghost
ok Danke

Verfasst: 10.07.2006 18:15
von Kaeru Gaman
zaphod hat das meiste schon gesagt, besonders punkto prozedural und globale variablen, ich denke es ist klar geworden, dass man eigenes unterscheidungvermögen walten lassen muss.
- spalte/zeile
das hat DD mit mx/my da drin
> collisionsabfrage
mal generell, denk über rein koordinatenbezogene alternativen nach.
http://www.purebasic.fr/german/viewtopic.php?t=9093
(mal werbung in eigener sache)

Verfasst: 11.07.2006 18:59
von Ghost
>mal generell, denk über rein koordinatenbezogene alternativen nach. <
ähm wie meinst du das im array oder allg. (also auf den Screen)
gibt es net nur die eine Möglichkeit (if spritecollison(id,x,y,id2,x2,y2) oder wie meinst du das.
ähm ich hab mal noch eine Frag kann man mehrere Arrays übereinandermachen also beim gestallten einer map erst den untergrund (ob Gras,erde,Metall ect.) und dann eins darüber für Texturen(Grashalme,Sträucher,) oder muss man für jeden möglichen Falle ein einzellnes Sprite zeichnen? (also graß mit grashalm , erde mit Grashalm,...)?
und wie kann man eigentlich animationen auf Arrays Darstellen?