| |
|
|
| Hi da bin ich wieder. 2 Fragen hab ich mitgebracht 1.) In meinem Programm habe ich folgende Zeilen: (Normales Windowsfenster) KompilierenMarkierenSeparierenf1&=CreateExtBmp(%HDC,%maxx,%maxy)
f2&=CreateExtBmp(%HDC,%maxx,%maxy)
string bereich#,0="SPRITE.BMP"
spriteplan&=LoadExtImage(bereich#)
sprites&=InitSprite(spriteplan&,%HDC,f1&,f2&,0,0,40,40,spriteindex%,1,10,40,40,1,1)
bei InitSprite verabschiedet sich das Programm ohne Worte. Warum? Was ist nun los? 2.) Was sind das für Effekte (Sprite wird doppelt und schwarz angezeigt, obwohl Transparenz weis) KompilierenMarkierenSeparierendeclare prospeed&,f1&,f2&,bereich#,spriteplan&,sprites&
dim bereich#,100000
$I C:PROFANAKTUELLE PROJEKTELOSINCProspeed_Funktionen.inc
prospeed&=usedll("C:PROFANAKTUELLE PROJEKTELOSProspeed.dll")
window 10,10- 300,300
windowtitle "Test"
f1&=CreateExtBmp(%HDC,300,300)
f2&=CreateExtBmp(%HDC,300,300)
string bereich#,0="C:SPRITE.BMP"
spriteplan&=LoadExtImage(bereich#)
sprites&=InitSprite(spriteplan&,%HDC,f1&,f2&,0,0,40,40,4,1,10,10,10,1,1)
while 1
waitinput
wend
dispose bereich#
freedll prospeed&
FreeExtBmp(f1&)
FreeExtBmp(f2&)
FreeExtBmp(spriteplan&)
FreeExtBmp(sprites&)
Danke im Vorraus Rolf |
|
|
| |
|
|
|
| Ohh naja zur Frage 2 habe ich die Lösung, habe das CopyExtBmp(f1&,0,0,%maxx,%maxy,%HDC,0,0,0) CopyExtBmp(f2&,0,0,%maxx,%maxy,%HDC,0,0,0) vergessen. Jedoch Frage 1? Initsprite lässt das Programm aussteigen. Also nicht das hier gepostete Testprogramm. hmm? Rolf |
|
|
| |
|
|
|
| Hier mal ein Beispiel zum Testen: KompilierenMarkierenSeparieren $P+
SetErrorLevel 0
Declare bereich#
Declare sprites&
Declare f1&,f2&,pfad$
Declare prospeed&,prospeed$,spriteplan&
DIM bereich#,10000
PFADROUTINEN *******************************
pfad$=getdir$("@")
chdir pfad$
Prospeed$=pfad$;"Prospeed.dll"
$I C:PROFANAKTUELLE PROJEKTESpeedanimProspeed_Funktionen.inc
*M Init- und Exit-Prozeduren:
SetTrueColor 1
WindowStyle $003F
WindowTitle "Test"
Window 147,40 - 450,479
f1&=CreateExtBmp(%HDC,300,40)
f2&=CreateExtBmp(%HDC,300,40)
string bereich#,0="C:SPRITE.BMP"
spriteplan&=LoadExtImage(bereich#)
sprites&=InitSprite(spriteplan&,%HDC,f1&,f2&,0,0,40,40,4,1,15,100,10,1,1)
CopyExtBmp(f1&,0,0,%maxx,%maxy,%HDC,0,0,0)
CopyExtBmp(f2&,0,0,%maxx,%maxy,%HDC,0,0,0)
WhileNot appexit%
WaitInput
Wend
freedll prospeed&
freedll hdll%
Dispose Bereich#
Wenn man Initsprite auskommentiert klappt es - sonst Programmende ???? WARUM ??? Rolf |
|
|
| |
|
|
|
| Nagut dann antworte ich mir mal selbst: Mensch bin ich blöd ! Hab das allerwichtigste verschluckt: Usedll Sorry das tut ja schon weh Bis dann Rolf |
|
|
| |
|
|
|
| Hallo Rolf,
Falls du dich wunderst das Frank nicht antwortet, er ist dieses Wochenende nicht zuhause (Campen bei dem Wetter ).
Das Wunder mit dem vergessenen @usedll... hatte ich auch schonmal, sehr lustig das die meisten Befehle funktionieren (zwar langsam) obwohl die Dll noch nicht mal im Speicher ist !
Noch ein kleiner Tip falls du Profan 7 und aufwärts hast...
string bereich#,0=SPRITE.BMP spriteplan&=LoadExtImage(bereich#)
...kannst du durch...
bild$=SPRITE.BMP spriteplan&=LoadExtImage(@addr(bild$))
...ersetzen, hat den Vorteil das du keinen Bereich dimensionieren musst.
Moritz |
|
|
| |
|
|
|
| Ahh Danke Moritz Naja hat Frank auchmal verdient - obwohl hier in Koblenz das Wetter mehr schlecht ist. Ja, das mit > 7.0 ist mir bekannt, aber solche Sachen mach ich am Schluss. Frank ist bekannt, das ich ein Tool schreibe für die Pspeed - und zwar den Speedanimator. Läuft soweit ganz gut. Schönes Restwochenende noch Rolf |
|
|
| |
|
|
|
| Hört sich sehr interessant an Rolf ! Was macht der Speedanimator den genau, oder wird das noch nicht verraten ?
Wo wir schonmal beim Thema sind, Pathfinder 1.5 ist auch so gut wie fertig, nachdem ich mich fast 2 Wochen hab in den Wahnsinn treiben lassen wegen einem extrem schwierigen Fehler !
Hier mal ne kleine Übersicht der neuen Features:
-Höhere Geschwindigkeit und div. Fehler behoben -Neues Bildersystem zum nachträglichen Ändern der Ebene und Position der Bilder -Bilderpfade werden im Projekt mitspeichert -Pfad Punkte können umbenannt werden (wird auch mitgespeichert) -RGB-Verknüpfungssystem -riesiges Optionsmenü -Pfad-Arranger (mehrere Pfade in einer Datei zusammenfügen) -unendliche Undo/Redo Funktion -Icon-Leiste -Breseham und Bitmap Export -Laden von Jpg,Gif und Wmf (Dank Frank) -Erstellen von Null-Projekten (erstellen von Positionsunabhängigen Pfaden) -div. andere kleine Änderungen und Neuerungen...
Kommt bald, schätze 1-2 Wochen noch
Moritz |
|
|
| |
|
|
|
| Tja Moritz, der Speedanimator ist einfach ein Programm, indem man: - Einzelne Frames malen kann - diese in ein Sprite hinzufügen kann - dazu eine Vorschau abspielen kann - bearbeiten der einzelnen Frames u.s.w ...... Im Moment bin ich am verzweifeln, da ich das erstellen auf Setpixelebene mache und alles was auf dem großen Malbild erstellt wird in Pixel in das 40x40 Format per Setpixel kopiert wird. Soweit sogut. Laden kann ich aber leider auf diese Art nicht, da ich das mit dem Setpixel aufgrund der Fehlerhaften Sizedfunktion gemacht habe. Copysized verzehrt das Bild leider. Frank hatte mal was von einer anderen Funktion in der Win32 erzählt, finde diese aber leider nicht. - Achso, bin auf Deine neue Version höchst gespannt !!! Vielleicht wäre auch ein Scrollbereich des geladenen Bildes in Deinem Programm drin, da ich mal ein Bild größer als das Arbeitsfeld hatte und nicht alle Pfade unterbekommen habe Nur als Vorschlag. Rolf |
|
|
| |
|
|
|
| Wird wohl sehr praktisch werden dein Programm !
Hab auch schon paar. ähnliche Programme um Animated-Icons zu entwickeln, wird dein Tool so ähnlich oder noch ein paar spezielle Funktionen bieten ? (bestimmt )
Zu dein Problem fällt mir auch nur StretchBlt() ein, aber das macht ja schon CopySizedBmp.
So ganz hab ich das auch nicht verstanden, du setzt in einer Speicherbitmap die 40x40 Pixel und kopierst sie dann per MCopySizedBmp (oder CopySizedBmp()) in dein Arbeitsfenster auf %hdc in der entsprechenden Größe, oder ?
Ist die Größe des zu entwerfenden Sprites auf 40x40 Pixel festgesetzt ?
Vielleicht wäre auch ein Scrollbereich des geladenen Bildes in Deinem Programm drin, da ich mal ein Bild größer als das Arbeitsfeld hatte und nicht alle Pfade unterbekommen habe.
War das Bild größer als 2000x2000 Pixel ? Ansonsten kann man jetzt mit dem neuen Bild System die Bilder komplett verwalten:
-Hinzufügen, entfernen... -Ändern der Position -Ändern der Ebene
Und das natürlich so oft und wann man will auch nachdem speichern und wieder öffnen, vielleicht nicht ganz so praktisch wie eine Scrollfunktion aber im Endeffekt das gleiche
Moritz |
|
|
| |
|
|
|
| Ja richtig: Das große Arbeitsfenster wird wärend des Zeichnens auf 40x40 verkleinert. Aber bei mir nehme ich bewusst: Setpixel Hab vorher Copysizedbmp oder die Funktion von Frank (ist ja eigentlich ident.) genutzt. Dort ist das Problem: Im großen Arbeitsfenster ist jeder Bildpunkt gleich. Das im kleinen (ist bei mir OnTheFly) wird wenn ich Copysized nehme verzerrt. Aber irgendwie will ich bald Datei laden und muss dann aus dem kleinen Bild eine Kopie auf das große Arbeitsfenster bringen - und das wird auch verzerrt - kennste bestimmt. Naja - mal schauen. RocknRolf |
|
|
| |
|
|
|
| Ja richtig: Das große Arbeitsfenster wird wärend des Zeichnens auf 40x40 verkleinert. Aber bei mir nehme ich bewusst: Setpixel Hab vorher Copysizedbmp oder die Funktion von Frank (ist ja eigentlich ident.) genutzt. Dort ist das Problem: Im großen Arbeitsfenster ist jeder Bildpunkt gleich. Das im kleinen (ist bei mir OnTheFly) wird wenn ich Copysized nehme verzerrt. Aber irgendwie will ich bald Datei laden und muss dann aus dem kleinen Bild eine Kopie auf das große Arbeitsfenster bringen - und das wird auch verzerrt - kennste bestimmt. Naja - mal schauen. RocknRolf |
|
|
| |
|
|
|
| Hallo zurück !!!
Das Wetter war gar nicht so übel, bis auf 2 kleine Regenschauer. Sind fast die ganze Zeit Motorboot gefahren )
Dein Problem hat sich ja erledigt, Rolf, Gott sei Dank...
Gruß, ein müder Frank. |
|
|
| |
|
|