[Monkey] DrawText und Screen in monkey

Übersicht Andere Programmiersprachen Beginners-Corner

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: DrawText und Screen in monkey

BeitragMi, Feb 04, 2015 8:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hi leute spiele grad ein wenig mit monkey, gibt es eine möglichkeit den text ohne einen schwarzen balken anzuzeigen?

Code: [AUSKLAPPEN]
Import mojo

Class Game Extends App

    Function DrawBild()
        SetColor 0, 0, 255
      DrawRect 0, 0, DeviceWidth(), DeviceHeight()
      SetColor 255, 255, 255
      SetBlend AlphaBlend
      SetAlpha 0.5
      DrawText "LOL", 10, 10
    End

    Field updateCount
   
    Method OnCreate()
       
        SetUpdateRate 60
    End
   
       
    Method OnRender()
        Cls
        DrawBild
    End
   
End

Function Main()
    New Game()
End


desweiteren target Desktop - gibt es eine möglichkeit den screen einzurichten auf eine auflösung?
z.b. wie in bmax graphics desktopwidth()-100,desktopheight()-100
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Dottakopf

BeitragMi, Feb 04, 2015 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

schau dir doch mal im Build ordner die "Config"(Sowohl Desktop als auch HTML) files an. Dort kannst die Parameter voreinstellen.
(in der Hilfe gibt es auch einen Punkt "App config settings")

die Auflösung müsste zu ändern gehen schließlich gibt es:
Code: [AUSKLAPPEN]

   Method OnResize()
      
   End



Wie man die Textbalken im Hintergrund ausblendet weiß ich jetzt auch nicht im Kopf. ich versuche auch möglichst kein Text zu verwenden da es so ultra super langsam ist.(<-- Falsch ist nicht langsam)

etwas offtopic aber mein Jungle Ide erstellt mir als neues dokument folgnede Blanko Vorlage:
Code: [AUSKLAPPEN]

Import mojo

Function Main()
   New Game()
End

Class Game Extends App

   'summary:The OnCreate Method is called when mojo has been initialized and the application has been successfully created.
   Method OnCreate()
   
      'Set how many times per second the game should update and render itself
      SetUpdateRate(60)
   
   End
   
   'summary: This method is automatically called when the application's update timer ticks.
   Method OnUpdate()
      
   End
   
   'summary: This method is automatically called when the application should render itself, such as when the application first starts, or following an OnUpdate call.
   Method OnRender()
      Cls()
      
   End

   'summary: This method is called instead of OnRender when the application should render itself, but there are still resources such as images or sounds in the process of being loaded.
   Method OnLoading()
      
   End
   
   'summary: This method is called when the application's device window size changes.
   Method OnResize()
      
   End
   
   '#REGION Code to handle susped status of the game goes here
   
   'summary: OnSuspend is called when your application is about to be suspended.
   Method OnSuspend()
   
   End
   
   'summary: OnResume is called when your application is made active again after having been in a suspended state.
   Method OnResume()
      
   End   
   '#END REGION
   
   '#REGION Code to handle game closing goes here:
   
   'summary: This method is called when the application's 'close' button is pressed.
   Method OnClose()
      Super.OnClose()
   End

   'summary:This method is called when the application's 'back' button is pressed.
   Method OnBack()
      Super.OnBack()
   End
   
   '#END REGION

End


  • Zuletzt bearbeitet von Dottakopf am Do, Feb 05, 2015 18:27, insgesamt einmal bearbeitet

Mathias-Kwiatkowski

BeitragMi, Feb 04, 2015 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für deine antwort.
das mit dem screen habe ich nun hinbekommen (nicht alleine habe hilfe gehabt) aber die font warum is die langsam

ich habe gemerkt das jeder buchstabe in monkey ein bild ist. das bild ist dann dort zu finden wo deine ganzen bilder sowieso gesichert sind. habe es danach einfach bearbeitet und maskiert als png ... fertig wars Very Happy

nun hab ich den balken nur noch im debug modus... am ende des programms kann ich dann ja einfach maskieren und fertig...

also für alle die mit monkey das selbe problem haben

Font Transperent
ihr startet euer prog ganz normal alle ordner werden nun angelegt
z.b. EuerProg.build
in dem ordner geht ihr rein
dann kommt das target also glfw oder html5 oder oder oder
ihr wählt den entsprechenden ordner aus
dann den ordner
gcc_winnt
dann relase oder debug ... debug ist für noch nich fertige programme (also der langsamere sorce als exe) relase ist das fertige programm.
ich wählte nun Debug ordner danach data dort befindet sich ein bild mojo_font.png dieses bild wählte ich nun aus und habe die schwarze farbe also hg farbe ( in paint.net frei zu haben ) entfernt mit dem "magic stift" allerdings habe ich hierbei wirklich nur die farbe schwarz ausgewählt. also tolleranzgrenze 0%. das bild dann speichern, und die exe direckt starten. und seht her, das schwarze zeug is futsch.



so nun möchte ich gleichzeitig noch ein tipp geben um vollbild in verschiedenen auflösungen zu erstellen oder gar die desktop auflösung zu benutzen.

-!ich habe den großteil nicht selber gecodet!-
habe den code nur erweitert

wir legen uns im projekt ordner worin unserprogram.monkey liegt eine datei an die heisst
( screen.cpp )
dort kommt folgendes zeugs rein und dann nat speichern.
Code: [AUSKLAPPEN]
GLFWvidmode return_struct;
int width, height, x, y;

int DesktopWidth(void)
{
   glfwGetDesktopMode( &return_struct );

   return return_struct.Width;
}

int DesktopHeight(void)
{
   glfwGetDesktopMode( &return_struct );

   return return_struct.Height;
}


void SetWindowSize(int width, int height)
{
   glfwSetWindowSize(width, height);
}

int DeviceWidth(void)
{
   glfwGetWindowSize(&width, &height);
   return width;
}

int DeviceHeight(void)
{
   glfwGetWindowSize(&width, &height);
   return height;
}

void SetWindowPos(int x, int y)
{
   glfwSetWindowPos(x, y);
}


so nun die monkey datei mit fullscreen

Code: [AUSKLAPPEN]
Import mojo

#GLFW_WINDOW_TITLE="YAAAAA"
Import "screen.cpp"

#GLFW_WINDOW_FULLSCREEN=True
#If TARGET = "glfw" Then
Extern
   Function DesktopWidth:Int()
   Function DesktopHeight:Int()
   Function SetWindowSize:Void(width:Int, height:Int)
   Function DeviceWidth:Int()
   Function DeviceHeight:Int()
   Function SetWindowPos:Void(x:int, y:int)
   
Public

#Else
   Function DesktopWidth:Int()
      Return 1
   End Function
   Function DesktopHeight:Int()
      Return 1
   End Function
   Function SetWindowSize:Void(width:Int,height:Int)
   End Function
   Function SetWindowPos:Void(x:int, y:int)
   End Function
#End If

Class Game Extends App
      
    Function DrawBild(Bild:Image)
        SetColor 0, 0, 255
      DrawRect 0, 0, DeviceWidth(), DeviceHeight()
      SetColor 255, 255, 255
      SetBlend AlphaBlend
      DrawText "LOL", 10, 10
      DrawText TouchX() + " " + TouchY(), 10, 20
   
    End

Method OnCreate()
      SetWindowSize(DesktopWidth(), DesktopHeight())
            
       
        SetUpdateRate 60
    End
   
       
    Method OnRender()
        Cls
        DrawBild Char
      #If TARGET = "glfw" Then
         If KeyDown(KEY_ESCAPE) Then EndApp
      #EndIf
    End
   
End

Function Main()
    New Game()
End


nun das ganze als fenster variante

Code: [AUSKLAPPEN]
Import mojo

#GLFW_WINDOW_TITLE="YAAAAA"
Import "screen.cpp"

#If TARGET = "glfw" Then
Extern
   Function DesktopWidth:Int()
   Function DesktopHeight:Int()
   Function SetWindowSize:Void(width:Int, height:Int)
   Function DeviceWidth:Int()
   Function DeviceHeight:Int()
   Function SetWindowPos:Void(x:int, y:int)
   
Public

#Else
   Function DesktopWidth:Int()
      Return 1
   End Function
   Function DesktopHeight:Int()
      Return 1
   End Function
   Function SetWindowSize:Void(width:Int,height:Int)
   End Function
   Function SetWindowPos:Void(x:int, y:int)
   End Function
#End If

Class Game Extends App
      
    Function DrawBild(Bild:Image)
        SetColor 0, 0, 255
      DrawRect 0, 0, DeviceWidth(), DeviceHeight()
      SetColor 255, 255, 255
      SetBlend AlphaBlend
      DrawText "LOL", 10, 10
      DrawText TouchX() + " " + TouchY(), 10, 20
   
    End

Method OnCreate()
      SetWindowSize(DesktopWidth()-10, DesktopHeight()-70)
      SetWindowPos(0, 0)      
       
        SetUpdateRate 60
    End
   
       
    Method OnRender()
        Cls
        DrawBild Char
      #If TARGET = "glfw" Then
         If KeyDown(KEY_ESCAPE) Then EndApp
      #EndIf
    End
   
End

Function Main()
    New Game()
End


zur erklärung wenn SetWindowPos(X,Y) nicht gemacht wird wird euer bild evtl. aus dem "Monitor" rauslaufen Very Happy also kann man mithilfe dieses befehles mal eben das fenster frei positionieren.

dieser fenster code ist nicht!!!!! für html5 dort bitte wie gewohnt alles in projekt.html ändern
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Dottakopf

BeitragDo, Feb 05, 2015 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
tatsächlich.. ich glaube das lag an der Tile Map demo an der ich selbst gearbeitet habe.
Hier wird alles mit Primitives gezeichnet ohne grafiken.. das wahr wohl schuld.

Sorry für die falsche aussage.... Embarassed
Rechtschreibfehler gelten der allgemeinen Belustigung!

Midimaster

BeitragMo, Feb 09, 2015 10:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst auch mit komplett anderem Zeichensatz arbeiten. Da gibt es mehrere Module auf monkeycoder. Zum Einsteig empfehle ich das "Angelfont". Es ist bereits als Beispiel bei den "Bananas" in deinem Monkey-Verzeichnis installiert.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group