[Monkey] utils

Übersicht Andere Programmiersprachen Codearchiv & Module

Neue Antwort erstellen

Farbfinsternis

Betreff: utils

BeitragDo, Nov 24, 2011 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jNet und jsHelper mit ein paar anderen neuen Sachen in das Modul "utils" zusammen getan. Derzeit gibt es die Targets "html5", "flash" und "android".

Das Interface wurde aufgeräumt und vereinheitlicht. Wer "utils" importiert hat danach folgende globalen Objekte zur Verfügung:

  • navigator : stellt Methoden bereit um auf die Eigenschaften des Browsers zuzugreifen wenn das Target "html5" ist, aber auch Methoden für Android. So liegen die Methoden touch() und accelerator() in "navigator". Diese Methoden geben true zurück wenn der Client ein Touch-Display oder einen Bewegungssensor hat.
  • window : Stellt Methoden bereit um die Größe des Browsers in Erfahrung zu bringen wenn das Target "html5" ist. Android gibt die Größe des Displays zurück, Flash derzeit noch 0. Die Methoden heissen "innerWidth()" und "innerHeight()".
  • canvas : Ist für alle unterstützten Targets implementiert, ergibt aber nur bei HTML5 einen Sinn, außer der Methode "getRotation": Unter Android gibt diese Methode die aktuelle Rotation des Clients zurück. Dies kann 0, 90, 180 oder 270 sein.


Neben diesen globalen Objekten kann man auch noch eine Instanz der Klasse "XMLHttpRequest" erzeugen um bspw. eine Score abzurufen oder zur Laufzeit Daten nachzuladen.


Download utils
Farbfinsternis.tv

Farbfinsternis

BeitragFr, Nov 25, 2011 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe zwei neue Objekte hinzugefügt.

1. vibrator
Dieses Objekt stellt die Methoden "startVibrate(milliSecs:Int)" und "stopVibrate()" zur Verfügung.

startVibrate(millSecs:Int) lässt ein Android Phone/Pad für die Anzahl der übergebenen Millisekunden vibrieren.
StopVibrate() beendet die Vibration. Diese Methode sollte aufgerufen werden wenn während der Vibration ein anderer State der App aufgerufen wird und wenn man ein neues startVibrate() aufruft während ein altes noch aktiv ist.

2. message
Dieses neue globale Objekt beinhaltet derzeit nur eine Methode namens "message()". Auch dieses Objekt ist derzeit nur für Android verfügbar.
message() erzeugt ein sogenanntes "Toast" auf Android Geräten. Eine Textmeldung die für kurze Zeit eingeblendet wird.

Downloadlink im ersten Post
Farbfinsternis.tv

Thorsten

BeitragDo, Jan 12, 2012 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr nützliche Sachen, dankeschön!
 

BBPro2

BeitragDi, Aug 21, 2012 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
hm ich verstehe nicht ganz wo der unterschied zwischen dem vorimplementierten

DeviceWidth () / DeviceHeight ()

und deinem

innerWidth () und innerHeight ()

liegt ?

oder gibst du tatsächlich die Größe des BROWSERS zurück ?

Wenn ja: Hast du irgendein Beispiel wozu das gut sein könnte ?
Mir fällt grad nichts ein irgendwie Sad
Und wo wäre der Unterschied unter Android ? Da müsste es ja eigentlich
immer den gleichen Wert ausgeben oder ?

Midimaster

BeitragDi, Aug 21, 2012 11:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist das XMLHttpRequest auf für Zugriff ins Internet geeignet? Also Adressen a la "http:\\www.midimaster.de"?

Hast Du dafür Code-Beispiele?
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Farbfinsternis

BeitragDi, Aug 21, 2012 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Es funktioniert nur innerhalb einer Domain.
Farbfinsternis.tv
 

BBPro2

BeitragDi, Aug 21, 2012 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
ich krieg aber keine antwort? Smile

Farbfinsternis

BeitragDi, Aug 21, 2012 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
BBPro2 hat Folgendes geschrieben:
ich krieg aber keine antwort? Smile

Oh, sorry! Dich habe ich tatsächlich übersehen.

innerWidth() und innerHeight() geben Dir die innere Größe des Browsers zurück. Dies ist nützlich wenn Du Dein Canvas mit UtilsCanvas.resize() an diese Größe anpassen willst. Du kannst aber auch autoResize() verwenden, dann ist das Canvas immer so groß wie der Browser (auch wenn die Größe vom User verändert wird).


Ich habe dieses Modul schon ewig nicht mehr angefasst, es kann sein dass das eine oder andere mit der aktuellen Monkey-Version nicht mehr funktioniert.
Farbfinsternis.tv

Farbfinsternis

BeitragSa, Dez 29, 2012 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schreibe gerade das "sedm.utils" Modul neu da weite Teile mit der aktuellen Monkey-Version nicht mehr funktionieren.

Anstelle gehabter Funktionalitäten habe ich zuerst eine neue eingebaut: Google Webfonts für Eure Games.

HTML5.utils

Dieses Modul bietet die Möglichkeit Google Webfonts zu laden und zu verwenden. Nebenbei ermöglicht es für jegliches Element im Canvas einen Schatten zu definieren. Beispiel:

Text mit Schatten Example

Source zu diesem Beispiel:
Code: [AUSKLAPPEN]

Strict

Import mojo
Import sedm.utils

Class Test Extends App
   Field fnt:webFont
   Field mx:Int, my:Int
   
   Method OnCreate:Int()
      Self.fnt = LoadWebFont("Grand Hotel")
      FontSize(Self.fnt, 32)
      
      SetUpdateRate(30)
      
      Return 0
   End
   
   Method OnUpdate:Int()
      Self.mx = MouseX()
      Self.my = MouseY()
      
      Return 0
   End
   
   Method OnRender:Int()
      Cls(60, 90, 120)
      
      Text(Self.fnt, "Hallo Welt", 100, 150)
      
      Shadow(5, 5, 5, 0, 0, 0, 1.0)
      Text(Self.fnt, "Hallo Welt", Self.mx, Self.my)
      Shadow() ' reset shadow
      
      Return 0
   End
End

Function Main:Int()
   New Test()
   Return 0
End
Farbfinsternis.tv

tft

BeitragSa, Dez 29, 2012 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

jaaaa sehr schick.

Gruss TFT
TFT
http://www.optima-code.ch
Monkey,HTML5,CSS3,W 7 64 Bit, 8 GB Ram, GT470, W8 ist Müll !!!!!!

Farbfinsternis

BeitragSo, Dez 30, 2012 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe experimentell den Zugriff auf die HTML5 Fullscreen API eingebaut (derzeit nur Webkit). Prinzipiell ist das eine sehr einfache Sache, kompliziert macht es die Tatsache dass .requestFullScreen() aus der API nur durch ein Event ausgelöst werden darf. Das heißt dass ich es nicht einfach per Mausklick, der von Monkey aus abgefangen wird, auslösen darf. Ich muss also eine Möglichkeit finden dass der User eine selbst definierte Aktion an einen Eventhandler hängt und dieser dann den Fullscreen anfordert. In der derzeitigen Version habe ich das auf die Husche über ein Div gelöst welches oben links in der Ecke hängt und das Event onClick verwendet.

Neue Funktionen:
Zitat:

Fullscreen()
FullWindow()
AutoResize()


Demo:
http://www.sedm.de/monkey/utils

Modul:
http://www.sedm.de/monkey/sedm.zip
Farbfinsternis.tv

Farbfinsternis

BeitragDi, Jan 08, 2013 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe das originale sedm.utils nun überarbeitet ( http://www.colorflow.de/monkey/sedm.zip ) so dass das XMLHttpRequest nun wieder für Android, Flash und HTML5 funktioniert. Die anderen Targets haben noch keine Unterstützung, ich arbeite aber daran.

Die Fullscreen API hat in diese Überarbeitung noch nicht wieder Einzug gefunden da es immer noch nicht klar ist wo ich den Wechsel auf Fullscreen anhänge oder wie ich den User entscheiden lassen kann wo der Callback angehangen wird.

Da die Webfonts Geschichte nur mit HTML5 funktionieren kann (so wie sie derzeit implementiert ist) überlege ich mir Wege wie man sie auch auf den anderen Targets benutzen könnte. In diesem Release fehlen die Webfonts, im nächsten habe ich sie vllt. wieder drin.

Folgendes Beispiel ruft ein PHP Script auf welches die IP Adresse des Users zurückgibt und dann anzeigt:
http://www.colorflow.de/monkey/utils/

Es ist folgendes zu beachten:
XMLHttpRequests funktionieren in HTML5 nur auf derselben Domain. Man kann zwar in PHP einen Header schreiben der es gestattet auch Domain-übergreifend das Script anzufahren, aber auch das ist meist vom Client abhängig. Für Android und Flash spielt das keine Rolle.
Farbfinsternis.tv

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group