Game Basic - Epyx FX Lib

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Wegen dem Screenfading nochmal... wie müßte denn der Code aussehen, wenn man z.B. ein Introbild ein- und wieder ausblenden will?

Code: Alles auswählen

InitSprite():InitSprite3D():InitKeyboard():EP_InitFXLib()

OpenScreen(800,600,32,"Screenfader")

EP_InitFading(RGB(0,0,0),2.5):EP_SetFadeState(2)

Repeat
  
  ExamineKeyboard():ClearScreen(0,0,0)

  ; Introbild
   
  FlipBuffers()
  
Until KeyboardReleased(1)

EP_FadeScreen(1)
EP_SetFadeColor(RGB(0,0,0))

Delay(irgendwas)

End
Benutzeravatar
Epyx
Beiträge: 247
Registriert: 29.08.2004 01:40
Computerausstattung: AMD64 X2 DualCore 6000+ , 3GB Ram , WinXP sp3
2x Ati Radeon HD4800 ~ CrossFireX
Kontaktdaten:

Beitrag von Epyx »

@SOS

Wow :o da hast du dir aber mühe gegeben das sieht super aus, darf ich die Datei dem Paket dazu tun?? Die 500 Balls sind übrigens nur ne künstliche Grenze mehr sind natürlich auch möglich hätte nur nicht gedacht das man wirklich an die 500 Bälle kommt <g> die sperre werde ich entfernen.

Ich habe ein paar neue Befehle geschrieben ua. auch für 3D Balls, man kann nun Bälle setzen und auch das objekt abspeichern wenn man mag. Und was wichtiges was ich vergessen hatte, nun kann man die Objekte auch aus dem Speicher Catchen.

Die Werte in den Objekt Dateien bedeuten folgendes....

Xpos, Ypos, ZPos, der 3D Ball :) , Größe , Transparenz (0 ist voll sichtbar/also umgekehrt als in PB)

Nen Editor habe ich dafür nicht, da musste bis jetzt Notepad für herhalten, hast du etwa einen Editor für sowas ???

@Delle
Klar schimmern die Sterne durch, das Programm blendet ja ständig und ohne Pause ein und wieder aus. Da sind es nur ein paar millisekunden wo alles verdeckt ist. Ersetz mal die Hauptschleife in dem Beispiel mit folgenden Code, dann macht er nach dem Ausblenden 1 sek Pause.

Code: Alles auswählen

Repeat
  ClearScreen(0,0,20)

  ; Draw some Stars, anything to move on our Screen
  EP_2DStarsDraw()
  

  ; Now Let the Screen Fade
  X=EP_FadeScreen(Richtung)
  If X=-2 : Richtung=1 : 
     ; Uh Screen is Fadet out, start again with a random Color
     EP_SetFadeColor(RGB(Random(255),Random(255),Random(255)))
  EndIf
  
  ; Screen full fadet, now Fade out again
  If X= 2 : Delay(1000) : Richtung=0 :   EndIf
 
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardReleased(1)
Ich habe da einfach nur ein Delay(1000) reingesetzt damit es besser sichtbar ist das alles ausgeblendet wurde. Ist auch nur zum verdeutlichen!

Hier habe ich übrigens auch optionale Bildschirm Bereiche zugefügt so das man nicht zwingend den kompletten Bildschirm Umblenden muss.
If you can't make it good, at least make it look good.
Bill Gates
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Hm, wieso fadet das immer mit grün irgendwie rum?

Obwohl ich alles auf "black" festgelegt habe:

Code: Alles auswählen

ClearScreen(0,0,0)
EP_SetFadeColor(RGB(0,0,0))
Hier habe ich übrigens auch optionale Bildschirm Bereiche zugefügt so das man nicht zwingend den kompletten Bildschirm Umblenden muss.
Und wo kann man das einstellen?
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

Epyx hat geschrieben:
darf ich die Datei dem Paket dazu tun??
Ja sicher ;)

Nen Editor (fast) habe ich dafür,man muss aber ne menge per Hand nacharbeiten :freak: bzw ich habe mir ein kleines Programm geschrieben das die Daten ,die mir der Editor ausgibt,bearbeitet.

Also alle Werte (x,y,z) *30 oder was auch immer und die fehlenden Daten (Grösse usw.) dazu und fertig ;)

/edit

achso,mein 1. Objekt hatte sogar über 800 Punke und wurde unvollständig angezeigt,beim 2. Versuch bin ich dann unter 500 geblieben da ich mir schon gedacht habe das ne Grenze bei 500 eingebaut ist.


/edit2

hier sind noch 3 weitere objecte

http://people.freenet.de/n83u13/PB3.obj
http://people.freenet.de/n83u13/PB4.obj
http://people.freenet.de/n83u13/PB5.obj

und der modifizierte code für die anzeige

Code: Alles auswählen

;#*************************************************************#
;*                                                             *
;*       Vector Balls Example by Epyx / Epyx_FXLib v1.0        *
;*                                                             *
;#*************************************************************#

InitSprite()
InitSprite3D()
InitKeyboard()
EP_InitFXLib()
#XRES=800
#YRES=600
;OpenScreen(640,480,16,"3D Balls Effect - Epyx FXLib")
hwnd=OpenWindow(1,0,0,#XRES,#YRES,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,";)")
AddKeyboardShortcut(1, #PB_Shortcut_Escape, #PB_Shortcut_Escape)
X=OpenWindowedScreen(hwnd,1,0,#XRES,#YRES,1,0,0)
 UsePNGImageDecoder()

 ;Load a Vector Ball Object
 EP_LoadBallObject("objects/PB3.obj")

 ;Okay get some 3D Ball GFX
 EP_Load3DBall(5,"Bobs/Bob64_Bubble.png")
 EP_Load3DBall(3,"Bobs/Bob64_SnowBall.png")
 EP_Load3DBall(2,"Bobs/Bob64_BlueChrome.png")
 EP_Load3DBall(1,"Bobs/Bob64_Bubble.png")
 EP_Load3DBall(4,"Bobs/Bob64_Fussball.png")
 EP_Load3DBall(0,"Bobs/Bob64_RedChrome.png")

 
 ;Set the Object a bit forward in the space
 EP_SetBallZPos(800)
 EP_SetBallXPos(-100)
 EP_SetBallYPos(-100)
 ; Rotate the Object
 EP_SetBallXRotation(2)
 EP_SetBallYRotation(1)
 EP_SetBallZRotation(3)
 
 ; Yes a tiny starfield is a must be
 EP_Init3DStarfield(200,50)

 z.f=0

Repeat
  WindowEvent()
  ClearScreen(0,0,20)
  z+ 0.01
  ; Show Starfield
  EP_DisplaySpritefield(0,1)
  EP_SetBallZPos(1100-Abs(1050.0*Sin(z)))
  ; Show the Balls Object
  EP_DrawBallObject()
 
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardReleased(1)
CloseScreen() 
End
Benutzeravatar
Epyx
Beiträge: 247
Registriert: 29.08.2004 01:40
Computerausstattung: AMD64 X2 DualCore 6000+ , 3GB Ram , WinXP sp3
2x Ati Radeon HD4800 ~ CrossFireX
Kontaktdaten:

Beitrag von Epyx »

WoW sehen mal wieder alle super aus, die packe ich auch noch dazu wenns Recht ist :D

@Delle
Sieh dir mal mein Beispiel Programm an, da habe ich 3 Bild nach einander
Einblenden lassen :)

Http://www.FlashArts.de/files/PictureFX.zip
If you can't make it good, at least make it look good.
Bill Gates
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Yeah, it works! ;) :allright:

Jetzt mußt Du mir nur noch erklären, warum immer so ein Grünstich dabei ist? Und wie man den kompletten Screen faden kann und nicht nur 3/4?
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

Epyx hat geschrieben: die packe ich auch noch dazu wenns Recht ist :D
Ich werde Dich nicht davon abhalten. ;)

Einen habe ich noch.

http://people.freenet.de/n83u13/stern.obj

Ich muss mal schauen ob ich was besseres finde,das ist echt umständlich
sowas zu erstellen,ohne passende Tools.
Und mit Notepad werde ich erst garnicht anfangen. :mrgreen:
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Beitrag von dige »

Hmm, also die meisten FX funktionieren auch mit 32Bit, aber der Plasma
Effect läuft nicht mit 1600x1200x32 ...
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
Epyx
Beiträge: 247
Registriert: 29.08.2004 01:40
Computerausstattung: AMD64 X2 DualCore 6000+ , 3GB Ram , WinXP sp3
2x Ati Radeon HD4800 ~ CrossFireX
Kontaktdaten:

Beitrag von Epyx »

Bei mir läuft es noch bei 2048 * 1536 32Bit, zwar nur mit 80FPS und FrameBuffer(0) aber läuft, hängt wohl auch ein bischen vom System ab ??!
If you can't make it good, at least make it look good.
Bill Gates
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Also ich hab weiter mit dem Fading probiert -> Null Erfolg!

1) Der Screen wird nicht in voller Höhe eingefadet
2) Das Ganze hat immer einen Grünstich
3) Die Logik dahinter versteh ich nicht mit Richtungen usw.
4) Beispiel für Introbild auf schwarz ein/ausblenden funzt nicht

Ich verstehe auch nicht warum das Ganze so kompliziert sein muss.

Wieso nicht auch sowas: ScreenFadeOut(1000,RGB(0,0,0)):Delay(1000)
Antworten