Tyhmät kysymykset (I/2010)
Re: Tyhmät kysymykset (I/2010)
Siis onko tämä gigantti obj nyt se tausta? ja onko se tausta sellainen että sen voisi tehdä MakeObjectFloor:lla? Vai onko sellainen tausta joka pysyy aina samassa kohassa samanlaisena? En oikein ymmärtänyt ongelmaasi... Mutta taustat kannattaa tehdä kuvilla..
Re: Tyhmät kysymykset (I/2010)
Kentän taustana on kuva joka piirretään ruutukoordinaattien mukaan ruudulle eikä se liiku. Taustasta ei ole ongelmia vaan vastuksesta. Vastus on se iso objekti ja sen pitäisi olla suunnilleen kentän keskellä.
Re: Tyhmät kysymykset (I/2010)
Missä pelissä on niin iso vastus?? Tuota... EI tähän taida olla mitään järkevää ratkaisua muutakuin tarinan muuntelu ja vastuksen pienentäminen...
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Re: Tyhmät kysymykset (I/2010)
Kille wrote:Mitä pitäisi tehdä, kun tarvitsisin pelini loppuvastukseen melkoisen suuren objectin (1000*955 pikseliä)?
Voisiko vihollista kasata piirtokomennoilla? Kuvatkit varmasti toimivat, etenkin jos vihollista ei tarvitse käännellä.
Code: Select all
Const SVGCIRCLE = 1
Const SVGBOX = 2
Const SVGTRIANGLE = 3
SCREEN 1024,768
//aluksen luonti
s=MakeSVG()
//cannons
AddSVGBox(s,-40,-40,3,20,1,32,32,32)
AddSVGBox(s,37,-40,3,20,1,32,32,32)
//wings
AddSVGTriangle(s,-50,-50,-19,-50,0,22,1,96,96,96)
AddSVGTriangle(s,50,-50,19,-50,0,22,1,96,96,96)
//bottom
AddSVGBox(s,-20,-50,40,30,1,64,64,64)
//thruster left
AddSVGTriangle(s,-20,-55,-10,-55,-15,-60,1,100,100,255)
AddSVGTriangle(s,-17,-55,-13,-55,-15,-57,1,255,255,255)
AddSVGBox(s,-20,-55,10,7,1,64,64,64)
//thruster rught
AddSVGTriangle(s,10,-55,20,-55,15,-60,1,100,100,255)
AddSVGTriangle(s,17,-55,13,-55,15,-57,1,255,255,255)
AddSVGBox(s,10,-55,10,7,1,64,64,64)
//detail
AddSVGBox(s,-16,-47,3,25,1,128,128,128)
AddSVGBox(s,13,-47,3,25,1,128,128,128)
//front
AddSVGTriangle(s,-20,-20,20,-20,0,22,1,64,64,64)
//window
AddSVGTriangle(s,-7,-15,7,-15,0,10,1,150,0,0)
Repeat
x#=ScreenWidth()/2+Cos(Timer()/20)*100
y#=ScreenHeight()/2+Sin(Timer()/20)*100
If KeyDown(cbkeyreturn) Then
ang# = ang#+5.0
Else
ang# = CurveAngle(-Cos(Timer()/20)*10,ang,50.0)
EndIf
zoom# = 5.5+Sin(Timer()/20)*1.0
DrawSVG(s,x#,y#,ang#,zoom#)
SetWindow Str(FPS())
DrawScreen
Forever
DeleteSVG(s)
Function MakeSVG()
mem = MakeMEMBlock(8)
list = MakeMEMBlock(1)
PokeInt mem,4,list
PokeInt mem,0,0
Return mem
EndFunction
Function DeleteSVG(SVG)
If SVG Then
list = PeekInt(SVG,4)
If list Then
For i=0 To MEMBlockSize(list)-1 Step 4
form = PeekInt(list,i)
If form Then DeleteMEMBlock form
Next i
DeleteMEMBlock list
EndIf
DeleteMEMBlock SVG
EndIf
EndFunction
Function AddSVGCircle(SVG,x#,y#,radius#,Filled,r=255,g=255,b=255)
If SVG Then
forms = PeekInt(SVG,0)
list = PeekInt(SVG,4)
If list Then
ResizeMEMBlock list,forms*4+4
PokeInt SVG,4,list
mem = MakeMEMBlock(1+4+4+4+1+3)
PokeByte mem,0,SVGCIRCLE
PokeFloat mem,1,x#
PokeFloat mem,5,y#
PokeFloat mem,9,Max(radius#,0.0)
PokeByte mem,13,Min(Max(filled,0),1)
PokeByte mem,14,Max(Min(r,255),0)
PokeByte mem,15,Max(Min(g,255),0)
PokeByte mem,16,Max(Min(b,255),0)
PokeInt list,forms*4,mem
PokeInt SVG,0,forms+1
EndIf
EndIf
End Function
Function AddSVGBox(SVG,x#,y#,w#,h#,Filled,r=255,g=255,b=255)
If SVG Then
forms = PeekInt(SVG,0)
list = PeekInt(SVG,4)
If list Then
ResizeMEMBlock list,forms*4+4
PokeInt SVG,4,list
mem = MakeMEMBlock(1+4+4+4+4+1+3)
PokeByte mem,0,SVGBOX
PokeFloat mem,1,x#
PokeFloat mem,5,y#
PokeFloat mem,9,w#
PokeFloat mem,13,h#
PokeByte mem,17,Min(Max(filled,0),1)
PokeByte mem,18,Max(Min(r,255),0)
PokeByte mem,19,Max(Min(g,255),0)
PokeByte mem,20,Max(Min(b,255),0)
PokeInt list,forms*4,mem
PokeInt SVG,0,forms+1
EndIf
EndIf
End Function
Function AddSVGTriangle(SVG,x1#,y1#,x2#,y2#,x3#,y3#,Filled,r=255,g=255,b=255)
If SVG Then
forms = PeekInt(SVG,0)
list = PeekInt(SVG,4)
If list Then
ResizeMEMBlock list,forms*4+4
PokeInt SVG,4,list
mem = MakeMEMBlock(1+6*4+1+3)
PokeByte mem,0,SVGTRIANGLE
PokeFloat mem,1,x1#
PokeFloat mem,5,y1#
PokeFloat mem,9,x2#
PokeFloat mem,13,y2#
PokeFloat mem,17,x3#
PokeFloat mem,21,y3#
PokeByte mem,25,Min(Max(filled,0),1)
PokeByte mem,26,Max(Min(r,255),0)
PokeByte mem,27,Max(Min(g,255),0)
PokeByte mem,28,Max(Min(b,255),0)
PokeInt list,forms*4,mem
PokeInt SVG,0,forms+1
EndIf
EndIf
End Function
Function DrawSVG(SVG,x#,y#,angle#=0.0,zoom#=1.0)
locked = 0
If SVG Then
forms = PeekInt(SVG,0)
list = PeekInt(SVG,4)
If list Then
For i=0 To forms-1
form = PeekInt(list,i*4)
If form Then
formtype = PeekByte(form,0)
If formtype = SVGCIRCLE Then
If locked Then Unlock : locked = 0
radius# = PeekFloat(form,9)
xx# = x#+Cos(-angle)*PeekFloat(form,1)*zoom#+Cos(-angle+90)*PeekFloat(form,5)*zoom#-radius#*zoom#*0.5
yy# = y#+Sin(-angle)*PeekFloat(form,1)*zoom#+Sin(-angle+90)*PeekFloat(form,5)*zoom#-radius#*zoom#*0.5
Color PeekByte(form,14),PeekByte(form,15),PeekByte(form,16)
Circle xx#,yy#,radius#*zoom#,PeekByte(form,13)
ElseIf formtype = SVGBOX Then
If Not locked Then Lock : locked = 1
w#=PeekFloat(form,9)*zoom#
h#=PeekFloat(form,13)*zoom#
xx#=x#+Cos(-angle)*PeekFloat(form,1)*zoom#+Cos(-angle+90)*PeekFloat(form,5)*zoom#+Cos(-angle)*w#*0.5+Cos(-angle+90)*h#*0.5
yy#=y#+Sin(-angle)*PeekFloat(form,1)*zoom#+Sin(-angle+90)*PeekFloat(form,5)*zoom#+Sin(-angle)*w#*0.5+Sin(-angle+90)*h#*0.5
Color PeekByte(form,18),PeekByte(form,19),PeekByte(form,20)
AngleBox(xx#,yy#,w#,h#,-angle#,PeekByte(form,17))
ElseIf formtype = SVGTRIANGLE Then
If Not locked Then Lock : locked = 1
x1#=x#+Cos(-angle#)*PeekFloat(form,1)*zoom#+Cos(-angle#+90)*PeekFloat(form,5)*zoom#
y1#=y#+Sin(-angle#)*PeekFloat(form,1)*zoom#+Sin(-angle#+90)*PeekFloat(form,5)*zoom#
x2#=x#+Cos(-angle#)*PeekFloat(form,9)*zoom#+Cos(-angle#+90)*PeekFloat(form,13)*zoom#
y2#=y#+Sin(-angle#)*PeekFloat(form,9)*zoom#+Sin(-angle#+90)*PeekFloat(form,13)*zoom#
x3#=x#+Cos(-angle#)*PeekFloat(form,17)*zoom#+Cos(-angle#+90)*PeekFloat(form,21)*zoom#
y3#=y#+Sin(-angle#)*PeekFloat(form,17)*zoom#+Sin(-angle#+90)*PeekFloat(form,21)*zoom#
Color PeekByte(form,26),PeekByte(form,27),PeekByte(form,28)
Triangle(x1#,y1#,x2#,y2#,x3#,y3#,PeekByte(form,25))
EndIf
EndIf
Next i
If locked Then Unlock : locked = 0
EndIf
EndIf
End Function
Function AngleBox(x#,y#,w#,h#,ang#,filled=0)
c1#=Cos(ang#)
c2#=Cos(ang#+90.0)
c3#=Cos(ang#+180.0)
c4#=Cos(ang#+270.0)
s1#=Sin(ang#)
s2#=Sin(ang#+90.0)
s3#=Sin(ang#+180.0)
s4#=Sin(ang#+270.0)
w2#=w#*0.5
h2#=h#*0.5
If filled Then
triangle(x#+c3#*w2#+c2#*h2#, y#+s3#*w2#+s2#*h2#, x#+c1#*w2#+c2#*h2#, y#+s1#*w2#+s2#*h2#, x#+c3#*w2#+c4#*h2#, y#+s3#*w2#+s4#*h2#,1)
triangle(x#+c1#*w2#+c4#*h2#, y#+s1#*w2#+s4#*h2#, x#+c1#*w2#+c2#*h2#, y#+s1#*w2#+s2#*h2#, x#+c3#*w2#+c4#*h2#, y#+s3#*w2#+s4#*h2#,1)
Else
Line x#+c3#*w2#+c2#*h2#, y#+s3#*w2#+s2#*h2#, x#+c1#*w2#+c2#*h2#, y#+s1#*w2#+s2#*h2#
Line x#+c3#*w2#+c4#*h2#, y#+s3#*w2#+s4#*h2#, x#+c1#*w2#+c4#*h2#, y#+s1#*w2#+s4#*h2#
Line x#+c3#*w2#+c4#*h2#, y#+s3#*w2#+s4#*h2#, x#+c3#*w2#+c2#*h2#, y#+s3#*w2#+s2#*h2#
Line x#+c1#*w2#+c4#*h2#, y#+s1#*w2#+s4#*h2#, x#+c1#*w2#+c2#*h2#, y#+s1#*w2#+s2#*h2#
EndIf
End Function
Function triangle(x1#, y1#, x2#, y2#, x3#, y3#,fill)//by msqrt
Line x1#, y1#, x2#, y2#
Line x1#, y1#, x3#, y3#
Line x3#, y3#, x2#, y2#
If Not fill Then Return 1
x1#=RoundDown(x1#)
x2#=RoundDown(x2#)
x3#=RoundDown(x3#)
y1#=RoundDown(y1#)
y2#=RoundDown(y2#)
y3#=RoundDown(y3#)
If (y1>y2) Then
tmpy = y1
tmpx = x1
y1 = y2
x1 = x2
y2 = tmpy
x2 = tmpx
EndIf
If (y1>y3) Then
tmpy = y1
tmpx = x1
y1 = y3
x1 = x3
y3 = tmpy
x3 = tmpx
EndIf
If (y2>y3) Then
tmpy = y2
tmpx = x2
y2 = y3
x2 = x3
y3 = tmpy
x3 = tmpx
EndIf
If(y2=y1) Then y1-0.001
If(y3=y2) Then y3+0.001
slp1# = (x3-x1)/(y3-y1)
slp2# = (x2-x1)/(y2-y1)
slp3# = (x3-x2)/(y3-y2)
If(Int(y1)<Int(y2)) Then
For i = y1 To y2
Line x1+slp1*(i-y1), i, x2+slp2*(i-y2), i
Next i
EndIf
If(Int(y2)<Int(y3)) Then
For i = y2 To y3
Line x1+slp1*(i-y1), i, x3+slp3*(i-y3), i
Next i
EndIf
EndFunction
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
Re: Tyhmät kysymykset (I/2010)
Ilmeisesti vika oli koneessa. Varmaan 5 vuotta vanha kannettava, ilmeisesti huono näyttis. Kun kokeilin vielä vanhemmalla pöytäkoneella, niin peli ei hidastunut lainkaan.
Re: Tyhmät kysymykset (I/2010)
Mitenkös saan jokaiselle äänelle tehtyä omat virheilmoitukset, mikäli ei toimi.
Tuohonkin joku jippo oli, mutten nyt muista mikä
Code: Select all
ääni1=LoadSound("Power Up 1.wav")
ääni2=LoadSound("boom 1.wav")
ääni3=LoadSound("Blaster.wav")
"Baby," I said. "I'm a genius but nobody knows it but me."
Re: Tyhmät kysymykset (I/2010)
Hene wrote:Mitenkös saan jokaiselle äänelle tehtyä omat virheilmoitukset, mikäli ei toimi.
Tuohonkin joku jippo oli, mutten nyt muista mikäCode: Select all
ääni1=LoadSound("Power Up 1.wav") ääni2=LoadSound("boom 1.wav") ääni3=LoadSound("Blaster.wav")
Code: Select all
Function LoadSound2(path As String)
If FileExists(path) Then Return LoadSound(path) Else MakeError "File not found: " + path
EndFunction
Hengität nyt manuaalisesti.
Re: Tyhmät kysymykset (I/2010)
Tarkoitatko, kun lataa ja sitä musiikkia ei ole olemassa?Hene wrote:Mitenkös saan jokaiselle äänelle tehtyä omat virheilmoitukset, mikäli ei toimi.
Tuohonkin joku jippo oli, mutten nyt muista mikäCode: Select all
ääni1=LoadSound("Power Up 1.wav") ääni2=LoadSound("boom 1.wav") ääni3=LoadSound("Blaster.wav")
No, käy etukäteen se läpi, onko se olemassa.
Tässä nopeasti tehty esimerkki.
Code: Select all
Dim error$
Dim ääni
If FileExists("Media\gun 7.wav")=0
error = error + "Media\gun 7.wav"
Else
ääni = LoadSound("Media\gun 7.wav")
EndIf
If FileExists("Media\Räjähde.wav")=0
error = error + "Media\Räjähde.wav"
Else
ääni = LoadSound("Media\Räjähde.wav")
EndIf
If error > 0
AddText "Error: Sinulla puuttu tiedosto/tiedostoja"
For i=1 To CountWords(error)
AddText " " + GetWord(error,i)
Next i
EndIf
DrawScreen
WaitKey
EDIT:
DatsuniG ehti ensin =)
Re: Tyhmät kysymykset (I/2010)
miten saan tehtyä kellon siis mis näkyy ihan oikea suomen aika
Re: Tyhmät kysymykset (I/2010)
??, Hakemalla netistä aika, tai olettamalla tietokoneen omistajalla on Suomen aika (Time).jaahas wrote:miten saan tehtyä kellon siis mis näkyy ihan oikea suomen aika
Re: Tyhmät kysymykset (I/2010)
mikä täs on vikana?
Code: Select all
SCREEN cbFullScreen,500,300
Repeat
If KeyHit(cbkeyspace) Then o=o+1
If KeyHit(cbkeyt) Then o=0
Text 100,100,"montako o:ta:"+o
DrawScreen
Forever
Re: Tyhmät kysymykset (I/2010)
Resoluutio. Täydellä näytöllä harvoin pyörii 500x300 resoluutio. Yleisimmät resoluutiot, jotka toimivat lähes kaikilla koneilla, ovat 800x600 ja 1024x768. Myös 640x480 toimii useilla koneilla.jaahas wrote:mikä täs on vikana?Code: Select all
SCREEN cbFullScreen,500,300 Repeat If KeyHit(cbkeyspace) Then o=o+1 If KeyHit(cbkeyt) Then o=0 Text 100,100,"montako o:ta:"+o DrawScreen Forever
Miksi sinun pitää edes pyörittää tuota koodia kokonäytöllä?
EDIT: Niin, ja SCREEN komennossahan parametrit menevät hieman eri tavalla. Haluamasi systeemi toimisi näin:
Code: Select all
SCREEN 500,300,0,cbFullscreen
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset (I/2010)
unohin miten saan näytön väriks punasen
Last edited by jaahas on Sat Feb 20, 2010 7:37 pm, edited 2 times in total.
Re: Tyhmät kysymykset (I/2010)
Manuaali on sitä varten...
Code: Select all
ClsColor 255, 0, 0
Re: Tyhmät kysymykset (I/2010)
miten saan näkyvän ajan että on 20 sekunttia aikaa laskee koko ajan
Re: Tyhmät kysymykset (I/2010)
Code: Select all
aika = Timer()
Repeat
Text 2,2,Str(20 - (Timer() - aika) / 1000)
if Timer() - aika > 20000 Then End
drawscreen
forever
EDIT:
@Viltzu: Sinun viestisi vasta tyhmiä ovatkin. : )
Last edited by DatsuniG on Sat Feb 20, 2010 8:18 pm, edited 1 time in total.
Hengität nyt manuaalisesti.
Re: Tyhmät kysymykset (I/2010)
Kuules nyt jaahas, lopeta tuo.
Nuo ovat aivan liian tyhmiä kysymyksiä jopa tänne. Ja varsinkin kun joka kysymykselle laitat oman viestin, kerää niitä kysymyksiä yhteen viestiin.
MANUAALI on avaimesi.
Nuo ovat aivan liian tyhmiä kysymyksiä jopa tänne. Ja varsinkin kun joka kysymykselle laitat oman viestin, kerää niitä kysymyksiä yhteen viestiin.
MANUAALI on avaimesi.
Re: Tyhmät kysymykset (I/2010)
no laitan aina uuden koska kun laitan yhen kysymyksen saan vähän ajan päästä uuden ja siihen aijempaan onjo vastattu jos laitan uuden kysymyksen aijempaan viestiin silloin siihen ei vastataViltzu wrote:Kuules nyt jaahas, lopeta tuo.
Nuo ovat aivan liian tyhmiä kysymyksiä jopa tänne. Ja varsinkin kun joka kysymykselle laitat oman viestin, kerää niitä kysymyksiä yhteen viestiin.
MANUAALI on avaimesi.
ainiin en jaksa ettiä yhtä pikku juttua tuntia manuaalista
Re: Tyhmät kysymykset (I/2010)
Käytä hakua?jaahas wrote: ainiin en jaksa ettiä yhtä pikku juttua tuntia manuaalista
Anteeksi offtopic.