WiP - Work in Progress - Part XVIII

Übersicht Sonstiges Projekte

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen

BladeRunner

Moderator

BeitragFr, Jul 19, 2013 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werde Reisende nicht halten.
Ich habe auch mit keinem Ton gesagt dass das Projekt nicht lobeswürdig wäre, da hilft genaues Lesen ganz enorm. Ansonsten hält sich meine Überforderung in engen Grenzen und ich bedanke mich für dein Interesse.
Ich wüsste auch nicht wo ich Dich bevormunde (ich wüsste nicht dass ich dir irgendwo den Mund verboten hätte oder Dir vorschreibe was du zu tun hast) , ich gab lediglich meine Meinung preis - ein kleiner aber dennoch essentieller Unterschied.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

biggicekey

BeitragFr, Jul 19, 2013 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr schönes Projekt, macht weiter so! Und bitte nicht auf Updates hier verzichten, sonst würde ich es nicht mitbekommen und könnte es auch nicht kaufen.
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

Xaron

BeitragSa, Jul 20, 2013 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Smile

Mal ein kleines Video, gefilmt auf einem Samsung S3:

http://www.youtube.com/watch?v=-DxqUbK5ua8&
Cerberus X - Monkey X Reloaded!

DAK

BeitragSa, Jul 20, 2013 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr nett. Das Projekt schaut wirklich nach was aus. Viel Erfolg beim Weitermachen!

Edit: Hab jetzt das ganze Spiel (inklusive Bonuslevel) durchgespielt, und finde es immer noch genial! Das einzige Problem, was mir aufgefallen ist, ist, dass die Auflösung vom Spiel in der Y-Achse ein bisschen zu hoch ist für meinen Bildschirm (ich hab 1366x768). Das hat dazu geführt, dass ich immer wieder scrollen hab müssen.

Für eine fertige Handyapp wäre vielleicht noch ein automatischer Levelgenerator nett, mit dem man dann unendlich viele Level haben würde. Das wär echt super.
Gewinner der 6. und der 68. BlitzCodeCompo

Amazorn

BeitragDi, Jul 23, 2013 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Top Xaron. Schaut klasse aus. Very Happy

Xaron

BeitragMo, Aug 05, 2013 11:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Jungs! Smile

Die Feuerleitlösung für die Torpedos funktioniert jetzt auch: http://www.youtube.com/watch?v=UcA9y6demh4
Cerberus X - Monkey X Reloaded!

Lobby

BeitragSa, Aug 17, 2013 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu Testzwecken habe ich ein Minigame geschrieben, das ein paar Bumpmapping-Effekte zeigt.
user posted image

Das Ganze ist mit GLSL Shadern realisiert und kann hier heruntergeladen werden: Download

Da der Code (BlitzMax) beiliegt können andere gerne die geschriebenen Shader auch in eigene Projekte einbauen.
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux

Xeres

Moderator

BeitragDi, Aug 20, 2013 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Lobby, werde ich mir sicher mal ansehen!

Langton's ant
...ist ein einfacher zellulärer Automat, bei dem eine Ameise auf einem weißen Gitter ausgesetzt wird und
1. Die Farbe des Feldes von schwarz zu weiß wechselt (und umgekehrt).
2. Sich nach rechts dreht, wenn das Feld Weiß ist.
3. Sich nach links dreht, wenn das Feld schwarz ist.

Mit genügend Platz entwickeln sich aus sehr einfachen Regeln sehr komplexe und/oder überraschende Muster. Die Ameise beginnt nach ~10000 Zügen in ein regelmäßiges Muster zu verfallen.

user posted image

Ich fand's jedenfalls faszinierend.

BlitzMax Code + win exe (~600kB)

Siehe auch Wikipedia
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

BlitzMoritz

BeitragMi, Aug 21, 2013 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Xeres hat Folgendes geschrieben:
Ich fand's jedenfalls faszinierend.

Fanden wir hier auch: Nach unten scrollen und staunen Surprised
 

Kruemelator

BeitragMo, Dez 23, 2013 0:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich arbeitete seit drei Nächten an einem Prozeduralen Modeling Programm.
Meshes werden nicht mit Vertices und Triangles beschrieben sondern nur durch eine Abfolge von Prozeduren und deren Übergabewerten.
Es wird nur mit Quads(zwei angrenzende Triangles) gearbeitet, welche bearbeitet oder dazu genutzt werden um neue Prozeduren aufzurufen.
Es gibt bisher 3 funktionierende Prozeduren:
Add:
5 verschiedene Grundkörper mit unterschiedlicher variabler Quadanzahl:
Würfel,Kugel,Zylinder,Kegel und Torus. Der Körper kann Verschoben, Gedreht und Skaliert werden.
Extrude:
Ein einzeles Quad kann "herausgezogen" werden und erzeugt somit 4 neue Quads.
Transform:
Ein einzelnes Quad kann Verschoben, Gedreht und Skaliert werden.

Es ist auch schon möglich eine Prozedurliste zu Speichern und zu Laden.
Außerdem kann man in der Liste eine beliebige vorherige Prozedur wählen und verändern solange es keinen Einfluss auf die folgenden Prozeduren hat.
Das löschen der letzten Prozedur in der Liste ist auch möglich.

Geplant:
Im Bild sieht man schon ein paar der nächsten Prozeduren die ich geplant habe. Es wird auch möglich sein eine Prozedur auf mehrere Quads gleichzeitig anzuwenden indem man mehrere Quads gleichzeitig markiert.

Hier ein Beispielbild wo ich einen toten Baum erstellt habe. Ist gespeichert nur 518 Bytes groß bei 56 Vertices.
user posted image

Eingeproggt

BeitragMo, Dez 30, 2013 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Sooo... mein "Ferienprojekt" das seeehr stark von der Uni, genauer gesagt der Vorlesung "Web Data Extraction" (@DAK: Is ganz empfehlenswert bis jetzt ^^) motiviert ist:

BBPath

Wer sich erinnern kann weiß, dass ich schonmal einen xml-Parser gemacht habe. Aber sind wir uns ehrlich, der war Müll. Und mein SQL-Parser geriet ein bisschen in Vergessenheit. Also wurde es Zeit, den xml-Parser neu zu schreiben und obendrein XPath mal genauer zu betrachten.

Zuerst mal n Screenshot einer gerade eben husch-pfusch zusammen geflickten GUI:
user posted image
Links das Ergebnis des ganz oben stehenden XPath's, angewendet auf den DOM-Baum im rechten Teil.

Die Technik dahinter ist schon "etwas weiter" aber natürlich lang ned fertig:
Arrow XML-Parser sollte soweit passen.
Arrow Die nebenbei entstandene http-Lib die auch mit Cookies umgehen kann is was eigenes (aber funktioniert)
Arrow Das DOM-Modell is leider ein grooooßer Fail weil ich mich an der HTML-DOM-Referenz orientierte statt der XML-DOM-Referenz Embarassed Aber immerhin kann ich vermelden, auch da schon eine kleine API beisammen zu haben.
Arrow Beim XPath hab ich schon einige Hürden gemeistert, aber ausgerechnet Achsen (Axis) werden noch nicht unterstützt. Und es gibt erst die Funktionen "text()" und "position()" und sonst eigentlich nix.

Aber in Summe reicht es schon *fast*, einen Web-Crawler daraus zu basteln. Das wäre nämlich mein oberstes Ziel Wink
Muss aber auch dazu sagen, dass es wohl nichts ernstes wird weil gerade für diese Anwendung is BB soooo ungeignet mangels OOP Sad Man führe sich vor Augen: Ich arbeite mit Nodes, die voneiander erben aber habe keine Vererbung Rolling Eyes

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Eingeproggt

BeitragSa, Feb 22, 2014 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Doppelpost Sad
In eineinhalb Monaten keine anderen WiP-Projekte...

Also, ich hab mein zuvor vorgestelltes Projekt jetzt soweit dass ich mit all den "Libs" die ich da gebaut habe, einen halbwegs funktionierenden Bot für ein Browsergame entwickelt hab. Ein "Meilenstein" der wohl ausreicht um die Technologie euch mal näher vorzustellen.

Zu aller erst, was man mit dem Ding machen kann. Man muss nur kreativ sein Wink
-) Bot für Browsergame hab ich selber gerade geschafft, man kann aber praktisch jede "selbstständige Anwendung" irgendwie anstreben. Sprich Web-Crawler / bishin zur eigenen Suchmaschine.
-) Einfache (oder auch komplexe) "Datenermittlungen" wie im folgenden Code dargestellt. Das ganze is zwar im Moment auf http beschränkt (kein https), aber kann auch auf lokale Dokumente angewendet werden. Also falls jemand XML-Daten anderer Spiele auslesen will oder selber eine Anwendung schreibt die XML verwendet.

BlitzBasic: [AUSKLAPPEN]
;Kleines Beispiel wie man Infos zum ersten Beitrag eines Blitzforum-Topics extrahiert
Local topicID=39925 ;zB BCC#75-Thread
Print "Lade /forum/viewtopic.php?t="+topicID
Local root.DOM_Node=BBPath_getDOMfromURL.DOM_Node("https://www.blitzforum.de/forum/viewtopic.php?t="+topicID)
size=BBPath_evalXPath("/html/body/div[@id='main_wrap']/div[@id='content_wrap']/div[@id='content']", root)
Local content.DOM_Node=Null
If size=1 Then
content=BBPath_iterator_next()
BBPath_evalXPath("/div/h1/Text()", content)
Local title$=BBPath_iterator_nextValue()
BBPath_evalXPath("/div/table/tr[1]/th[2]/h1//Text()", content)
Local author$=BBPath_iterator_nextValue()
Print "Topic ID "+topicID
Print " "+title$
Print " "+author$
EndIf


Sieht doch soweit ganz einfach und verwendbar aus, oder? Wink

Das Beispiel zum selber-Ausführen inklusive den Libs gibts natürlich auch:
https://www.blitzforum.de/upload/file.php?id=12702

Blöderweise sind die Sachen noch nicht besonders gut dokumentiert... Und halt auch noch nicht fertig, vor allem die XPath-Axis oder Namespaces im DOM. Es empfiehlt sich daher, das Ganze im Debugmode auszuführen, falls zB noch nicht implementierte Funktionen von euch genutzt werden, erfährt ihr es dort.

Würde mich jedenfalls freuen wenn es ein wenig Feedback gibt was noch erwünscht ist bzw. was nicht funktioniert (Gerade im "wilden WWW" wo sich nicht jeder an XML-Standards hält hab ich oft Parse-Fehler die von modernen Browsern korrigiert werden, von mir noch nicht so wirklich zufrieden stellend).

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

PacMani

Betreff: VisualBlitz - B3D & BMax in Visual Studio

BeitragSo, Jun 15, 2014 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu BBler,

wie vor einiger Zeit (etwas sehr lange her, hust) versprochen, setze ich mich nun mal an die Blitz3D- und später BlitzMax-Integration in Visual Studio.

Ein Worklog habe ich hier https://www.blitzforum.de/worklogs/548/ indem ich ein bisschen darauf eingehe, warum überhaupt noch B3D und was ich in welcher Reihenfolge im Laufe der Zeit implementieren werden.

Ein kleines Bild von dort auch nochmal hier - das Ergebnis von ein paar Stunden Arbeit, doppelhust Very Happy Das ist erstmal nur ein Proof-Of-Concept-Bildchen. Zieht nicht zu sehr darüber her Razz
user posted image

Xaymar

ehemals "Cgamer"

BeitragSo, Mai 10, 2015 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab da mal wieder was angestellt...
user posted image

Quasi-nativer FunctionPointer support (ohne crash bei zweiten aufruf) und Steam integration!

BlitzBasic: [AUSKLAPPEN]
Include "ExampleShared.bb"

Function Test()
Print "Hello"
Return 238282
End Function

Global fpOtherTest
Function OtherTest()
If Not fpOtherTest Then fpOtherTest = BP_GetFunctionPointer()

Text 0, 100, "OtherTest"

Return 837273
End Function

SteamAPI_Init()

ExampleInit()

While Not KeyHit(1)
ExampleUpdate()

Text 0, 0, "Function Pointer"
Text 0,15, " 0x" + Replace(RSet(Hex(fpOtherTest), 8), " ", "0")

If KeyHit(2) Then Test()
If KeyDown(3) Then OtherTest()
If KeyDown(4) Then BP_CallFunction(fpOtherTest)

ExampleLoop()
Wend
SteamAPI_Shutdown()
End

Xaymar

ehemals "Cgamer"

Betreff: Quasi-native Pointer und Steam-integration (Teil 2/?)

BeitragSo, Mai 10, 2015 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab zwar ein wenig gebraucht ums zu funktionieren zu bringen, aber nun tut es genau das was ich will. Und was viele andere wahrscheinlich auch wollen - nämlich Parameter und Rückgabewerte!

Video: https://youtu.be/BDQFHfklGh4

Code: [AUSKLAPPEN]
Include "../ExampleShared.bb"

Type Cubes
   Field Cube
   Field Time
End Type

Global fpSpawnCubeAtRandom = 0
Function SpawnCubeAtRandom()
   If Not fpSpawnCubeAtRandom Then
      fpSpawnCubeAtRandom = BlitzPointer_GetFunctionPointer()
      Return 0
   EndIf
   Local Cube.Cubes = New Cubes
   Cube\Cube = CreateCube(Example_SceneRoot)
   Cube\Time = MilliSecs()
   PositionEntity Cube\Cube, Rnd(-100, 100), Rnd(-100, 100), Rnd(-100, 100)
End Function
SpawnCubeAtRandom()

Global fpSpawnCubeAtPosition = 0
Function SpawnCubeAtPosition%(X#, Y#, Z#)
   If Not fpSpawnCubeAtPosition Then
      fpSpawnCubeAtPosition = BlitzPointer_GetFunctionPointer()
      Return 0
   EndIf
   Local Cube.Cubes = New Cubes
   Cube\Cube = CreateCube(Example_SceneRoot)
   Cube\Time = MilliSecs()
   PositionEntity Cube\Cube, X, Y, Z
End Function
SpawnCubeAtPosition(0, 0, 0)

Local A% = 36
SteamAPI_Init()
ExampleInit()
While Not KeyHit(1)
   Local Cube.Cubes
   For Cube = Each Cubes
      Local OX#, OY#, OZ#, Prc#
      OX = EntityX(Cube\Cube, True)
      OY = EntityY(Cube\Cube, True)
      OZ = EntityZ(Cube\Cube, True)
      Prc = (MilliSecs() - Cube\Time) / 10000.0
      
      PositionEntity Cube\Cube, OX * (1.0 - Prc), OY * (1.0 - Prc), OZ * (1.0 - Prc), True
      If Prc > 1.0 Then
         FreeEntity Cube\Cube
         Delete Cube
      EndIf
   Next
   
   ExampleUpdate()
   
   Text   0, 0, "Keys:"
   Text   0,15, "  1  Native Call to SpawnCubeAtRandom:" + KeyDown(2)
   Text   0,30, "  2  Native Call to SpawnCubeAtPosition:" + KeyDown(3)
   Text   0,45, "  3  Pointer Call to SpawnCubeAtRandom:" + KeyDown(4)
   Text   0,60, "  4  Pointer Call to SpawnCubeAtPosition:" + KeyDown(5)
   Text   0,75, "Pointers:"
   Text   0,90, "  SpawnCubeAtRandom"
   Text   0,105, "  SpawnCubeAtPosition"
   Text 200,90, "0x" + Replace(RSet(Hex(fpSpawnCubeAtRandom), 8), " ", "0")
   Text 200,105, "0x" + Replace(RSet(Hex(fpSpawnCubeAtPosition), 8), " ", "0")
   
   If KeyDown(2) Then SpawnCubeAtRandom()
   If KeyDown(3) Then SpawnCubeAtPosition(EntityX(Example_Camera, True), EntityY(Example_Camera, True), EntityZ(Example_Camera, True))
   If KeyDown(4) Then BlitzPointer_CallFunctionV(fpSpawnCubeAtRandom)
   If KeyDown(5) Then BlitzPointer_CallFunctionVFFF(fpSpawnCubeAtPosition, EntityX(Example_Camera, True), EntityY(Example_Camera, True), EntityZ(Example_Camera, True))
   
   ExampleLoop()
Wend
SteamAPI_Shutdown()
End


Edit:
user posted image

Xaymar

ehemals "Cgamer"

Betreff: Callbacks!

BeitragMo, Mai 11, 2015 3:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich plane die BlitzPointer.dll bald zu releasen, schreibe gerade noch ein wenig an den Beispielen.

Hier das Callbacks-Example: https://youtu.be/IgRNJRdcBZk

Code: [AUSKLAPPEN]
; Now that we have learned how to use functions, let's go for something really
;  advanced - Callbacks! We can use these to practically fake a OOP language.

Include "Example_Shared.bb"
ExampleInit()

; Let's create a Type to hold our generic object that only contains callback and
;  a pointer to the type object. This allows us to have a generic interface that
;  takes BObject and whatever type-object the user wants and returns weether or
;  not the BObject should be destroyed.
Type BObject
   Field DataCallback
   Field DataValue%
End Type

; Our Update loop looks like this, there's not much to do - after all we have
;  the callbacks to do the dirty work for us.
Function BObjectUpdate()
   Local Obj.BObject
   For Obj.BObject = Each BObject
      ; Check if the Callback and Value is set.
      If Obj\DataCallback <> 0 And Obj\DataValue <> 0 Then
         ; Our Callback tells us when we need to dispose of an object.
         If BlitzPointer_CallFunctionIII(Obj\DataCallback, Int(Obj), Obj\DataValue)
            Delete Obj
         EndIf
      Else
         Delete Obj
      EndIf
   Next
End Function


Type BCube
   Field Entity
   Field PosX#, PosY#, PosZ#
   Field Time
End Type

; Our Callback for BCube - relatively simple.
Global fpBCubeCallback = 0
Function BCubeCallback%(Obj.BObject, Cube.BCube)
   If fpBCubeCallback = 0 Then
      fpBCubeCallback = BlitzPointer_GetFunctionPointer()
      Return
   EndIf
   If Obj = Null Or Cube = Null Then Return
   
   Local Prc# = 1.0 - ((MilliSecs() - Cube\Time) / 5000.0)
   ;Cube\PosX = Cube\PosX * (1 + Prc)
   ;Cube\PosY = Cube\PosY * (1 + Prc)
   ;Cube\PosZ = Cube\PosZ * (1 + Prc)
   PositionEntity Cube\Entity, Cube\PosX * (Prc) * Cos(Prc * 90), Cube\PosY * Prc * Cos(Prc * 720), Cube\PosZ * (Prc) * Cos(Prc * 90)
   
   If Prc < 0.0 Then
      FreeEntity Cube\Entity
      Delete Cube
      Return True
   EndIf
End Function
BCubeCallback(Null, Null)

Function BCubeCreate.BObject(X#, Y#, Z#)
   Local Obj.BObject = New BObject
   Obj\DataCallback = fpBCubeCallback
   Local Cube.BCube = New BCube
   Cube\Entity = CreateSphere(2)
   Cube\PosX = X
   Cube\PosY = Y
   Cube\PosZ = Z
   Cube\Time = MilliSecs()
   Obj\DataValue = Int(Cube)
   
   Return Obj
End Function

While Not KeyHit(1)
   BObjectUpdate()
   
   ExampleUpdate()
   
   ; Space to create objects.
   If KeyHit(57) Then
      Local X#, Y#
      Local tX#, tY#, tZ#
      
      Local Radius# = 50
      For Y = 0 To 90 Step 9
         tY = Sin(Y)
         
         For X = -180 To 180 Step 18
            tX = (Cos(X) * Cos(Y))
            tZ = (Sin(X) * Cos(Y))
            
            BCubeCreate(tX * Radius, tY * Radius, tZ * Radius)
         Next
      Next
   EndIf
   
   ExampleLoop()
Wend

biggicekey

BeitragMo, Mai 11, 2015 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
coole sache!
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

Xaymar

ehemals "Cgamer"

Betreff: BlitzPointer released!

BeitragMi, Mai 13, 2015 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzPointer ist nun offiziell draußen: http://www.blitzbasic.com/Comm...pic=104556

user posted image user posted image user posted image user posted image]

Vertex

Betreff: Clap Jumper

BeitragMi, Sep 09, 2015 10:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mein altes Projekt namens Clap Jumper. Es geht darum zu zeigen, dass man Spiele auch ohne Maus, Joystick, Tastatur etc. steuern kann. Als Controller dient das Mikrofon. Durch Klatschen in die Hände springt der Spieler (die Kugel) nach vorn. Je lauter geklatscht wird, desto weiter springt er. Ziel ist es von der blauen zur roten Plattform zu gelangen.

Das Spiel wird unter GitHub gehostet: https://github.com/oliverskawronek/clap-jumper
user posted image
vertex.dreamfall.at | GitHub

Xaymar

ehemals "Cgamer"

BeitragMi, Dez 30, 2015 5:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Braucht jemand Variablen-pointer? Nein? Jetzt habt ihr die trotzdem:
user posted imageuser posted image

Weitere Infos dazu im BB-Forum: http://www.blitzbasic.com/Comm...pic=104556

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group