Wert einer Variablen einer Strucktur im SpriteOutput?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@ghost
FlipBuffers kannst du dir sparen, weil ein sprite keinen backbuffer besitzt wie ein screen.
wenn du sowas machen willst, musst du 2 sprites nehmen, die du selber switchst, also, immer abwechselnd auf eins zeichnen während das andere angezeigt wird.
> und 2. Also ich habe das Sprite mehrmals auf den Bildschirm und anstatt den Punkt nur auf dem betroffenen Sprite zu verschieben macht er dies auf alle Sprits der selben Strucktur.
netürlich, denn deine display befehle sagen ihm nur, wo er das aktuelle sprite hinmalen soll. wenn du das sprite veränderst, wird es über so angezeigt, wie du es verändert hast, wie sollte der rechner denn wissen, wie es vorher aussah.
aber irgendwie komm ich nich so ganz mit, was du eigentlich vorhast...
FlipBuffers kannst du dir sparen, weil ein sprite keinen backbuffer besitzt wie ein screen.
wenn du sowas machen willst, musst du 2 sprites nehmen, die du selber switchst, also, immer abwechselnd auf eins zeichnen während das andere angezeigt wird.
> und 2. Also ich habe das Sprite mehrmals auf den Bildschirm und anstatt den Punkt nur auf dem betroffenen Sprite zu verschieben macht er dies auf alle Sprits der selben Strucktur.
netürlich, denn deine display befehle sagen ihm nur, wo er das aktuelle sprite hinmalen soll. wenn du das sprite veränderst, wird es über so angezeigt, wie du es verändert hast, wie sollte der rechner denn wissen, wie es vorher aussah.
aber irgendwie komm ich nich so ganz mit, was du eigentlich vorhast...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Also muss ich ein neues Sprite nehmen auf dem ich Zeichne und das direckt hinter den Sprite der betroffenen Strucktur sitzt oder?
>netürlich, denn deine display befehle sagen ihm nur, wo er das aktuelle sprite hinmalen soll. wenn du das sprite veränderst, wird es über so angezeigt, wie du es verändert hast, wie sollte der rechner denn wissen, wie es vorher aussah.
Gibt es eine Möglichkeit dies zu verändern?
aber irgendwie komm ich nich so ganz mit, was du eigentlich vorhast...
Ich sitze wieder an meinen kleinen Spaceshooter und wollte den Gegner eine kleine Anzeige verpassen wie viele treffer man noch braucht ehe er zerstört ist (also im Grunde nur ein kleiner balken der seine "Lebenspunkte angibt.Denkt man an ComanderConqer,Dune 2077 oder andere solche Spiele da ist doch immer so eine anzeige (meistens Grün)über die Soldaten und gebäudeund sowas sollte es werden)
>netürlich, denn deine display befehle sagen ihm nur, wo er das aktuelle sprite hinmalen soll. wenn du das sprite veränderst, wird es über so angezeigt, wie du es verändert hast, wie sollte der rechner denn wissen, wie es vorher aussah.
Gibt es eine Möglichkeit dies zu verändern?
aber irgendwie komm ich nich so ganz mit, was du eigentlich vorhast...
Ich sitze wieder an meinen kleinen Spaceshooter und wollte den Gegner eine kleine Anzeige verpassen wie viele treffer man noch braucht ehe er zerstört ist (also im Grunde nur ein kleiner balken der seine "Lebenspunkte angibt.Denkt man an ComanderConqer,Dune 2077 oder andere solche Spiele da ist doch immer so eine anzeige (meistens Grün)über die Soldaten und gebäudeund sowas sollte es werden)
(nutze v. 3.3)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ach SO
ähm.. dann machs besser anders.
- das gegnersprite lass unverändert, damit du auch andere gegner so anzeigen kannst.
das war ja eines deiner probleme.
- die darstellung eines energiebalkens kannst du direkt auf den screen vornehmen.
du stellst also in der nähe der koordinaten des gegner einen balken dar.
je nachdem ob der balken über oder unter dem gegner sein soll,
musst du halt zu deinen x/y-koordinaten aus der struct was abziehen/zuzählen.
a)
das könntest du als sprite machen (zwar nette effekte möglich aber umständlich)
also, ein schickes sprite was der balken sein soll, da kann man dann halt ein muster drauf haben, und den kürzt du vor jeder anzeige mit ClipSprite.
aber da der balken sehr groß sein muss, damit man das muster sehen kann, wär das wohl übertrieben.
b)
du machst das mit DirectDraw (also den Draw-Befehlen von PB)
wenn der balken dicker als 1 pixel sein soll, nimmst du Box(),
wenn ein einzelnel pix dicke genügt, nimm Line()
mach für die balkendarstellung in eine eigene schleife, damit du nur EINMAL Startdrawing() brauchst.
probier mal so:
(die struct-elemente für die koordinaten anpassen, hab einfach mal geraten)
ähm.. dann machs besser anders.
- das gegnersprite lass unverändert, damit du auch andere gegner so anzeigen kannst.
das war ja eines deiner probleme.
- die darstellung eines energiebalkens kannst du direkt auf den screen vornehmen.
du stellst also in der nähe der koordinaten des gegner einen balken dar.
je nachdem ob der balken über oder unter dem gegner sein soll,
musst du halt zu deinen x/y-koordinaten aus der struct was abziehen/zuzählen.
a)
das könntest du als sprite machen (zwar nette effekte möglich aber umständlich)
also, ein schickes sprite was der balken sein soll, da kann man dann halt ein muster drauf haben, und den kürzt du vor jeder anzeige mit ClipSprite.
aber da der balken sehr groß sein muss, damit man das muster sehen kann, wär das wohl übertrieben.
b)
du machst das mit DirectDraw (also den Draw-Befehlen von PB)
wenn der balken dicker als 1 pixel sein soll, nimmst du Box(),
wenn ein einzelnel pix dicke genügt, nimm Line()
mach für die balkendarstellung in eine eigene schleife, damit du nur EINMAL Startdrawing() brauchst.

probier mal so:
(die struct-elemente für die koordinaten anpassen, hab einfach mal geraten)
Code: Alles auswählen
StartDrawing(ScreenOutput())
FrontColor(#Gegner_Balkenfarbe)
ResetList(Jaeger())
While NextElement(Jaeger())
Box(Jaeger()\X,Jaeger()\Y+13,Jaeger()\Armor, 2)
Wend
StopDrawing()
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.