Regeneffekt in Echtzeit?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Frusciante

Betreff: Regeneffekt in Echtzeit?

BeitragDo, Mai 29, 2008 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ihr kennt doch sicherlich den Regeneffekt aus der Hilfe bei dem Befehl Dim ?! Allerdings ist der ja schon relativ rechenaufwendig und für Games nicht zu gebrauchen. Auch wenn man nicht Plot benutzt. Hättet ihr eine Idee wie man so einen Regeneffekt für ein Game lauffähig machen kann? Das einzige was mir eingefallen ist, ist dass man sich z.B. selbst eine Regenanimation malt. Beispielsweise in 10 Schritten. Müsste man dann jeden Regentropfen beim nächsten Schritt etwas weiter zeichnen. Dann Maskieren und die Animation immer durchlaufen lassen. Ich denke so sollte auch der Effeckt von Regen entstehen. Aber nicht gerade wenig Aufwand wenn man einen schönen Regen haben möchte.

Cardonic

BeitragDo, Mai 29, 2008 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht mit einer Grafik z.B. 100x100 Pixel mit den Regentropfen und dann mit TileImage zeichnen ...
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet.
 

Frusciante

BeitragDo, Mai 29, 2008 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, wie soll der Regen sich dann bewegen?

Cardonic

BeitragDo, Mai 29, 2008 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Zum Beispiel mit 2 Variabeln RegenX und RegenY.
Und dann in der Hauptschleiffe irgendwo
Code: [AUSKLAPPEN]
RegenY = (RegenY + Regenfallgeschwindigkeit) Mod BildHöhe
RegenX = (RegenX + Windgeschwindigkeit) Mod BildBreite
TileImage RegenBild, RegenX, RegenY
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet.

Shogo

BeitragDo, Mai 29, 2008 22:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Koenntest dir einen Regentropfen malen.
Die x und y Koordinaten der einzelnen Tropfen speicherst du in einem Type feld.

Vasriablen waeren etwas ungeeignet weil du ja nur 1 Koordinat speichern kannst.
 

Frusciante

BeitragDo, Mai 29, 2008 23:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@Shogo

Die Regentropfen sollen sich ja aber auch bewegen. D.h. ich müsste bei 100 Regentropfen schon wieder 100 schleifendurchläufe machen um jeden Tropfen zu bewegen.

@Cardonic

Sähe das dann nicht komisch aus? Ich meine dann würden sich doch alle Regentropfen mit dem immer gleichen Abstand genau gleich bewegen, oder sehe ich das falsch?

Shogo

BeitragDo, Mai 29, 2008 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt schon. Aber ich glaube nicht das, dass so viele Resourcen fressen wird ausser du hast noch nen Computer mit 233Mhz.
Habe sowas mal fuer ein BCC Spiel als netten Effekt eingebaut.
siehe hier

BladeRunner

Moderator

BeitragDo, Mai 29, 2008 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Tja, du musst dich für einen Kompromiss entscheiden. mach 2 oder 3 verschiedene Tropfenbilder mit mehreren Tropfen und variiere Fallgeschwindigkeit und Winkel für jedes Bild ein klein wenig - nicht mehr als ein paar Prozent. Das sollte halbwegs vernünftig aussehen.
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

orpheus_2003

Betreff: Hmm

BeitragFr, Mai 30, 2008 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir mal meinen Schnee, Water Effekt im Game an wenn du Lust hast.
Level 3,4,5
Das sieht dann schon echt aus.
Hab das ganze mit Sprites gelöst die sich untersch. schnell nach unten/oben bewegen.
Hardwaremässig ist da nichts zu spüren.....

Smile
GazerStar - the beginning
http://gazerstar.lexigame.de/
Wizard (Worktitel)
http://wizard.lexigame.de

TimBo

BeitragSa, Mai 31, 2008 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

wenn man Bilder malt, geht das schneller als wenn man mit Plot oder Line etc. Arbeitet.

Vll. könntest du ein Bild, mit 1x1 pix machen und das dann halt Zeichnen.

wäre nur so eine Idee muss selbst aber erstmal probieren wieviel schneller das ist.

Viele Grüße
TimBo

Edit:
Habe gerade ein Programm geschrieben, und bei 100 Bildern habe ich folgendes Ergebnis:
mit Plot 396 FPS
mit DrawImage 324 FPS

writepixelfast wird noch geschrieben *grins


Code: [AUSKLAPPEN]

x_af = Input("Geben sie die Vertikal max. Auflösung ein!   ")
y_af = Input("Geben sie die Horizontale max. Auflösung ein!   ")
anzahl = Input("Geben sie die Anzahl der Patikel ein!   ")
fenster = Input("Fenster = 2 ; Vollbild = 1   ")

Graphics x_af,y_af,32,fenster

Type regen
   Field x,y
End Type

Global regenimage
includeregen()

For i=1 To anzahl
   re.regen=New regen
   re\x=Rand(0,1280)-1
   re\y=Rand(0,1024)-1
Next

r=255
g=255
b=255
a=255


Global rgb=a*$1000000 + r*$10000 + g*$100 + b
rgb=a*$1000000 + r*$10000 + g*$100 + b

Repeat
   If KeyHit(28) Then mode=mode+1
   If mode>2 Then mode=0
   If mode=1 Then LockBuffer BackBuffer()
   
   For re.regen = Each regen
      Select mode
         Case 0
            DrawImage regenimage,re\x,re\y
         Case 1
            WritePixelFast re\x,re\y,rgb,BackBuffer()
         Case 2
            Plot re\x,re\y
      End Select
   Next
   
   If mode=0 Then Text 0,100,"DrawImage"
   If mode=1 Then UnlockBuffer BackBuffer():Text 0,100,"writepixelfast"
   If mode=2 Then Text 0,100, "plot"
   
   Color 255,0,0
   ms=MilliSecs():Text 0,60,fps+"FPS"
   If ms>mt Then mt=ms+502:fps=frame1:frame1=0 Else frame1=frame1+2
   Color 255,255,255
   
   
   Flip(0):Cls
Until KeyHit(1)


Function includeregen()
   regenimage = CreateImage(1,1)
   SetBuffer ImageBuffer(regenimage)
   Plot 0,0
   SetBuffer BackBuffer()
End Function
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group