Dark Bit Factory &  Gravity
		PROGRAMMING => Purebasic => Topic started by: ~Ar-S~ on March 17, 2018
		
			
			- 
				This is a small intro  to pay tribute to PSYGNOSIS and the superb AGONY on AMIGA. The most difficult was to recover and divert the SPRITES.
The archive contains some of the images (sprites and mod are in datasection), the code, the images.
Use Arrows to move the Owl.
EnJoY
			 
			
			- 
				I've never played the game before, but I like it haha. :)
			
 
			
			- 
				It's a beautiful and hard game, I've never finished it :/
It was one of the best pixel art at that time and I'm pretty sure still impressive for today's standards.
			 
			
			- 
				Nice! K++ for sharing the source.  :) 
			
 
			
			- 
				Great looking! Thanks for source share also!
			
 
			
			- 
				You may have just inspired me to dig out my old Psygnosis games and bash some buttons again.  I feel an small demo coming on... ;)
			
 
			
			- 
				
I feel an small demo coming on... ;)
Had a similar idea... :D
			 
			
			- 
				Been a bit busy lately but have managed to put together a little demo along similar lines as ~Ar-S~.  I've gone for a minimalist approach to colour on this one but it did start off very differently.  :-X
Written as usual in PB, standard libraries except the music library.
			 
			
			- 
				
Been a bit busy lately but have managed to put together a little demo along similar lines as ~Ar-S~.  I've gone for a minimalist approach to colour on this one but it did start off very differently.  :-X
Written as usual in PB, standard libraries except the music library.
Love those scrolling messages!  Sharing source?
			 
			
			- 
				
Been a bit busy lately but have managed to put together a little demo along similar lines as ~Ar-S~.  I've gone for a minimalist approach to colour on this one but it did start off very differently.  :-X
Written as usual in PB, standard libraries except the music library.
Love those scrolling messages!  Sharing source?
Well, as Matthew said 'Ask, and it shall be given you; seek, and ye. shall find...etc, etc'
Here's the circular scrolling code for that screen.  it will need to be adapted for whatever you want to do with it though.  No promises on how easy that will be  ;D
Code and font in the attached zip file here.  Enjoy.
 :cheers:
;Scrolling sprite circle demo code for DBF
;Author:	KrazyK
;Language:	PureBasic
;-This code was completely dreamt up after I decided to give this effect a try at last.
;-It works like this:
;[1] Calculate the x&y positions on a set circle size into an array.
;[2] Draw the scroll letters on a straight sprite for the scroller.
;[3] Clip the straight sprite, read the x & y positions from the array and draw the clipped scroller at those positions.
;I've written it this way as intended to do some additional effects to the scroller ssprite strip first before clipping it.
;In this example though no extra effects have been done.
;This piece of code has been taken directly from my Psy Demo so it is particular to that screen.
;Feel free to adapt it to whatever you need.
InitSprite()
#xres=800
#yres=600
OpenWindow(0,0,0,#xres,#yres,"Sprite Circle Test",#PB_Window_ScreenCentered|#PB_Window_WindowCentered|#PB_Window_BorderLess)
OpenWindowedScreen(WindowID(0),0,0,#xres,#yres)
StickyWindow(0,1)
ShowCursor_(0)
Global scroll$=Space(30)+"HI TO ALL AT DBFINTERACTIVE.COM  WELCOME TO MY LITTLE DEMO.  HOPE YOU LIKE IT.  :-)                    If YOU DON'T LIKE THIS FONT THEN YOU CAN SWITCH IT BY PRESSING THE RIGHT ARROW OR UP TO CHANGE THE RASTER ON THIS ONE       "
scroll$+"           THIS DEMO WAS INSPIRED AFTER SEEING THE INTRO BY ~AR-S~                     WHEN I SAW HIS PSYGNOSIS MINI INTRO I DECIDED TO DIG OUT MY OLD PSYGNOSIS GAMES AGAIN                                    AND THIS IS THE RESULT.                                 "
scroll$+"      I REMEMBER PLAYING SHADOW OF THE BEAST FOR HOURS BUT BEFORE THAT IT WAS BALLISTIX ON MY 520 STFM AND THOUGHT I'D TRY TO COPY IT FOR A FRIEND ONLY TO DISCOVER IT WAS COPY PROTECTED AND DIDN'T HAVE ANY FILES"
scroll$+" ON THE DISK!!      HOW BLOOY STRANGE I TOUGHT..I WONDER HOW THAT WORKS?       8 HOURS LATER IT WAS CRACKED, FILED AND RE-PACKED A LOT SMALLER."
scroll$+"    MY FIRST EVER GAME CRACK AND I STILL HAVE THE ORIGINAL 68000 FILING AND CRACKING CODE TO HAND."
scroll$+"             I NEVER MANAGED TO CRACK BLOOD MONEY THOUGH AS THAT WAS QUITE A TRICKY ONE IF I REMEMBER CORRECTLY"
scroll$+"            ANYWAY, ENOUGH RAMBLING FOR ONE DAY............                     WRAP   WRAP   WRAP   WRAP   WRAP   WRAP   WRAP   WRAP  WRAP   WRAP"
scroll$+Space(35)
scroll$=UCase(scroll$)
Global xmove=0
Global Letter=1
Global speed=4
Global xp.f,yp.f,movex.f,movexangle.f
CatchImage(0,?font)
CreateSprite(999,800*2,32)	;-draw scroller on here in case you want to something else to it before clipping it
#fontdim=32			;font width & height
;{- Init circle stuff here 
#cmax=360			;how many points in our circle
Global stp.f=(#PI*2)/#cmax	;gap between each point
Global Radius=196
Structure Circ
	xpos.f
	ypos.f
EndStructure
Global CircStep.F=0
Global Dim Circ.Circ(#cmax)
A=0
;calculate the initial x & y positions on the circle
Repeat
	CircStep.F+stp.F
	Circ(A)\xpos=-Sin(CircStep)*Radius
	Circ(A)\ypos=Cos(CircStep)*Radius
	A+1
Until A>=#cmax
Structure FontAngle
	Char.L
EndStructure
Global Dim FontAngle.FontAngle(Len(scroll$))
For c=0 To Len(scroll$)
	FontAngle(c)\Char=c*9	;set initial angle
Next c
;}
Procedure DrawSpriteCircle()
;- Draw scrolltext on straight sprite first
	StartDrawing(SpriteOutput(999))
For A=0 To 34
	a$=Mid(scroll$,A+Letter,1)		
	AVAL=Asc(a$)-32
	If AVAL<0 Or AVAL>Asc("Z"):AVAL=0:EndIf		;only clip valid letters
	GrabImage(0,888,AVAL*#fontdim,0,#fontdim,#fontdim)
	DrawImage(ImageID(888),xmove+(A*#fontdim),0)	
Next A
StopDrawing()
;move left off the 'screen'
xmove-speed
If xmove=-64:xmove=-32:Letter+1:EndIf
If Letter>Len(scroll$):xmove=0:Letter=1:EndIf
;-move the circle around the screen
movexangle.f+0.02		;circle x speed across the screen.
movex.F=196*Sin(movexangle)
;-draw scroll text on screen now by clipping the straight scroll sprite
For A=0 To 34
	ClipSprite(999,A*#fontdim,0,#fontdim,#fontdim)		;-grab 1 letter from the scroller sprite
	Char=FontAngle(A)\Char
	xp.F=Circ(Char)\xpos+400-16	;get the x position from the array
	yp.F=Circ(Char)\ypos+420	;get the y position from the array
	If yp<470			;-only draw the letter if it is above this level as in my Psy Demo
		RotateSprite(999,Char+180,#PB_Absolute)
		DisplayTransparentSprite(999,xp+movex,yp)
	EndIf
Next A
EndProcedure
Repeat
	event=WindowEvent()
	ClearScreen(0)
	
	DrawSpriteCircle()
	
	FlipBuffers()
	
Until GetAsyncKeyState_(#VK_ESCAPE)
DataSection
font:	:IncludeBinary "ics_font.bmp"	
;font:	:IncludeBinary "linefont.bmp"	
	
EndDataSection
			 
			
			- 
				Thanks for share!
			
 
			
			- 
				I may have missed the boat a bit, but my Psygnosis tribute demo should be coming soonish!  New music written using the original samples from Shadow of the Beast, updated graphics almost complete... now just to piece it all together!
			
 
			
			- 
				
Been a bit busy lately but have managed to put together a little demo along similar lines as ~Ar-S~.  I've gone for a minimalist approach to colour on this one but it did start off very differently.  :-X
Written as usual in PB, standard libraries except the music library.
Nice work on this one!
Oldschool vibe approved  :cheers:
			 
			
			- 
				I love that forum  :cheers: