Sprites im ImageGadget?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Sprites im ImageGadget?

Beitrag von Blackskyliner »

Hallo,
ist es möglich Sprites im Image Gadget zu benutzen?
Ich versuche ein Programm zu schreiben, wo ich ein Koordinatensystem habe und einen Punk auf einer Linie entlang bewegen will, und da hab ich mir gedacht, dass es einfacher wäre diesen Punkt als Sprite zu machen, damit nicht immer das ganze Diagramm neu gemalt werden muss... Wenn es "besser" geht als ich es vorhabe, bin ich für jeden Vorschlag offen, hab nämlich keine allzu große Ahnung, wie man sowas realisiert.

Danke.

MFG
Blackskyliner
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> ist es möglich Sprites im Image Gadget zu benutzen?

nein

WindowedScreen benutzen, oder das Diagramm aus unterschiedlichen Teilen aufbauen.


> wo ich ein Koordinatensystem habe und einen Punk auf einer Linie entlang bewegen will

beschreib das mal bitte genauer, damit man sehen kann, was wirklich besser wäre...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Was spricht gegen die Nutzung von Images?

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

Also...
Ich habe mir vorgenommen ein kleines Programm zu Demonstrationszwecken für den Schrägen Wurf zu basteln.

Da soll dann Diagramm ähnlich mit x-y-Diagramm gezeigt werden, wie sich das Objekt nun auf der Bahn bewegen würde.

Ich hatte vor es als Windows-Fenster Anwendung zu schreiben, da nebenbei auch ein Paar werte Angezeigt werden sollen, die so als Neben Produkt herauskommen, wie z.B. Energie, etc. Zudem soll man dann bei dem Diagramm verschiedene Richtungsvektoren ein-/ausschalten können. Also in welche Richtung diese oder jene Kraft grade zeigt und wie groß die in dem Moment ist. Auch Beschleunigung, etc. (auch wenn diese konstant bleibt ;) )

Der Benutzer soll halt auch Werte eingeben können (mindestens 2 oder 3) Worauf hin der dann auch die anderen Werte berechnen würde.

Und da ich mich mit dem 2d Zeichnen noch nicht allzu dolle beschäftigt hatte, von wegen Input von dingen innerhalb eines Openscreens, oder gar UI-Elementen, habe ich mir gedacht es wäre besser das als normale GUI mit einem ImageGadget zu machen.

So nun ratet mir mal wie ich's am besten machen kann =)
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> So nun ratet mir mal wie ich's am besten machen kann

*achselzuck* so wie du am besten klarkommst...

eine möglichkeit wäre zwei fenster, eines mit nem windowedscreen drin und eines für die eingabeelemente,
das wär womöglich die einfachste lösung....

du kannst natürlich auch nen kleinen windowedscreen dahin setzen, wohin du das ImageGadget setzen wolltest.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

Und dann könnte ich das WindowedSceen Fenster via

Code: Alles auswählen

SetParent_(WindowID(1), WindowID(0))
MoveWindow_(WidowID(1), 0, 0, 640, 480, 0)
;Oder so ähnlich, kann mir ja auch das handle beim erstellen abfangen...
tarnen. Keine schlechte Idee =)

Ich denk mal, dass ich es so machen werde.

Danke.
Blackskyliner
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hä?

tarnen?

wozu?

wieso Console?

.....

... Ägypten...?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Naja nen Window ist schon mal keine schlechte Wahl dafür. Die Gadgets
als Eingabemöglichkeit zu nehmen ist sicher die aktuell einfachste
Möglichkeit mit PB.

Da man Images auch recht schnell dem ImageGadget schicken kann ... du
vermutlich viel mit den 2D-Drawing-Befehlen arbeiten wirst und Images
auch auf Images recht zügig gezeichnet werden kann, würde ich das
wählen. So würd das ganze auch auf rechnern laufen, die kein DirectX
oder eine nur ganz veraltete Version haben.

So musst dich auch nicht noch extra mit den Sprite-Befehlen rumschlagen
um ein WindowedScreen aktuell zu halten. Wenn die Animation des Wurfs
beendet ist brauchst du eigentlich nix weiter machen bei einem
ImageGadget, da Windows die Anzeige komplet selber verwaltet. Wenn es
nen WindowedScreen wäre müssteste immer noch weiter FlipBuffers()
aufrufen.

Letzten Endes ist die Ausgabe aber mit WindowedScreen() wie mit einem
ImageGadget() ziemlich ähnlich lösbar und somit unterscheidet sich das
ganze nur in den Anforderungen, die das Zielsystem hat auf dem dein
Programm laufen soll. DirectX7 (oder 9) ja/ nein? Wenn die Animation
etwas komplexer ist stellt sich vielleicht am ende noch die Frage, ob hohe
FPS gewünscht sind bei schwachem Prozessor aber DX7 fähiger
Grafikkarte? In dem Fall wären Sprites wohl wieder besser. Vermute aber
mal nicht, dass du ein Grafikfeuerwerk zaubern willst, sondern einfach nur
ne zweckmäßige Animation ... also Images.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

Hat eigentlich mal jemand ein ImageMerge() oder so programmiert, mit dem man von PB erstellte Images zu einem zusammenfassen könnte? <)

Weil meine nächste Idee jetzt grad so beim rumtesten war es einfach das koordinatensystem zu malen und dieses dann als erste virtuelle Ebene anzeigen zu lassen. Danach als dann die Kurve als extra Ebene und dann das Objekt als extra Ebene (müsste dann ja auch mit Transparenz klarkommen).... Zu umständlich ja/nein?(ich denke ja...) :oops:


Dann nochmal zu der normalen Verwendung von Image, da ich mal denkde das das vonmir gepostete zu komplex werden würde für ein solch kleines Projekt...

Könnte mir einer ein kleines Script geben,wo eine Senkrechte, oder was ähnliches, drauf ist und sich ein Kreis dann über die Linie "hinwegbewegt", als keine Lernhilfe geben? Wäre echt sehr hilfrech :oops: :oops:

Danke.
Blackskyliner
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, mit image würde ich das in mehreren lagen machen:

ein allgemeines Raster auf Image A drawen.

wenn eine neue Kurve erstellt wird, die Kurve berechnen und in einem Array speichern,
Image A (mit Raster) auf Image B drawen, dann die Kurve drüber.

zur Anzeige, für jeden Schritt Image B (mit Raster und Kurve) auf Image C Drawen,
einen Circle an die Stelle des aktuellen wertes (aus dem Array) drawen,
das ImageC auf dem Imagegadget darstellen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten