cbEnchanted - uudelleenkirjoitettu runtime

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by valscion »

:shock: Nyt olen varma siitä että oli hyvä ajatus uhrata paljon aikaa cbE:lle.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by axu »

VesQ wrote::shock: Nyt olen varma siitä että oli hyvä ajatus uhrata paljon aikaa cbE:lle.
Kiva kuulla :D
Vaikka tämä esitteleekin cbe:n ominaisuuksia hyvin, koodia lukevalle se myös esittelee cbe:n bugeja...
Listaan tähän huvin vuoksi bugeja, jotka aiheuttivat päänvaivaa eniten:
  • 86: tämä aiheutti ihan kivasti päänvaivaa, että sain sen ukon kohdalleen. Tämän takia en jaksanut ruveta lisäämään vihuja ym. ihmeellisyyksiä. Käytännössä itse objekti piilotetaan ja ruutuun piirretään toinen kuva, josta seuraa yhdessä Smooth2D:n kanssa...
  • 83: ruudun taustaväri on valkoinen muutamia efektejä varten, ja etenkin yöllä ukon reunoista "näkyy läpi", tuloksena valkoinen rajaus hahmolle (tämän olisi tietty voinut kiertää piirtämällä ukon jälkikäteen, mutta se idea tuli liian myöhään :D ). Tämä aiheutti myös paljon päänvaivaa osaksi läpinäkyvien kuvien tekemisessä, kunnes keksin, että kuvan voi alustaa läpinäkyväksi cbeClsColor(0, 0, 0, 0).
  • 88: onnistuin laatimaan kuitenkin CurveAnglelle toimivan korvikkeen, vaikka miettimistä se kyllä vaati :P
Näiden lisäksi koordinaattien muuttaminen pyöritetyllä ruudulla oli oma numeronsa (vaikka yllättävän helposti onnistui). Kertokaas muuten millä FPS:llä pyörii teillä?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by Awaclus »

axu wrote:Tulipa taas päivä hukattua... mutta tervetuloa tulevaisuuteen! (tai ehkä nykyaikaan :D)

Code: Select all

Const SW = 800
Const SH = 600
Const SpyOverlayQ = 32      //Kiikarikuvan laatu, suurempi huonompi (eroa ei juurikaan huomaa, kun Smooth2D on päällä)
Const NightOverlayQ = 2     //Yökiikarikuvan laatu, tässä eron huomaa selvemmin

Const MaxZoom = 2           //Tämä määrää, kuinka kauaksi voidaan zoomata (2 = ruudulla voi näkyä 2x tavalliseen nähden)
Const NormZoom = 1          //Kuinka zoomattu ruutu on tavallisesti
Const SpyZoom = 2           //Kuinka zoomattu ruutu on kiikareilla

Const NormLookForward = 100 //Kuinka kauaksi eteenpäin katsotaan tavallisesti
Const SpyLookForward = 500  //Kuinka kauaksi eteenpäin katsotaan kiikareilla

Const DayLenght = 90000     //Päivän pituus millisekunneissa (90000 = puolitoista minuuttia)

Smooth2D ON
SCREEN SW, SH
SetWindow "cbe Tech Demo by aXu"
Print "Screen size: " + SW + "x" + SH


Font = LoadFont("Arial", 20, True)
SetFont Font

Map = LoadMap("Media/cdm2.til", "Media/tileset.bmp")
PlayObject Map, 0, 0, 0.5
ObjectPickable Map, ON

Guy = LoadObject("Media/soldier.bmp")
TurnObject Guy, 90
SetupCollision Guy, map, 2, 4, 2

GuyImg = LoadImage("Media/soldier.bmp")

Crosshair = LoadImage("Media/target.bmp")

DefaultMask OFF
sx = RoundUp(Float(SW) / SpyOverlayQ)
sy = RoundUp(Float(SH) / SpyOverlayQ)
SpyOverlay = MakeImage(sx, sy)

Print "SpyOverlay size: " + sx + "x" + sy
DrawToImage SpyOverLay
	cbeClsColor(0, 0, 0, 0)
	Cls
	For x = 0 To SW - 1
		For y = 0 To SH - 1
			dst1# = Distance(x, y, SW / 2 - 150 * (SW / 800.0), SH / 2)
			dst2# = Distance(x, y, SW / 2 + 150 * (SW / 800.0), SH / 2)
			gamma = Min(255, Min(dst1, dst2) / (SW / 800.0))
			cbeColor(255 - gamma, 255 - gamma, 255 - gamma, gamma)
			Dot x / SpyOverlayQ, y / SpyOverlayQ
			
			y = Min(SH - 1, y + SpyOverlayQ - 1)
		Next y
		x = Min(SW - 1, x + SpyOverlayQ - 1)
	Next x
DrawToScreen

sx = RoundUp(Float(SW) / NightOverlayQ)
sy = RoundUp(Float(SH) / NightOverlayQ)
NightOverlay = MakeImage(sx, sy)
Print "NightOverlay size: " + sx + "x" + sy
DrawToImage NightOverlay
	cbeClsColor(0, 0, 0, 0)
	Cls
	For x = 0 To SW - 1
		For y = 0 To SH - 1
			gamma = y Mod 10
			ran = Rand(70)
			cbeColor(gamma * 10 + ran, gamma * 25 + ran, gamma * 10 + ran, 40 + gamma * 10 + ran / 2)
			Dot x / NightOverlayQ, y / NightOverlayQ
			
			y = Min(SH - 1, y + NightOverlayQ - 1)
		Next y
		x = Min(SW - 1, x + NightOverlayQ - 1)
	Next x
DrawToScreen


ScreenSize = Sqrt(SW^2 + SH^2) * MaxZoom
Buffer = MakeImage(ScreenSize, ScreenSize)
Print "Image buffer size: " + ScreenSize + "x" + ScreenSize + " (maximum scaling: " + MaxZoom + ")"

Dim NewCamX#, NewCamY#, NewCamA#, NewCamZ#, SpyingOpacity#
Global Zoom#
Zoom = 0.5
DrawRotated = True

CurrentFrame = Timer()
Repeat
	Repeat
		//Pelimekaniikka:
		If KeyHit(cbKeyZ) Then OldAngle# = ObjectAngle(Guy)
		If KeyDown(cbKeyZ) Then //Kiikarit
			vx# = Max(-150, Min(150, vx + (KeyDown(cbKeyRight) - KeyDown(cbKeyLeft)) * 2))
			vy# = Max(-150, Min(150, vy + (KeyDown(cbKeyUp) - KeyDown(cbKeyDown)) * 2))
			CamOffSetX = Cos(CameraAngle()) * vx - Sin(CameraAngle()) * vy
			CamOffSetY = Sin(CameraAngle()) * vx + Cos(CameraAngle()) * vy
			
			RotateObject Guy, GetAngle(ObjectX(Guy), -ObjectY(Guy), CameraX(), -CameraY())
			ObjectPick Guy
			If PickedObject() Then
				TargetX = WToSX(PickedX(), PickedY())
				TargetY = WToSY(PickedX(), PickedY())
				ShowLaser = True
			EndIf
			
			SpyingOpacity = CurveValue(255, SpyingOpacity, 30)
			
			NewCamX = ObjectX(Guy) + Cos(OldAngle) * SpyLookForward + CamOffSetX
			NewCamY = ObjectY(Guy) + Sin(OldAngle) * SpyLookForward + CamOffSetY
			NewCamA = OldAngle - 90
			NewCamZ = SpyZoom
		ElseIf KeyDown(cbKeyX) //Uloszoomaaminen
			vx# = (KeyDown(cbKeyRight) - KeyDown(cbKeyLeft))
			vy# = (KeyDown(cbKeyUp) - KeyDown(cbKeyDown))
			an# = GetAngle(0, 0, vx, -vy)
			sp# = Min(0.4, Distance(0, 0, vx, vy))
			TranslateObject guy, Cos(an) * sp, Sin(an) * sp
			
			ObjectPick Guy
			If PickedObject() Then
				TargetX = WToSX(PickedX(), PickedY())
				TargetY = WToSY(PickedX(), PickedY())
				ShowLaser = False
			EndIf
			
			SpyingOpacity = CurveValue(0, SpyingOpacity, 30)
			
			NewCamX = ObjectX(Guy)
			NewCamY = ObjectY(Guy)
			NewCamA = 0
			NewCamZ = 1.0 / MaxZoom
		Else //Tavallinen
			vx# = 0
			vy# = 0
			
			TurnObject guy, (KeyDown(cbKeyLeft) - KeyDown(cbKeyRight)) * 1
			MoveObject guy, KeyDown(cbKeyUp) - KeyDown(cbKeyDown) * 0.7
			
			ObjectPick Guy
			If PickedObject() Then
				TargetX = WToSX(PickedX(), PickedY())
				TargetY = WToSY(PickedX(), PickedY())
				ShowLaser = False
			EndIf
			
			SpyingOpacity = CurveValue(0, SpyingOpacity, 30)
			
			NewCamX = ObjectX(Guy) + Cos(ObjectAngle(Guy)) * NormLookForward
			NewCamY = ObjectY(Guy) + Sin(ObjectAngle(Guy)) * NormLookForward
			NewCamA = ObjectAngle(Guy) - 90
			NewCamZ = NormZoom
		EndIf
		
		
		PositionCamera CurveValue(NewCamX, CameraX(), 40), CurveValue(NewCamY, CameraY(), 40)
		RotateCamera CurveAngle2(NewCamA, CameraAngle(), 20)
		Zoom = CurveValue(NewCamZ, Zoom, 50)
		
		CurrentFrame = CurrentFrame + 5
	Until CurrentFrame > Timer()
	
	TimeOfDay# = Float((Timer() + DayLenght / 2) Mod DayLenght) / DayLenght * 24
	
	DrawToImage Buffer
		ClsColor 0, 0, 0
		Cls
		GhostObject Guy, 0
		DrawGame
		cbeColor(255, 255, 255, 255)
		cbeDrawTintedScaledRotatedImage(GuyImg, ScreenSize/2 + ObjectX(Guy) - CameraX(), ScreenSize/2 + CameraY() - ObjectY(Guy), 1, 1, -ObjectAngle(Guy))
	DrawToScreen
	
	
	//Taustavalaistus, riippuu vuorokaudenajasta:
	AmbiR = 255
	AmbiG = 255
	AmbiB = 255
	AmbiA = 255
	//Yön pimeys (ilta 6 - aamu 6)
	If Abs(TimeOfDay - 12) > 6 Then
		tmp = 100 + Cos((12 - Abs(TimeOfDay - 12)) * 30) * 100
		AmbiR = AmbiR - tmp
		AmbiG = AmbiG - tmp
		AmbiB = AmbiB - tmp / 1.5
	EndIf
	
	//Illankajo (ilta 5 - ilta 11)
	If Abs(TimeOfDay - 20) < 3 Then
		tmp = 50 + Cos(Abs(TimeOfDay - 20) * 60) * 50
		AmbiR = AmbiR + tmp / 4
		AmbiG = AmbiG - tmp / 2
		AmbiB = AmbiB - tmp
	EndIf
	
	//Aamuhämärä (aamu 6 - aamu 12)
	If Abs(TimeOfDay - 9) < 3 Then
		tmp = 20 + Cos(Abs(TimeOfDay - 9) * 60) * 20
		AmbiR = AmbiR - tmp
		AmbiG = AmbiG - tmp
		AmbiB = AmbiB - tmp
		AmbiA = AmbiA - tmp
	EndIf
	
	NightLook# = CurveValue((SpyingOpacity > 200) * Abs(TimeOfDay - 12) > 9, NightLook, 20)
	AmbiG = AmbiG + NightLook * 100
	AmbiA = AmbiA - NightLook * 100
	
	//Piirretään maailma värjättynä ambientilla valolla (läpinäkyvyys aiheuttaa valkoista, tausta on valkoinen
	cbeColor(AmbiR, AmbiG, AmbiB, AmbiA)
	cbeDrawTintedScaledRotatedImage(Buffer, SW/2, SH/2, Zoom, Zoom, CameraAngle())
	
	//Laser
	cbeColor(255, 0, 0, 32)
	FatLine(WToSX(ObjectX(Guy), ObjectY(Guy)), WToSY(ObjectX(Guy), ObjectY(Guy)), TargetX, TargetY, Zoom + .5)
	//Tähtäin
	cbeColor(255, 255, 255, 192)
	cbeDrawTintedScaledRotatedImage(Crosshair, TargetX, TargetY, 1, 1, Timer() / 10)
	
	//Yökiikarin raidat
	cbeColor(0, NightLook * 255, 0, SpyingOpacity * NightLook)
	cbeDrawTintedScaledRotatedImage(NightOverlay, SW/2, SH/2, NightOverlayQ)
	//Kiikari
	cbeColor(0, NightLook * 255, 0, SpyingOpacity)
	cbeDrawTintedScaledRotatedImage(SpyOverlay, SW/2, SH/2, SpyOverlayQ)
	
	
	
	cbeColor(255, 255, 255, 192)
	Text 0, 0, "Use arrows to move around, Z to spy, X to zoom out."
	Text 0, 20, "FPS: " + FPS() + " (max 200)"
	Text 0, 40, "Clock: " + RoundDown(TimeOfDay) + ":" + RoundDown(TimeOfDay Mod 1 * 60)
	ClsColor 255, 255, 255
	Wait CurrentFrame - Timer()
	DrawScreen
Forever

Function WToSX(X#, Y#)
	X = (X - CameraX()) * Zoom
	Y =-(Y - CameraY()) * Zoom
	A# = GetAngle(0, 0, X, Y) - CameraAngle()
	D# = Distance(0, 0, X, Y)
	
	Return Cos(A) * D + SW/2
EndFunction

Function WToSY(X#, Y#)
	X = (X - CameraX()) * Zoom
	Y =-(Y - CameraY()) * Zoom
	A# = GetAngle(0, 0, X, Y) - CameraAngle()
	D# = Distance(0, 0, X, Y)
	
	Return -Sin(A) * D + SH/2
EndFunction

Function CurveAngle2(newA#, oldA#, smooth#)
	newA = WrapAngle(newA + 180)
	ADiff# = oldA - newA + 180
	While ADiff > 180
		ADiff - 360
	Wend
	While ADiff < -180
		ADiff + 360
	Wend
	Return (oldA - ADiff / smooth)
EndFunction

Function FatLine(X1#, Y1#, X2#, Y2#, Thickness#)
	For x = -RoundDown(Thickness / 2) To RoundUp(Thickness / 2)
		For y = -RoundDown(Thickness / 2) To RoundUp(Thickness / 2)
			Line X1 + x, Y1 + y, X2 + x, Y2 + y
		Next y
	Next x
EndFunction


Function cbeColor(r, g, b, a)
    group = 1
    funcId = 2
EndFunction

Function cbeClsColor(r, g, b, a)
    group = 1
    funcId = 3
EndFunction

Function cbeDrawTintedScaledRotatedImage(img, toX#, toY#, scaleX# = 1, scaleY# = 0, angle# = 0)
	If scaleY = 0 Then scaleY = scaleX
	cbeDrawTintedScaledRotatedImageBox(img, 0, 0, ImageWidth(img), ImageHeight(img), toX, toY, scaleX, scaleY, angle)
EndFunction

Function cbeDrawTintedScaledRotatedImageBox(img, startX As Float, startY As Float, width As Float, height As Float, toX As Float, toY As Float, scaleX As Float, scaleY As Float, angle As Float)
    group = 1
    funcId = 6
End Function
EDIT:

Pieni muutos, pyörii sulavammin. Niin ja tässä tosiaan löytyy myös yökiikarit, kun painaa Z:aa yön aikana.

Vau. Tämä lienee hienointa, mitä pitkiin aikoihin olen tällä foorumilla nähnyt ("tähän" kokonaisuuteen kuuluu siis cbEnchanted + tämä koodinpätkä yhdessä).
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by Sly_Jack0 »

axu wrote:Tulipa taas päivä hukattua... mutta tervetuloa tulevaisuuteen! (tai ehkä nykyaikaan :D)
Itselläni näkyy vain musta ruutu.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by axu »

Sly_Jack0 wrote:
axu wrote:Tulipa taas päivä hukattua... mutta tervetuloa tulevaisuuteen! (tai ehkä nykyaikaan :D)
Itselläni näkyy vain musta ruutu.
Onko käytössä cbEnchanted?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by valscion »

Jos ette jaksa ladata cbEnchantedia niin tässä olisi viime julkaisun avulla luotu exe. Ajakaa se CoolBasicin kansiosta, koska se tarvitsee CB:n mukana tulleita oletusmedioita.

EDIT: Olin vain niin laiska etten jaksanut pakata medioita mukaan :)
Attachments
axu_owned.zip
(928.7 KiB) Downloaded 336 times
Last edited by valscion on Mon Jun 11, 2012 9:43 pm, edited 1 time in total.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by axu »

Ne jotka eivät jaksa ladata niinkään hienoa asiaa kuin cbe:tä eivät varmaan jaksa etsiä sitä mediakansiota. Tässä paketissa siis myös media, eli puraise ja juokse!
Attachments
cbeTechDemobyaXu.zip
Tekniikkademo
(1.06 MiB) Downloaded 338 times
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by Sly_Jack0 »

axu wrote:Onko käytössä cbEnchanted?
On. Mustaa ruutua pukkaa, mutta testasin tuota valmiiksi käännettyä ja hyvältä näyttää!
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by Viltzu »

Sly_Jack0 wrote:
axu wrote:Onko käytössä cbEnchanted?
On. Mustaa ruutua pukkaa, mutta testasin tuota valmiiksi käännettyä ja hyvältä näyttää!
Joko sinulla on vanha versio cbE:stä koska valmiiksi käännetty ei eroa kun itse käännät. (Ellei sitten sinulla ole vanha versio) 0.2.0 taitaisi olla nyt uusin ja sillä ainakin itselläni toimii mainiosti.
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by ItzRaines »

Hemmetin hyvännäköistä tuotosta :D Eli jos haluan tehdä pelini cbE:llä niin se täytyy vain ladata ja koodailla sille? :roll:
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by esa94 »

ItzRaines wrote:Hemmetin hyvännäköistä tuotosta :D Eli jos haluan tehdä pelini cbE:llä niin se täytyy vain ladata ja koodailla sille? :roll:
Se täytyy vain kääntää cbE:llä. Ei muuta eroa. Ja cbE:n saa kait dropattua ihan normikääntäjän tilalle jos oikein ymmärsin.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by axu »

Juu, lataa se cbe, ja sieltä compiler kansiosta löytyy vaihtoehtoinen kääntäjä (kaksi versiota, debug on kehittämiseen ja release julkaisemiseen). Sillä sitten korvataan cb:n oma CBCompiler (tosin se vanha kannattaa ottaa talteen), ja käyttö ei eroa mitenkään tavallisesta - lukuunottamatta tietenkin cbe:n tarjoamia lisämahdollisuuksia!

Ihannetapauksessa vanhat koodit voidaan sellaisenaan kääntää cbe:lle - mutta mitä isompi projekti on, sitä todennäköisemmin törmää toteuttamattomaan ominaisuuteen, cbe:n ja cb:n välisiin eroihin tai erinäisiin bugeihin. Itselläni yleisimmäksi ongelmaksi on tullut yllättäen puuttuvat fontit (tosin nehän on helppo joko korvata tai pudottaa .ttf-tiedosto pelin kansioon) sekä liian suuri suorituskyky, jolloin FPS-riippuvaiset pelit pyörivät järjettömän nopeaa ja FPS-riippumattomat yleensä näyttävät jäätyvän (onneksi tämä ongelma on helppo ratkaista) :D
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by Konstaduck »

Miksi ohjelma jää satunnaisesti käyntiin, satunnaisesti sammuu, kun ajan testiohjelman

Code: Select all

setwindow "testiohjelma"
Kun ohjelma jää käyntiin, sitä ei voi sammuttaa ESCistä taikka raksista. Prosessin sulkeminen on ainut ratkaisu. Ei tätä ongelmaa ollut ei-cbE:n aikana...
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by axu »

Minulla ainakin tuo ohjelma sulkeutuu joka kerralla ihan normaalisti (kokeilin parikymmentä kertaa)... Tuleeko tätä ongelmaa, jos koodia on enemmän kuin yksi rivi?
Niin ja ohjelman voi sulkea escistä tai rastista vain silloin, kun saavutaan DrawScreeniin... tai painamalla Ctrl+C konsolissa.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by Konstaduck »

Ei. Ongelmaa ei tule useammalla kuin yhdellä rivillä.
EDIT:

Tiedä sitten, katsooko kukaan enää näitä, mutta ongelma tosiaankin ilmenee useimmillakin riveillä. :(

Last edited by Konstaduck on Wed Jun 20, 2012 1:13 pm, edited 1 time in total.
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by valscion »

Voisi olla jotain siihen liittyen että tuo SetWindow kutsuu sisäisesti Windowsin funktiota, joka pyörii ehkäpä asynkronisesti. Tämä funktio ei kerkeä valmistumaan ennen kuin allegro sammutetaan, joten ohjelma jää pyörimään päälle. Tuon voisi korjata laittamalla jonkinlaisen ajastimen ennen ohjelman sammuttamista mutta se taas vahingoittaisi muita ohjelmia huomattavasti.

Ohjeeksi voisin antaa sellaisen että älä tee tuollaisia yhden rivin ohjelmia.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by Konstaduck »

VesQ wrote: Ohjeeksi voisin antaa sellaisen että älä tee tuollaisia yhden rivin ohjelmia.
Erittäin varteenotettava idea ;), Sillä eihän nuo yhden rivin ohjelmat mihinkään sovellu, pitää vain kokeilla kaikkea uudella runtimella :)

No, jatkan bugien etsintää...
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by axu »

Hyvältä vaikuttaa, issue trackerissa on tällä hetkellä vain kourallinen bugeja, joista suurin osa on melko pieniä (tekemättömiä ominaisuuksia on jonkun verran enemmän, mutta nämäkin harvemmin käytettyjä ominaisuuksia). Pitääpä mennä metsästämään lisää bugeja :D

En tätä laita issue trackeriin, kun en tiedä onko kyseessä vain minun kone, mutta minulla ohjelma kaatuu, kun Smooth2D on päällä ja yritetään mennä kokoruutuun. Ikkunoidulla ohjelmalla tätä ei tapahdu. Smooth2D:n voi kuitenkin kutsua toimivasti SCREENin jälkeen, mikä kummastuttaa - Wikissähän sanotaan, että Smooth2D pitää kutsua ennen SCREENiä jos haluaa multisamplauksen päälle.
EDIT:

Onko tiedossa vielä seuraavaa versiota milloin? Ja jos saa toivoa, niin tämä tai jokin muu tapa vaikuttaa suoraan kuvan alphakanavaan olisi toivelistalla ylimpänä (muistin juuri, että cbeSetBlendModeAdvanced(CBE_BLEND_ADD, CBE_BLEND_ONE, CBE_BLEND_ZERO) kopioi suoraan sen mitä piirretään - alphan mukaanlukien. Ikävänä sivuvaikutuksena muuta blendausta ei sitten tapahdu tuo päällä, joten tuo toive on edelleen voimassa ;) ). Se nimittäin lisäisi erinäisiä -ilkeää naurua tähän väliin- mahdollisuuksia. Odottakaas vain seuraavaa tekniikkademoa :D

Last edited by axu on Wed Jun 13, 2012 9:14 pm, edited 3 times in total.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by valscion »

Itsekin olen huomannut sen että Smooth2D toimii vaikka sitä kutsuttaisiinkin SCREEN komennon jälkeen. Jännä juttu, olin olettanut että allegron ikkunan asetukset astuisivat voimaan vasta kun uusi ikkuna luodaan. Pitääpä jossain vaiheessa wikiä korjailla.

EDIT: Nyt siellä pitäisi olla oikein sanottu asiasta.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: cbEnchanted - uudelleenkirjoitettu runtime

Post by axu »

Alkaa näyttää seuraava päivitys melko makealta :D
Aloin miettimään, mikä tarkoitus on jokaisessa kustomfunktiossa olevalla pätkällä "group = CBE_CUSTOM_FUNCTION_GROUP"? Aiotaanko niitä funktioita tulevaisuudessa järjestellä eri ryhmiin (esim. grafiikka, matikka ym.) vai onko taustalla jokin muu idea?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Post Reply