Art kleiner Bildschirmschoner

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Peter1964

Betreff: Art kleiner Bildschirmschoner

BeitragMi, Nov 25, 2015 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute



Vor tausende von Jahren hatte ich ein bischen auf ein VC64 Comodore in Basic programmiert

Nun, mein erster Versuch in Blitzbasic 3D
Zu meiner Schande habe ich auch noch Goto benutzt. Cool
Ansonsten ist das Programm als solches lauffähig
alle Objekte werden im Programm selbst erzeugt.

tschüss


hier das Listing



BlitzBasic: [AUSKLAPPEN]
Graphics3D 1280, 720, 32

Dim cube(30) ,cx#(30), cy#(30) ,cz#(30), cxx#(30), cyy#(30) ,czz#(30)

For a=0 To 29
czz#(a)=0.05
Next


For a=0 To 29
cx#(a)=-5 : cy#(a)=-4
hilfxx#=Rnd(3,12) : hilfyy#=Rnd(3,12)
cxx#(a)=hilfxx#/100 : cyy#(a)=hilfyy#/100
Next

cz#(0)=2.8 : cx#(0)=0 : cy#(0)=0

For a=1 To 29
cz#(a)=3
Next



Dim x(60),y(60),xx(60),yy(60),ball(60)
zeit=0 : anzahl=1 anzahlcube=0




cubex#=0:cubey#=0:cubez#=0

For a=0 To 59
x(a)=0 : y(a)=0 :
xx(a)=Rnd(3,12): yy(a)=Rnd(3,12)
If xx(a)=yy(a) Then xx(a)=xx(a)+1 ; Zufällige Geschwindigkeit der einzelnen Bälle
Next


camera = CreateCamera()
light = CreateLight()

;Bälle malen
For a=0 To 59

ball(a) = CreateImage (100,100)
SetBuffer ImageBuffer (ball(a))
Color Rnd(60,255),Rnd(60,255),Rnd(60,255) ; jeder ball andere zufallsfarbe
Oval 0, 0, 100, 100, 1
Next

texture = CreateTexture(1024,1024,256) ;256 für speichern in V-Ram

For a=0 To 29
cube(a) = CreateCube()
EntityTexture cube(a), texture
Next




While Not KeyHit(1)

SetBuffer TextureBuffer(texture)
Cls
ClsColor 50,50,100
For a=1 To anzahl
DrawImage ball(a),x(a),y(a)
x(a)=x(a)+xx(a)
y(a)=y(a)+yy(a)
If x(a)<0 Or x(a)>924 Then xx(a)=xx(a)*-1
If y(a)<0 Or y(a)>924 Then yy(a)=yy(a)*-1
Next
If anzahlcube=29 Then Gosub cubebewegung: Goto peter2
If zeit=1800 Then anzahlcube=anzahlcube+1:zeit=zeit-35:Gosub cubebewegung : Goto peter1
If zeit>1749 And zeit<1800 Then Gosub cubebewegung: Goto peter1
If cz#(0)=>8 Then Goto peter1
If zeit=1500 Then cz#(0)=cz#(0)+0.01 :Goto peter2
If zeit=1200 Then cubex#=1:cubey#=0.5:cubez#=1:Goto peter1
If anzahl=59 Then zeit=zeit+1:Goto peter2

If zeit=300 Then anzahl=4
If zeit=600 Then anzahl =8
If zeit=900 Then anzahl=anzahl+1:zeit=zeit-10
.peter1
zeit=zeit+1
.peter2
SetBuffer BackBuffer()
For a=0 To anzahlcube
TurnEntity Cube(a),cubex#,cubey#,cubez#
PositionEntity cube(a), cx#(a),cy#(a),cz#(a)
Next

RenderWorld
Flip
Wend
End


.cubebewegung
For a=0 To anzahlcube
cx#(a)=cx#(a)+cxx#(a)
cy#(a)=cy#(a)+cyy#(a)
cz#(a)=cz#(a)+czz#(a)
If cx#(a)<-7 Or cx#(a)>7 Then cxx#(a)=cxx#(a) *-1
If cy#(a)<-6 Or cy#(a)>6 Then cyy#(a)=cyy#(a) *-1
If cz#(a)<3 Or cz(a)>35 Then czz#(a)=czz#(a) *-1

Next
Return


~EDITIERT~

Code-Tags hinzugefügt.
MfG, Holzchopf

Xeres

Moderator

BeitragMi, Nov 25, 2015 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe nichts gegen kleine Grafikspielereien, aber die Qualität & Präsentation überzeugt mich noch nicht.
Was sollte ich vor dem Posten meiner Codes beachten?
Zitat:
Sollte es sich um Grafikspielereien handeln so sind Screenshots gerne gesehen
Beiträge, die nur mit B+ oder B3D funktionieren sind mit "[B+]" bzw. "[B3D]" im Titel zu kennzeichen
Codes sind ordentlich zu formatieren, Kommentare sind erwünscht!


Bitte bereite den Beitrag noch etwas auf - danke!
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)

Mathias-Kwiatkowski

BeitragDo, Nov 26, 2015 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
also er hätte erwähnen sollen das man mindestens 3 min schauen muss...

weil es passiert mehr als 2d farben spotts Very Happy
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Holzchopf

Meisterpacker

BeitragDo, Nov 26, 2015 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
3 Minuten? Shocked Ich sehe, der Code ist nicht frame-unabhängig und verwendet nicht einmal einen Timer. Der läuft auf jedem Computer anders. Besonders auffällig, wenn man ihn zu Testzwecken in den Fenstermodus bugsiert (weil Vollbild 1280x720 nicht Jedermanns Sache ist), wo je nach System- und Grafikkarten-Einstellungen vsync nichts mehr zu sagen hat.

Peter: Ich empfehle dir die Threads Frameunabhängig programmieren (alternativ: Dieses ausführliche Tutorial von MidiMaster) und Hurra, 100 % Auslastung Wink

MfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Mathias-Kwiatkowski

BeitragDo, Nov 26, 2015 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh Naja habe mir den Code nicht angesehen. Nur Kopie paste und f5
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group