wie importiere ich asm oder c/c++ in BM

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Ciro

Betreff: wie importiere ich asm oder c/c++ in BM

BeitragMi, Nov 29, 2006 8:01
Antworten mit Zitat
Benutzer-Profile anzeigen
so wieder mal ne dumme frage, wie importiere ich c/c++ oder asm quelltexte in BM
geht das mit,

Code: [AUSKLAPPEN]

import meinquelltext.cpp
 

Dreamora

BeitragMi, Nov 29, 2006 8:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau.
Und du musst MingW so installiert haben, dass du auch Module kompilieren könntest.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Ciro

BeitragMi, Nov 29, 2006 9:14
Antworten mit Zitat
Benutzer-Profile anzeigen
DANKE! Very Happy
achja weißt du zufällig wie man mit drawtext, diesen links oder rechtsbündig ausrichtet.also mit anderen worten wie formatiere ich einen text.?

FOODy

BeitragMi, Nov 29, 2006 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ciro hat Folgendes geschrieben:
achja weißt du zufällig wie man mit drawtext, diesen links oder rechtsbündig ausrichtet.also mit anderen worten wie formatiere ich einen text.?

Mit einer Simplen Berechnung Very Happy

Hier ist ein Beispiel:
Code: [AUSKLAPPEN]
SuperStrict
Framework BRL.GLMax2D

Graphics 640,480
Global mode:Int = 0
Local info:String = "[LEERTASTE] = Weiter | Pfeiltasten = Box vergroeßern/verkleinern"
Local boxwidth:Int = 290
Local boxheight:Int = 290
Local x:Int = 0
Local y:Int = 0
Local tx:Int = 0
Local ty:Int = 0
Local text:String = ""
Repeat
   Cls
      x = MouseX()
      y = MouseY()
   
      SetColor 120,120,120
      DrawRect x-2,y-2,boxwidth+4,boxheight+4
      SetColor 200,200,200
      DrawRect x,y,boxwidth,boxheight
      
      SetColor 255,255,255
      DrawText info,GraphicsWidth()/2-TextWidth(info)/2,12
      
      DrawText "Rechts",GraphicsWidth()-TextWidth("Rechts"),240
      DrawText "Mitte",GraphicsWidth()/2-TextWidth("Mitte")/2,240
      DrawText "Links",0,240
      
      SetColor 0,0,0
      Select mode
         Case 0
            text = "Zentriert"
            tx = x+boxwidth/2-TextWidth(text)/2      ' Horizontal Zentriert
            ty = y+boxheight/2-TextHeight(text)/2   ' Vertikal Zentriert
         Case 1
            text = "Rechtsbündig"
            tx = x+boxwidth-TextWidth(text)      ' Horizontal Rechtsbündig
            ty = y+boxheight-TextHeight(text)   ' Vertikal Unten
         Case 2
            text = "Linkbündig"
            tx = x
            ty = y
         Case 3
            text = "Links-Mitte"
            tx = x
            ty = y+boxheight/2-TextHeight(text)/2   ' Vertikal Zentriert
         Case 4
            text = "Links-Unten"
            tx = x
            ty = y+boxheight-TextHeight(text)      ' Vertikal Unten
         Case 5
            text = "Mitte-Oben"
            tx = x+boxwidth/2-TextWidth(text)/2   ' Horizontal Zentriert
            ty = y
         Case 6
            text = "Mitte-Unten"
            tx = x+boxwidth/2-TextWidth(text)/2   ' Horizontal Zentriert
            ty = y+boxheight-TextHeight(text)   ' Vertikal Unten
         Case 7
            text = "Rechts-Oben"
            tx = x+boxwidth-TextWidth(text)      ' Horizontal Rechtsbündig
            ty = y
         Case 8
            text = "Rechts-Mitte"
            tx = x+boxwidth-TextWidth(text)      ' Horizontal Rechtsbündig
            ty = y+boxheight/2-TextHeight(text)/2   ' Vertikal Zentriert
      EndSelect
      DrawText text,tx,ty
      
      If KeyHit(KEY_SPACE) mode:+1
      If KeyDown(KEY_UP) boxheight:-3
      If KeyDown(KEY_DOWN) boxheight:+3
      If KeyDown(KEY_LEFT) boxwidth:-3
      If KeyDown(KEY_RIGHT) boxwidth:+3
      
      If mode>8 Then mode = 0
   Flip
Until AppTerminate() Or KeyDown(KEY_ESCAPE)


Der Code ist hoffentlich selbsterklärend Very Happy

Hoffe mal, dass ich dir helfen konnte, Ciro Smile


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

Ciro

BeitragMi, Nov 29, 2006 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke foody.wie ich sehe importierst du das 2d module,kann man dann anschließend alle befehle wie z.b text usw von 2d übernehmen?wenn ja geht das auch mit 3dmax?also wenn ich in BM das 3dmodul importiere ich denke du weißt schon was ich meine...

FOODy

BeitragMi, Nov 29, 2006 12:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn man ein Module importiert, importiert man die Funktionen, Types, Variablen und sonst so alles mit, was in dem Module verfügbar sind (und nicht als private deklariert wurden).

Wenn du jetzt Max2D und in Zukunft vllt auch Max3D Importierst, importierst du alle Funktionen, Variablen, Typen, etc von beiden Module bzw von allen modulen die du importierst.

Jedes Module hat ihren eigenen "Namespace".
D.h. falls es mal gleichnamige Funktionen in verschiedenen Module geben soll, kann man sie mit MODULESCOPE.MODULENAME.FUNKTION|VARIABLE|TYPE geziehlt ansprechen.

Kleines Beispiel:
Code: [AUSKLAPPEN]
SuperStrict
Framework BRL.GLMax2D

Const KEY_ESCAPE:Int = -1

Graphics 240,240

Repeat
   Cls
      DrawRect MouseX(),MouseY(),120,120
   Flip
Until KeyDown(KEY_ESCAPE) Or AppTerminate()


Function KeyDown:Int(key:Int)
   'Den Wert von "key" durch den Wert der Konstante "KEY_ESCAPE", aus dem Module BRL.KeyCodes, ersetzten.
   If key=KEY_ESCAPE Then key = BRL.KeyCodes.KEY_ESCAPE
   'Die Funktion "KeyDown" vom Module BRL.PolledInput ausführen
   Return BRL.PolledInput.KeyDown(key)
EndFunction



Function DrawRect(x:Int,y:Int,w:Int,h:Int)
   ' Max2D beinhaltet die Draw-Befehle
   ' Da es keine SetColor Funktion hier "gibt", wird die existierende von BRL.Max2D genommen
   SetColor 120,120,120
   BRL.Max2D.DrawRect x,y,w,h
   ' Man könnte es auch so machen
   BRL.Max2D.SetColor 50,50,50
   BRL.Max2D.DrawRect x+2,y+2,w-4,h-4
EndFunction   


Hier wird das Module BRL.GLMax2D importiert, welches das Max2D-
und GLGraphics importiert hat, die wiederum .................... importiert haben.

Ich hoffe, dass ich deine frage verstanden habe und es nicht zu blöd erklärt habe Confused


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

Ciro

BeitragMi, Nov 29, 2006 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein du hast es super erklärt,find ich ja genial das macht BM echt flexibel.man müßte sich jetzt nur genau mit den modulen auskennen sprich welche funktion versteckt sich in welchem modul....da es ja nur ein paar module sind Very Happy könnte es etwas dauern...
aber ich fang erstmal ganz klein an und mache an meinem 2d space game fleißig weiter.als nächstes sind die laser dran.ich versuche diesmal types einzusetzen obwohl ich mit arrays schneller wäre.nochmal vielen dank für deine erklärung FOODy.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group