2D Engine Nautilus (OpenGL)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

2D Engine Nautilus (OpenGL)

Beitrag von Mijikai »

Bild

Nun will ich endlich mal meine 2D (OpenGL) Engine Nautilus vorstellen :D

Features:
  • - Einfache Integration
    - Einfaches Rendern von Sprites, Text und Tilesets (rotiert, eingefärbt, transparent, skaliert, layered)
    - Unterstützung von mehreren Layern (Layer 0 - 9, oder unlimitiert in Folge)
    - Zeichenfunktionen für Grundformen
    - Frei wählbare Bildwiederholrate (30 - 80)
    - Automatisches skalieren des Zeichenbereichs
    - Unabhängige Rendergröße (nicht an die Fenstergröße gebunden)
    - Isometrische Camera (für isometrische Spiele)
Beispiel einer isometrischen Camera (Source im Download):
Bild

Würde mich über Tests, Kritik und Anregungen freuen :)

Übersicht der Imports & Interfaces:

Code: Alles auswählen

;Alpha 3

Import "ne32.lib"
  neContext.i(hwnd.i,width.i,height.i,fps.i)
  neVersion.i()
EndImport

Interface NAUTILUS_ISOMETRIC
  CreateCamera.i(X.f,Y.f,Width.f,Height.f)
  CameraPosition.i(Camera.i,*Position,*Offset = #Null)
  CameraMove.i(Camera.i,*Position,*Offset = #Null)
  CameraZoom.f(Camera.i,Min.f,Max.f,*Scale = #Null)
  CameraScale.f(Camera.i)
  CameraUnit.i(Camera.i,*Unit)
  CameraCartesian.i(Camera.i,*Cartesian)
  CameraIsometric.i(Camera.i,*Isometric)
  CameraClamp.i(Camera.i,*Bounds)
  CameraUpdate.i(Camera.i,*Translation = #Null)
  CameraFree.i(Camera.i)
  CreateTiles.i()
  TileSet.i(X.i,Y.i,Link.i)
  TileGet.i(X.i,Y.i)
  TileUnit.i(X.i,Y.i,*Unit)
  TileCartesian.i(X.i,Y.i,*Cartesian)
  TileIsometric.i(X.i,Y.i,*Isometric)
  TileTranslate.i(Camera.i,X.i,Y.i,*Position,*Cartesian = #Null,*Link = #Null)
  FreeTiles.i()
  MouseTranslate.i(Camera.i,*Mouse,*Cartesian,*Unit = #Null)
  MouseTest.i(*Unit)
  WorldToScreen.i(Camera.i,*Cartesian,*Position)
  ScreenToWorld.i(Camera.i,*Position,*Cartesian,*Unit = #Null)
  Translate.i(Camera.i,*Isometric,*Position)
  Isometric.i(*Cartesian,*Isometric)
  Unit.i(*Cartesian,*Unit)
  Release.i()
EndInterface

Interface NAUTILUS_FONT
  Width.f()
  Height.f()
  CenterX.f()
  CenterY.f()
  Resize.i(Width.f,Height.f)
  ResetSize.i()
  GetSpacing.i()
  SetSpacing.i(Spacing.f)
  ResetSpacing.i()
  Draw.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Tint.l = #Null)
  DrawRot.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  DrawMod.i(X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Tint.l = #Null)
  DrawModRot.i(X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  DrawLight.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Tint.l = #Null)
  DrawLightRot.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Angle.f = #Null,Tint.l = #Null)
  DrawLightMod.i(X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Tint.l = #Null)
  DrawLightModRot.i(X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerDraw.i(Layer.i,X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Tint.l = #Null)
  LayerDrawRot.i(Layer.i,X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerDrawMod.i(Layer.i,X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Tint.l = #Null)
  LayerDrawModRot.i(Layer.i,X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerDrawLight.i(Layer.i,X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Tint.l = #Null)
  LayerDrawLightRot.i(Layer.i,X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerDrawLightMod.i(Layer.i,X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Tint.l = #Null)
  LayerDrawLightModRot.i(Layer.i,X.f,Y.f,Text.s,Width.f = #Null,Height.f = #Null,CenterX.b = #False,CenterY.b = #False,Angle.f = #Null,Tint.l = #Null)
  Release.i()
EndInterface

Interface NAUTILUS_TILE
  Width.f()
  Height.f()
  CenterX.f()
  CenterY.f()
  Resize.i(Width.f,Height.f)
  ResetSize.i()
  Draw.i(Index.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null)
  DrawRot.i(Index.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  DrawMod.i(Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null)
  DrawModRot.i(Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  DrawLight.i(Index.i,X.f,Y.f,Center.b = #False,Tint.l = #Null)
  DrawLightRot.i(Index.i,X.f,Y.f,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  DrawLightMod.i(Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Tint.l = #Null)
  DrawLightModRot.i(Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerDraw.i(Layer.i,Index.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null)
  LayerDrawRot.i(Layer.i,Index.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerDrawMod.i(Layer.i,Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null)
  LayerDrawModRot.i(Layer.i,Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerDrawLight.i(Layer.i,Index.i,X.f,Y.f,Center.b = #False,Tint.l = #Null)
  LayerDrawLightRot.i(Layer.i,Index.i,X.f,Y.f,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerDrawLightMod.i(Layer.i,Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Tint.l = #Null)
  LayerDrawLightModRot.i(Layer.i,Index.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  Animation.i(Timer.f = #Null,Active.b = #False,Once.b = #False)
  AnimationState.i(Active.b = #True)
  AnimationOnce.i(Flag.b = #True)
  AnimationFrame.i()
  AnimationFrames.i()
  AnimationStart.i(Index.i = -1)
  AnimationStop.i(Index.i = -1)
  AnimationReset.i(Zero.b = #False)
  CreateCopy.i()
  Release.i()
EndInterface

Interface NAUTILUS_SPRITE
  Width.f()
  Height.f()
  CenterX.f()
  CenterY.f()
  Resize.i(Width.f,Height.f)
  ResetSize.i()
  Draw.i(X.f,Y.f,Center.b = #False,Alpha.a = #Null)
  DrawRot.i(X.f,Y.f,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  DrawMod.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null)
  DrawModRot.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  DrawLight.i(X.f,Y.f,Center.b = #False,Tint.l = #Null)
  DrawLightRot.i(X.f,Y.f,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  DrawLightMod.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Tint.l = #Null)
  DrawLightModRot.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerDraw.i(Layer.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null)
  LayerDrawRot.i(Layer.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerDrawMod.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null)
  LayerDrawModRot.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerLight.i(Layer.i,X.f,Y.f,Center.b = #False,Tint.l = #Null)
  LayerLightRot.i(Layer.i,X.f,Y.f,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerLightMod.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Tint.l = #Null)
  LayerLightModRot.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  Release.i()  
EndInterface

Interface NAUTILUS_ATLAS
  Width.f()
  Height.f()
  CenterX.f()
  CenterY.f()
  Resize.i(Width.f,Height.f)
  ResetSize.i()
  Draw.i(X.f,Y.f,Center.b = #False,Alpha.a = #Null)
  DrawRot.i(X.f,Y.f,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  DrawMod.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null)
  DrawModRot.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  Light.i(X.f,Y.f,Center.b = #False,Tint.l = #Null)
  LightRot.i(X.f,Y.f,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  LightMod.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Tint.l = #Null)
  LightModRot.i(X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerDraw.i(Layer.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null)
  LayerDrawRot.i(Layer.i,X.f,Y.f,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerDrawMod.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null)
  LayerDrawModRot.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  LayerLight.i(Layer.i,X.f,Y.f,Center.b = #False,Tint.l = #Null)
  LayerLightRot.i(Layer.i,X.f,Y.f,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  LayerLightMod.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Tint.l = #Null)
  LayerLightModRot.i(Layer.i,X.f,Y.f,Width.f = #Null,Height.f = #Null,Center.b = #False,Angle.f = #Null,Tint.l = #Null)
  CreateSprite.i(X.i,Y.i,Width.i,Height.i)
  CreateTile.i(CountX.i,CountY.i,X.i,Y.i,Width.i,Height.i,OffsetX.i = #Null,OffsetY.i = #Null)
  CreateFont.i(CountX.i,CountY.i,X.i,Y.i,Width.i,Height.i,OffsetX.i = #Null,OffsetY.i = #Null)
  Bitmap.i(*Bitmap)
  Release.i()
EndInterface

Interface NAUTILUS_LAYER
  Reset.i(Layer.i)
  Translate.i(Layer.i,X.f,Y.f,Origin.b = #False)
  Push.i(Layer.i)
  Pop.i(Layer.i)
  Rotate.i(Layer.i,Angle.f = #Null)
  Scale.i(Layer.i,X.f = 1,Y.f = 1)
  Render.i()
EndInterface

Interface NAUTILUS_DRAWING
  DrawPointSize.i(Size.f = 1)
  DrawLineSize.i(Size.f = 1)
  DrawPoint.i(X.f,Y.f,Color.l = $FFFFFFFF)
  DrawLine.i(X1.f,Y1.f,X2.f,Y2.f,Color.l = $FFFFFFFF)
  DrawTriangle.i(X.f,Y.f,Width.f,Height.f,Fill.b = #False,Color.l = $FFFFFFFF)
  DrawBox.i(X.f,Y.f,Width.f,Height.f,Center.b = #False,Fill.b = #False,Color.l = $FFFFFFFF)
  DrawDiamond.i(X.f,Y.f,Width.f,Height.f,Center.b = #False,Fill.b = #False,Color.l = $FFFFFFFF)
  DrawCircle.i(X.f,Y.f,Radius.f,Fill.b = #False,Color.l = $FFFFFFFF)
EndInterface

Interface NAUTILUS
  ViewPortResize.i(Width.i,Height.i)
  ViewPortFactor.i(*Vector)
  ViewPortSize.i(*Vector)
  ViewPortCenter.i(*Vector)
  RenderSize.i(*Vector)
  RenderHideCursor(Flag.b = #True)
  RenderFilter(Bilinear.b = #False)
  RenderColor.i(Color.l = #Null)
  RenderBegin.i(*Delta = #Null,*FPS = #Null)
  RenderEnd.i()
  RenderReset.i()
  RenderPush.i()
  RenderPop.i()
  RenderTranslate.i(X.f,Y.f)
  RenderRotate.i(Angle.f)
  RenderScale.i(X.f,Y.f)
  RenderTextWidth.f()
  RenderTextHeight.f()
  RenderTextResize.i(Width.f,Height.f)
  RenderTextResetSize.i()
  RenderTextGetSpacing.f()
  RenderTextSetSpacing.i(Spacing.f)
  RenderTextResetSpacing.i()
  RenderText.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Tint.l = #Null)
  RenderTextRot.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null) 
  RenderTextMod.i(X.f,Y.f,Text.s,Width.f,Height.f,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Tint.l = #Null)
  RenderTextModRot.i(X.f,Y.f,Text.s,Width.f,Height.f,CenterX.b = #False,CenterY.b = #False,Alpha.a = #Null,Angle.f = #Null,Tint.l = #Null)
  RenderTextLight.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Tint.l = #Null)
  RenderTextLightRot.i(X.f,Y.f,Text.s,CenterX.b = #False,CenterY.b = #False,Angle.f = #Null,Tint.l = #Null) 
  RenderTextLightMod.i(X.f,Y.f,Text.s,Width.f,Height.f,CenterX.b = #False,CenterY.b = #False,Tint.l = #Null)
  RenderTextLightModRot.i(X.f,Y.f,Text.s,Width.f,Height.f,CenterX.b = #False,CenterY.b = #False,Angle.f = #Null,Tint.l = #Null)
  InputKey.i(Code.i)
  InputKeySgl.i(Code.i)
  InputKeyChr.i()
  InputMouse.i(*Vector)
  InputMouseLeft.i()
  InputMouseLeftSgl.i()        
  InputMouseLeftDbl.i()
  InputMouseRight.i()
  InputMouseRightSgl.i()
  InputMouseRightDbl.i()
  InputMouseMiddle.i() 
  InputMouseMiddleSgl.i()
  InputMouseMiddleDbl.i()
  InputMouseWheel(Code.i = #Null,*Value.Integer = #Null)
  CreateDrawing.i()
  CreateLayer.i()
  CreateAtlas.i(*Buffer,File.s = #Null$)
  CreateFont.i(*Buffer,File.s,Width.i,Height.i)
  CreateLight.i(Width.i,Height.i,LightA.a,LightB.a,Radius.f = #Null)
  CreateIsometric.i(Width.i,Height.i,TileWidth.i,TileHeight.i)
  Release.i()
EndInterface
Download Links entfernt - Alphatest ist beendet!
Zuletzt geändert von Mijikai am 16.06.2019 20:36, insgesamt 9-mal geändert.
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Morty »

Hey Mijikai,

Du hast um Tests und Feedback gebeten. Da ich eher in der Anwendungsentwicklung zugegen bin, kann ich mit einigen Begriffen noch wenig anfangen, obwohl ich grob verstehe, was Du zum Beispiel mit "Atlanten" meinst. Darum kann ich bei einigen Beispielen schlecht sagen, ob das was dargestellt wird, auch dem entspricht, wie es sein sollte.

Was mir aber aufgefallen ist: Tutorial 4 - Mir fehlen bei den Texten einige Buchstaben. Vor allem immer die gleichen. Siehe Screenshots. Und auch komisch, dass die Ausgabe mit und ohne Debugger sich unterscheiden. Es scheint, als würde es an der Koordinatenberechnung liegen.

Tutorial 4 - Text - mit Debugger
Bild

Tutorial 4 - Text - ohne Debugger
Bild

Zu den Beispielen grundsätzlich:
Vorab - ich finde es gut, dass Du Deine Freizeit in ein solches Projekt steckst, und dieses öffentlich teilst :allright:

Aber ich als Laie kann recht wenig mit den Tutorials / Beispielen anfangen. Und ich denke, so geht es einigen - deswegen wird es hier noch still sein.

Nehmen wir mal Tutorial 6: Da geht es um die Inputs. Da ist im Beispiel eine einfache Schleife, in der rein gar nichts passiert. Auskommentiert findet man die Deklaration der Funktionen, die man nutzen könnte. Warum hier nicht ein kleines Sprite anzeigen, dass auf die Maus reagiert? Damit hätte man ein einfaches Bespiel für die Inputs, un der ungeübte Nutzer könnte sich das mit den Sprites laden / anzeigen / darstellen ... nochmal genauer ansehen.

Wie gesagt, ist alles konstruktive Kritik von jemanden, der von Game / Sprite Engines nicht viel Ahnung hat.

Gruß,
- Morty
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Mijikai »

Morty hat geschrieben:Hey Mijikai,

Du hast um Tests und Feedback gebeten. Da ich eher in der Anwendungsentwicklung zugegen bin, kann ich mit einigen Begriffen noch wenig anfangen, obwohl ich grob verstehe, was Du zum Beispiel mit "Atlanten" meinst. Darum kann ich bei einigen Beispielen schlecht sagen, ob das was dargestellt wird, auch dem entspricht, wie es sein sollte.

Was mir aber aufgefallen ist: Tutorial 4 - Mir fehlen bei den Texten einige Buchstaben. Vor allem immer die gleichen. Siehe Screenshots. Und auch komisch, dass die Ausgabe mit und ohne Debugger sich unterscheiden. Es scheint, als würde es an der Koordinatenberechnung liegen.

...

Nehmen wir mal Tutorial 6: Da geht es um die Inputs. Da ist im Beispiel eine einfache Schleife, in der rein gar nichts passiert. Auskommentiert findet man die Deklaration der Funktionen, die man nutzen könnte. Warum hier nicht ein kleines Sprite anzeigen, dass auf die Maus reagiert? Damit hätte man ein einfaches Bespiel für die Inputs, un der ungeübte Nutzer könnte sich das mit den Sprites laden / anzeigen / darstellen ... nochmal genauer ansehen.
Hallo Morty,
erst einmal danke fürs Testen und die konstruktive Kritik :)

Ich werde die Tutorials nochmal überarbeiten um die Beispiele besser und ausführlicher zu gestalten.

Das Problem mit den fehlenden Buchstaben hat mich überrascht :o
Bisher konnte ich das Problem noch nicht reproduzieren :cry:

Ich würde mich freuen wenn ich noch Informationen zum OS (ggf. VM) und der verwendeten PureBasic Version bekommen könnte.

Es folgen noch 2 Bilder, das Erste zeigt wie die Ausgabe von Tutorial 4 aussehen sollte.
Das nächste zeigt die Ausgabe von Tutorial 10 mit dem Text "Hello World!".

Mich würde interessieren ob der Text hier auch betroffen ist und der kleinere Textblock gleich aussieht?

Gruß Mijikai

Tutorial 4:
Bild

Tutorial 10:
Bild
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Morty »

Hi Mijikai,

da bin ich echt beruhigt, dass meine Anmerkungen auch konstruktiv aufgefasst wurden. Bin mir da manchmal nicht so sicher, und wollte keine "schlechte Stimmung" verbreiten.

Deine Screenshots sehen schon deutlich besser und verständlicher aus. Das Problem mit dem Text habe ich überall. Also auch bei Tutorial 5. Da ging es ja auch um Texte ... und natürlich auch Tutorial 10.

Bild

Ich vermute fast, dass es hier irgendwie ein Speicherleck gibt, oder so. Was mir nämlich auch auffällt, ist eine fehlerhafte Debugger Ausgabe. Wo bei Dir Font Width: 10 steht, und auch im Code der Debugger das so ausgeben sollte, kommt bei mir nur 10 ... ohne Font Width. Und das an beiden Stellen. Also auch nach dem Resizing.
Dazu kommt, dass wenn ich Tutorial 4 ein paar mal ohne Debugger ausführe, es sich nicht mehr starten lässt. Dann kommt immer, dass das Programm nicht ausgeführt werden kann und Windows es abschießen möchte.

System:
Windows 7 - 64 Bit
PB: 5.40 LTS (x86) - 32 Bit

Gruß,
- Morty
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Mijikai »

Danke für die weiteren Infos :D
Jetzt bin ich auch wieder beruhigt.

Wäre es möglich das Ganze nochmal im Unicode Modus zu testen?
Nur um sicher zu gehen - es wäre dann kein Bug.

Hab doch fast vergessen das es mal den Ascii Compiler gab.

Bei mit läufts mit PureBasic 4.51 & Unicode
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Morty »

Verdammt, daran hätte ich auch selbst denken können. Sorry. Leider bin ich schon daheim. Teste es am Montag und gebe dann nochmal Bescheid.

Gruß,
- Morty
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Mijikai »

Morty hat geschrieben: Teste es am Montag und gebe dann nochmal Bescheid.
Danke :)
Hab noch einen Beispielcode für Maus & Tastatur and den ersten Post gehängt.
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Morty »

Moin,

also im Unicode Modus läuft es wie gewünscht :allright: Vielen Dank.

Gruß,
- Morty
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: 2D Engine Nautilus (OpenGL)

Beitrag von Mijikai »

Update Alpha 3 (15.05.2019)

Neue Funktionen:
  • - Cursor kann jetzt versteckt werden!
    - Es gibt ein neues Interface (NAUTILUS_ISOMETRIC)
Viel Spaß beim Testen :D
Antworten