MARTIN hat geschrieben:Jetzt frage ich mich wo kann ich libgtkmozembed.so finden ? Überall findet man nur das Wort "libgtkmozembed.so" aber die Library selbst oder Quellen oder irgendwas brauchbares nicht.
Keine Ahnung, habe das hier nicht installiert. Da mußt Du mal
bei Fantaisie Software nachfragen.
Der Link zu mc vorhin war falsch - ich verwende eine modifizierte
Version:
http://mc.linuxinside.com/
Funktioniert hier besser (z.B. Farben) und habe ich mir so
eingerichtet das .pb-Dateien bei Enter kompiliert werden.
Die PureBasic.xml für Kate muß hier (Suse 9.1 Pro) in:
/opt/kde3/share/apps/katepart/syntax/
...bringt hier aber einen Fehler bei Kate 2.2.1:
"/opt/kde3/share/apps/katepart/syntax/PureBasic.xml: Veraltete Syntax.
Kontext 0 besitzt keinen symbolischen Namen"
Der Sprite-Bug ist immernoch nicht behoben - habe nun
PB/Linux 3.92 gerade ausprobiert.
Der Testcode:
Code: Alles auswählen
#Screen_W = 800
#Screen_H = 600
#Sprite1 = 1
#Sprite1_W = 128
#Sprite1_H = 128
Procedure DrawGradient_Quad(w,h,col1,col2,col3,col4)
;
; Draw gradient colors for 4 corners
;
; by Danilo, 29.January 2005
;
sRed1.f = Red(col1) : r1.f = (Red (col1) - Red (col3))/h
sGreen1.f = Green(col1) : g1.f = (Green(col1) - Green(col3))/h
sBlue1.f = Blue(col1) : b1.f = (Blue (col1) - Blue (col3))/h
sRed2.f = Red(col2) : r2.f = (Red (col2) - Red (col4))/h
sGreen2.f = Green(col2) : g2.f = (Green(col2) - Green(col4))/h
sBlue2.f = Blue(col2) : b2.f = (Blue (col2) - Blue (col4))/h
For y = 0 To h-1
col1 = RGB(sRed1-y*r1,sGreen1-y*g1,sBlue1-y*b1)
col2 = RGB(sRed2-y*r2,sGreen2-y*g2,sBlue2-y*b2)
sRed3.f = Red(col1) : r3.f = (Red (col1) - Red (col2))/w
sGreen3.f = Green(col1) : g3.f = (Green(col1) - Green(col2))/w
sBlue3.f = Blue(col1) : b3.f = (Blue (col1) - Blue (col2))/w
For x = 0 To w-1
r.f = sRed3 - x*r3
g.f = sGreen3 - x*g3
b.f = sBlue3 - x*b3
Plot(x,y,RGB(r,g,b))
Next x
Next y
EndProcedure
Procedure Min(val1,val2)
; return lower value
If val1 > val2
ProcedureReturn val2
EndIf
ProcedureReturn val1
EndProcedure
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageRequester("ERROR","Cant init Game Engine",0):End
EndIf
If OpenScreen(#Screen_W,#Screen_H,32,"TEST") = 0 ; test 32bit
If OpenScreen(#Screen_W,#Screen_H,24,"TEST") = 0 ; if 32bit failed, test 24bit
If OpenScreen(#Screen_W,#Screen_H,16,"TEST") = 0 ; if 32/24 failed, try 16bit screen
MessageRequester("ERROR","Cant open 16/24/32bit Screen",0):End
EndIf
EndIf
EndIf
If CreateSprite(#Sprite1,#Sprite1_W,#Sprite1_H)=0
CloseScreen()
MessageRequester("ERROR","Cant create sprite !"):End
Else
If StartDrawing(SpriteOutput(#Sprite1))
DrawGradient_Quad(#Sprite1_W,#Sprite1_H,$00FFFF,$FFFF00,$0000FF,$FF0000)
x = Min(#Sprite1_W,#Sprite1_H)
For r = 0 To x/6
Circle(#Sprite1_W/2,#Sprite1_H/2,r,0)
Next r
StopDrawing()
EndIf
EndIf
Repeat
FlipBuffers()
ExamineKeyboard()
ClearScreen($00,$00,$00)
;ClipSprite(#Sprite1,0,0,#Sprite1_W/2,#Sprite1_H/2)
DisplayTransparentSprite(#Sprite1,Sprite1_X,Sprite1_Y)
; KEYBOARD CHECK
;
If KeyboardPushed(#PB_KEY_RIGHT)
Sprite1_X + 4
If Sprite1_X > #Screen_W : Sprite1_X = -#Sprite1_W : EndIf
EndIf
If KeyboardPushed(#PB_KEY_LEFT)
Sprite1_X - 4
If Sprite1_X < -#Sprite1_W : Sprite1_X = #Screen_W : EndIf
EndIf
If KeyboardPushed(#PB_KEY_UP)
Sprite1_Y - 4
If Sprite1_Y < -#Sprite1_H : Sprite1_Y = #Screen_H : EndIf
EndIf
If KeyboardPushed(#PB_KEY_DOWN)
Sprite1_Y + 4
If Sprite1_Y > #Screen_H : Sprite1_Y = -#Sprite1_H : EndIf
EndIf
Until KeyboardPushed(#PB_KEY_ESCAPE)
End
Dieser Code funktioniert wie er soll. Fügt man die Zeile mit
ClipSprite() wieder ein, dann funktioniert es nicht mehr.
Bei der Verwendung von ClipSprite entsteht ein Fehler wenn
das Sprite auf Koordinaten X/Y kleiner 0 dargestellt wird.
Probiert es selbst aus: ClipSprite wieder reinmachen und
Sprite mit den Cursor-Tasten nach oben und nach links
aus dem Screen bewegen.
Es geht nicht. Das Sprite bleibt bei 0 stehen und das Clipping
kommt total durcheinander.
Das man mit den Drawing-Befehlen wie Circle() noch immer
keine geschlossenen Figuren zeichnen kann (da DrawingMode()
auf Linux nicht unterstützt wird) ist... arfff... "schade".
terrain.pb zeigt kein Terrain, nur eine flache Grundfläche:
Code: Alles auswählen
Creating viewport on target 'PureBasic test', rendering from camera '', relative dimensions L:0.00,T:0.00,W:100.00,H:100.00, Z-Order:0
Viewport for camera '' - actual dimensions L:0,T:0,W:640,H:480
An exception has been thrown!
-----------------------------------
Details:
-----------------------------------
Error #: 4
Function: Image::load
Description: Unable to load image file 'SkyDome' - invalid extension..
File: OgreImage.cpp
Line: 146
Stack unwinding: Image::load(..) <- <<beginning of stack>>
Error loading texture SkyDome. Texture layer will be blank.
SDLTexture: Loading clouds.jpg with 0 mipmaps from Image.
Das lustige ist das im PB/Linux-Archiv schon eine Ogre.log
in compilers/ mitgeliefert wird, die einen Crash geloggt hat.
Da sieht man gleich was einen erwartet, noch ehe man die
Beispiele selbst probiert.
Den Rest habe ich jetzt nicht ausprobiert, das reicht mir
schon wieder für den Moment.
Die alten Fehler wurden nicht behoben, sondern lieber
versucht neues Zeugs einzubauen. Wie Schade...