QuickNote


momosxp

Member
Joined
Apr 8, 2008
Messages
327
Location
Germany
Hey Leute,
Hab nun schon paar mal kurz was zum notieren gebraucht und den WIZ zwar dabei gehabt... aber damit kann man sowas ja nich machen im mom xD
Deshalb schreib ich mir im mom was "einfaches". Schätze mal sowas kann jeder mal gebrauchen ;)
(Daraus kann man ja auch ein "Paint" machen)
Im moment ist nur was zum rumspielen/antesten. Speichern kann man im mom noch nicht.
Naja, lange rede kurzer sinn: seht selbst

Update
http://rapidshare.com/files/259569889/QuickNote_Lite.app.rar
mit volup+voldown wird geschlossen
 

Attachments

  • Unbenannt.png
    Unbenannt.png
    6 KB · Views: 2,124
hey momo,
ich hab auch schonmal angefangen in GLBasic ein kleines Mal- / Schreib- / Notizprogramm zu proggen. Ich seh auf deinem Screenshot schon, dass die Sprites bzw. die "Farbe" halt sehr verteilt ist, ich schätze mal du machst nur einen Fleck pro Frame.
Kleiner Tipp:
Code:
oldmx=mx ; oldmy=my
mousestate mx,my,mb1,mb2

FOR bla=1 TO anzahl
  tx=oldmx+(mx-oldmx)/anzahl*bla ; ty=oldmy+(my-oldmy)/anzahl*bla
  drawsprite oder drawrect oder was du benutzt....
NEXT

Damit wird jeden Frame eine Linie gezeichnet, statt nur einem einzelnen Fleck. Zur alten Mausposition (oldmx bzw. oldmy) wird der Abstand von der alten zur neuen Position (mx-oldmx) geteilt durch die Anzahl der Sprites pro Frame mal den Schritt im "For To" gerechnet. Also eigentlich ganz einfach, die Anzahl kann man je nach Dicke des virtuellen Stiftes so zwischen 20 und 40 einstellen würd ich sagen. Bekommt der Wiz auch ganz gut hin denk ich.

Ich hoffe der Tipp ist hilfreich für dich. :confused:
 
Wie speicherst du den Bildinhalt bis zum nächsten Frame?

GRABSPRITE? oder über nen virtuellen Screen?
 
Schnatterplatsch said:
Wie speicherst du den Bildinhalt bis zum nächsten Frame?

GRABSPRITE? oder über nen virtuellen Screen?

ich mach das ganze mit drawrect und benutze arrays.

@Nobiag
danke, werd ich mir gleich mal anschauen
 
Hast du mal getestet wie lange der WiZ braucht um den ganzen Bildschirm mit DRAWRECTs zu füllen? ist das dann immer noch 60fps? ansonsten evtl. mal mit CREATESCREEN und USESCREEN probieren. Hab aber im Moment auch keinen Plan obs dann schneller geht(no wiZ available :( )
 
Also in meinem unfertigen Programm nehm ich einfach Sprites, da kann man dann auch noch die Form ändern z.B. einfach ein runder Standard-Pinsel und es läuft auf dem Wiz fullspeed. Achso mit Grabsprite übrigens. Mit nem Screen hab ichs auch mal getestet, aber da hatte ich noch irgendnen anderen Fehler im Code und hab dann auch den Screen rausgenommen obwohl gar nicht daran lag glaub ich... muss ich auch noch mal probieren.

Edit: habs grad nochmal getestet. Mit nem Screen liefs bei mir wesentlich langsamer als mit Grabsprite.



@momo
kann man das Bild auch schon irgendwie zurücksetzen/löschen ohne das Programm neu zu starten?
 
ich glaube ob man sprites oder drawrect verwendet macht kein unterschied.
Die technick wie man sich merkt, wo schon gezeichnet wurde macht die performance wohl aus.
Bei mir ist es mit den arrays im mom ein Problem, dass er diese viel zu schnell erstelt..
Wenn man kurz die maustaste drückt hat man schon ein paar 100 arrays (je nachdem was man für limitfps nimmt, ist der wert zu hoch, geht es zu schnell mit den arrays, nimmt man ein zu kleinen wert, hängt die zeichnung der maus hinterher)

Wie kann ich überprüfen ob es bestimmte koordinaten in einem array schon gibt?

Das löschen/zurücksetzen macht im mom noch probs.. das dauert bei so vielen arrays zu lange, sie alle wieder zu löschen.
 
wie genau machst du das?
Code:
<i>
</i>DIM DrawField[320][240]
WHILE TRUE
MOUSESTATE x,y,a,b
IF a=true 
DrawField[x][y]=RGB(255,0,0)
ENDIF
FOR x=0 to 320-1
FOR y=0 to 240-1
setpixel x,y,DrawField[x][y]
next
next

showscreen
wend

Das wäre natürlich die dööfste methode, da er bei jedem Frame das ganze Feld neu aus dem Array auslesen muss... außerdem ist sie bei Tilegröße 1x1 EXTREM langsam. Genau zeichnen kann man so nicht.

Schau dir mal CREATESCREEN an, der wird nicht bei SHOWSCREEN gelöscht.

Für zurücksetzten würde dann ein DRAWRECT 0,0,320,240,rgb(255,255,255) reichen
 
Ich hab erst gar nicht verstanden wofür du Arrays benutzt... Speicherst du jedes Rechteck / Sprite mit Position in einem Array? oO
Das dürfte natürlich ordentlich Performance ziehen und dann würd ich auch nicht den Tipp aus meinem ersten Post empfehlen.

Kannst ja mal Screen ausprobieren, vielleicht hab ich was falsch gemacht, aber bei mir lief das mit Screen ziemlich lahm und am schnellsten war eigentlich:
Code:
<i>
</i>While 1

 DRAWSPRITE 0,0,0

 drawbrush()

 grabsprite 0,0,320,240

Showscreen
Wend

so ungefähr
 
eigentlich macht CREATESCREEN ja genau das gleiche. Nur dass das, was zuvor gemalt wurde nicht nochmal neu gemalt werden muss. Kann natürlich sein, dass es mit createscreen trotzdem langsamer ist....
 
Hab das ganze jetzt mit createscreen umgeschrieben:

http://rapidshare.com/files/259569889/QuickNote_Lite.app.rar
mit volup+voldown wird geschlossen

Funktioniert auch soweit alles gut. Es lässt sich auch speichern und das Bild wird automatisch wieder geladen!

edit: übrigens die sache mit den arrays zieht nicht sooo sehr an der performance wie man vll erwartet. Nur das löschen der arrays dauert etwas. Beim zeichnen selbst läufts sehr gut.
Hatte es so gemacht, weil es den Vorteil hat, dass man ganz einfach den letzten schritte wieder rückgängig machen kann, statt immer alles löschen zu müssen
 
momosxp said:
Hab das ganze jetzt mit createscreen umgeschrieben:

http://rapidshare.com/files/259569889/QuickNote_Lite.app.rar
mit volup+voldown wird geschlossen

Funktioniert auch soweit alles gut. Es lässt sich auch speichern und das Bild wird automatisch wieder geladen!

edit: übrigens die sache mit den arrays zieht nicht sooo sehr an der performance wie man vll erwartet. Nur das löschen der arrays dauert etwas. Beim zeichnen selbst läufts sehr gut.
Hatte es so gemacht, weil es den Vorteil hat, dass man ganz einfach den letzten schritte wieder rückgängig machen kann, statt immer alles löschen zu müssen

Wenn das mit dem Screen von der Performance her hinhaut, kannst du ja ne Rückgängig Funktion mit nem Zwischen-Screen einbauen oder mit nem kleineren Array was dann immer wieder auf den Screen gespeichert und wieder geleert wird, wenn man die Maus neu aufsetzt.

Edit: Gefällt mir übrigens schon echt gut, ich schätze mal da oben in die Leiste kommen noch verschiedene Farben? Dann brauch ich mein Malprogramm ja gar nicht mehr weiter machen :)
nochmal Edit: Baust du auch noch nen Button ein, dass man diese Linien ausstellen kann?
 
ist schon im Archiv: http://dl.openhandhelds.org/cgi-bin/wiz.cgi?0,0,0,0,1,159

edit: die linien kann man ausstellen, indem man rechts auf linkes klickt
Dein malprogramm kannst du natürlich weitermachen, es kann nie genug software geben :)
 
momosxp said:
ist schon im Archiv: http://dl.openhandhelds.org/cgi-bin/wiz.cgi?0,0,0,0,1,159

edit: die linien kann man ausstellen, indem man rechts auf linkes klickt

Sieht echt super aus, die Buttons oben und so. Wär nur noch schön wenn man ein bisschen Feedback von den Buttons bekommen würde, also besser erkennbar wäre wenn man auf einen Button drückt. Achso und die R+,G+,B+ etc... haben bei mir nicht richtig funktioniert glaub ich, ich hab zumindest keine Änderung bemerkt.
Ansonsten schon echt schön, nur schade dass mit der derzeitigen Firmware der Touchscreen manchmal spinnt.
momosxp said:
Dein malprogramm kannst du natürlich weitermachen, es kann nie genug software geben :)

mach ich sowieso, ehrlich gesagt hab ich sogar eben nochmal ein bisschen dran gemacht ;P
Wird aber ein bisschen anders als dein Programm was die Funktionen bzw. das Menü angeht.

Edit:
matzesu said:
warum denke ich bei QuikNote, eigendlich an Death Note? (manga)

Kein Ahnung warum du da dran denkst... wahrscheinlich wegen dem Wort "Note"?! :huh:
Ist aber ne geile Serie ;)
 
matzesu said:
warum denke ich bei QuikNote, eigendlich an Death Note? (manga)
man, den anime hab ich schon lange auf dem rechner und möchte den schon lange schauen. Schieb das immer vor mir her. Soll ja einer der genialsten Animes überhaupt sein.

Edit: nobiag, die buttons funktionieren schon. Geh einfach auf schwarz.. dann ist ja rgb 0 0 0
und dann kannst auf r+ g+ oder b+ drücken und du siehst wie sich die farbe ändert.
Sie ändert sich in 15er schritten. Aber man muss immer wieder neu klicken. wenn man den stift einfach draufhält passiert nicht mehr.
 
Back
Top