En löytänyt haulla tähän asiaan tuloksia, joten heitänpä sen tänne:
Eli miten on mahdollista saada kahdella peräkkäisellä SCREEN -komennolla 320x240 ruutu venytettyä 800x600 resoluution sisään ja kokoruutuun? Nyt en siis ole haluamassa 320x240 ikkunaa venytettynä "kokoruutuun" reunoineen kaikkineen, vaan samaan tapaan kun SCREEN -komennon kokoruututila.
Eli siis grafiikka olisi silti piirretty 320x240 ruudun sisään, mutta venytetty sitten 800x600 resoluution kokoruutuun.
Minua on tässä kerran neuvottu ja sainkin sen toimimaan, mutta en enää muista miten sen tein...
Re: Tyhmät kysymykset (I/2010)
Posted: Fri Jan 08, 2010 3:16 pm
by Dewe
Elikkä törmäsin ilmoitukseen "Code 88 Cant find missing next ja stuckture start block at line 90" kun laitoin toisenkin aseen eri näppäimelle. Voisko joku kertoa että mikä koodissani mahdollisesti on vikana vai puuttuuko siitä jotain tärkeää. Voi olla että ongelma oli tyhmä mutta en ny mikään ammattilainenkaan vielä ole.
FrameLimit 80
SCREEN 800,600
ääniAmmu = LoadSound ("Files\Gun_fire1.wav")
ääniammu2 = LoadSound ("Files\Gun_fire2.wav")
kartta = LoadMap("--------testmap.til","Space.bmp")
PlayObject kartta,0,0,1
SetWindow "-------"
Dim AMMUS_ELOSSA(100)
Dim AMMUS_OBJ(100)
Alus=LoadObject("Files/Kopio_Raketti.bmp",300)
pati=LoadObject("Files/Ammus_1.bmp", 300)
pati2=LoadObject ("Files\Ammus_2.bmp", 300)
RotateObject Alus,90
PositionObject Alus,-150,100
ShowObject pati,OFF
ShowObject pati2,OFF
Color cbOrange
AddText "------------"
Repeat
If LeftKey() Then TurnObject Alus,5
If RightKey() Then TurnObject Alus,-5
If UpKey() Then MoveObject Alus,10
If ObjectX(Alus)<-3700 Then PositionObject Alus,-3700,ObjectY(Alus)
If ObjectX(Alus)>3700 Then PositionObject Alus,3700,ObjectY(Alus)
If ObjectY(Alus)<-3700 Then PositionObject Alus,ObjectX(Alus),-3700
If ObjectY(Alus)>3700 Then PositionObject Alus,ObjectX(Alus),3700
If KeyDown(cbKeyLControl) And reload=0 Then
PlaySound ääniAmmu,50
Gosub LisääAmmus
If KeyDown(cbKeyLAlt) And reload=0 Then
PlaySound ääniAmmu2,50
Gosub LisääAmmus
EndIf
If reload>0 Then reload=reload-1
Gosub PäivitäAmmukset
DrawGame
CloneCameraPosition Alus
DrawScreen
Repeat
Until EscapeKey()
End
'-----------------------------------------------
LisääAmmus:
For i=1 To 100
If AMMUS_ELOSSA(i)=OFF Then
AMMUS_ELOSSA(i)=ON
AMMUS_OBJ(i)=CloneObject(pati)
If AMMUS_ELOSSA(i)=OFF Then
AMMUS_ELOSSA(i)=ON
AMMUS_OBJ(i)=CloneObject(pati2)
CloneObjectPosition AMMUS_OBJ(i),Alus
CloneObjectOrientation AMMUS_OBJ(i),Alus
reload=4
Exit
EndIf
(Tässä on rivi 90) Next i
Return
'-----------------------------------------------
PäivitäAmmukset:
For i=1 To 100
If AMMUS_ELOSSA(i) Then
MoveObject AMMUS_OBJ(i),18
If ObjectX(AMMUS_OBJ(i))<-4000 Or ObjectX(AMMUS_OBJ(i))>4000 Or ObjectY(AMMUS_OBJ(i))<-4000 Or ObjectY(AMMUS_OBJ(i))>4000 Then
DeleteObject AMMUS_OBJ(i)
AMMUS_ELOSSA(i)=OFF
EndIf
EndIf
Next i
Return
Re: Tyhmät kysymykset (I/2010)
Posted: Fri Jan 08, 2010 3:21 pm
by tuhoojabotti
Dewe wrote:Elikkä törmäsin ilmoitukseen "Code 88 Cant find missing next ja stuckture start block at line 90" kun laitoin toisenkin aseen eri näppäimelle. Voisko joku kertoa että mikä koodissani mahdollisesti on vikana vai puuttuuko siitä jotain tärkeää. Voi olla että ongelma oli tyhmä mutta en ny mikään ammattilainenkaan vielä ole.
FrameLimit 80
SCREEN 800,600
ääniAmmu = LoadSound ("Files\Gun_fire1.wav")
ääniammu2 = LoadSound ("Files\Gun_fire2.wav")
kartta = LoadMap("--------testmap.til","Space.bmp")
PlayObject kartta,0,0,1
SetWindow "-------"
Dim AMMUS_ELOSSA(100)
Dim AMMUS_OBJ(100)
Alus=LoadObject("Files/Kopio_Raketti.bmp",300)
pati=LoadObject("Files/Ammus_1.bmp", 300)
pati2=LoadObject ("Files\Ammus_2.bmp", 300)
RotateObject Alus,90
PositionObject Alus,-150,100
ShowObject pati,OFF
ShowObject pati2,OFF
Color cbOrange
AddText "------------"
Repeat
If LeftKey() Then TurnObject Alus,5
If RightKey() Then TurnObject Alus,-5
If UpKey() Then MoveObject Alus,10
If ObjectX(Alus)<-3700 Then PositionObject Alus,-3700,ObjectY(Alus)
If ObjectX(Alus)>3700 Then PositionObject Alus,3700,ObjectY(Alus)
If ObjectY(Alus)<-3700 Then PositionObject Alus,ObjectX(Alus),-3700
If ObjectY(Alus)>3700 Then PositionObject Alus,ObjectX(Alus),3700
If KeyDown(cbKeyLControl) And reload=0 Then
PlaySound ääniAmmu,50
Gosub LisääAmmus
EndIf
If KeyDown(cbKeyLAlt) And reload=0 Then
PlaySound ääniAmmu2,50
Gosub LisääAmmus
EndIf
If reload>0 Then reload=reload-1
Gosub PäivitäAmmukset
DrawGame
CloneCameraPosition Alus
DrawScreen
//Repeat ylimääränen repeatti?
Until EscapeKey()
End
'-----------------------------------------------
LisääAmmus:
For i=1 To 100
If AMMUS_ELOSSA(i)=OFF Then
AMMUS_ELOSSA(i)=ON
AMMUS_OBJ(i)=CloneObject(pati)
If AMMUS_ELOSSA(i)=OFF Then
AMMUS_ELOSSA(i)=ON
AMMUS_OBJ(i)=CloneObject(pati2)
CloneObjectPosition AMMUS_OBJ(i),Alus
CloneObjectOrientation AMMUS_OBJ(i),Alus
reload=4
Exit
EndIf
EndIf
Next i
Return
'-----------------------------------------------
PäivitäAmmukset:
For i=1 To 100
If AMMUS_ELOSSA(i) Then
MoveObject AMMUS_OBJ(i),18
If ObjectX(AMMUS_OBJ(i))<-4000 Or ObjectX(AMMUS_OBJ(i))>4000 Or ObjectY(AMMUS_OBJ(i))<-4000 Or ObjectY(AMMUS_OBJ(i))>4000 Then
DeleteObject AMMUS_OBJ(i)
AMMUS_ELOSSA(i)=OFF
EndIf
EndIf
Next i
Return
Koodistasi puuttui muutama EndIf ja siellä oli 2 Repeattia, mutta vaan yksi Until. Opettele sisentämään, niin näitä ei synny.
Re: Tyhmät kysymykset (I/2010)
Posted: Fri Jan 08, 2010 4:18 pm
by Dewe
Muuten onnistui mutta nyt ei näy ammuksia
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 8:51 am
by skorpioni-cb
Nyt toimii kaappaus, mutta kun olen tiputtanut toisen ja yrittänyt ottaa toista tiputuksen jälkeen hallintaan, niin se tiputettu on taas sama jota hallitsen ei se toinen. Apuva:
Include "ide\cbJanelas.cb"
'Pääohjelma
SCREEN 400,300,0,0
FrameLimit 40
Type RAKETIT
Field obj
EndType
Type ASTEROIDIT
Field obj
Field hp
EndType
Type VIHUT
Field obj
Field hp#
Field id
EndType
Const TUTKA_X=225
Const TUTKA_Y=100
Const TUTKA_KOKO=50
maksimi=2
Global hp
hp#=100.0
kamera=MakeImage(200,150)
space=MakeImage(400,300)
DrawToImage space
For i=1 To 100
Dot Rand(0,399),Rand(0,299)
Next i
DrawToScreen
world=MakeObjectFloor()
PositionObject world,0,0,-500
PaintObject world,space
sina=LoadObject("media\sinä.bmp",72)
energia=LoadObject("media\energia.bmp")
hiiri=LoadImage("media\hiiri.bmp")
meteori=LoadObject("media\meteori.bmp")
ShowObject meteori,OFF
pu=LoadObject("media\power-up.bmp")
ma=LoadObject("media\musta-aukko.bmp",72)
raketti=LoadObject("media\Kranaatti.jpg")
ShowObject raketti,OFF
vihu=LoadObject("media\vihu.bmp",72)
ShowObject vihu,OFF
pää=LoadObject("media\päävihu.bmp")
h=MakeObject()
n=2
Repeat
ClsColor 56,62,184
ShowMouse hiiri
If pause Then
Else
PositionObject h,MouseWX(),MouseWY()
Gosub tarkista
Color 255,255,255
Text 251,9,"hp: "+hp
PositionObject pää,Int(750.1994),Int(-17.1)
If LeftKey() Then TurnObject sina,5
If RightKey() Then TurnObject sina, -5
If UpKey() Then MoveObject sina,n
If DownKey() Then MoveObject sina,-n
If KeyDown(42) Or KeyDown(54) Then n=8 Else n=2
If KeyHit(cbkeyspace) And reload=0 Then
newRaketti.RAKETIT= New(RAKETIT)
newRaketti\obj=CloneObject(raketti)
CloneObjectPosition newRaketti\obj,sina
CloneObjectOrientation newRaketti\obj,sina
MoveObject newRaketti\obj,40
reload=4
EndIf
i=0
For lVihu.VIHUT= Each VIHUT
For iRaketti.RAKETIT= Each RAKETIT
MoveObject iRaketti\obj,6
If After(lVihu)<>NULL Then
If ObjectsOverlap(lVihu\obj,iRaketti\obj,3) Then
id.VIHUT=lVihu
EndIf
If id=lVihu Then
PositionObject lVihu\obj,ObjectX(h),ObjectY(h)
EndIf
EndIf
i=i+1
Next iRaketti
Next lVihu
If reload>0 Then reload=reload-1
Text 248,60,"Ladatut ammukset: "+i
EndIf
If KeyHit(cbkeyP) Then pause=Not pause
camera(kamera,ObjectX(sina),ObjectY(sina))
DrawImage kamera,0,0
DrawScreen
Forever
Function nappi(Teksti$,x,y,leveys=0,korkeus=0)
leveys1=leveys
korkeus1=korkeus
If leveys1=0 Then leveys2=TextWidth(Teksti)
If korkeus1=0 Then korkeus2=TextHeight(Teksti)
'Napin pohjaväri. EI TEKSTIN VÄRI!
r=getRGB(RED)
g=getRGB(GREEN)
b=getRGB(BLUE)
Color r,g,b
If r=0 And g=0 And b=0 Then
r1=255
g1=255
b1=255
Else
r1=0
g1=0
b1=0
EndIf
Box x,y,leveys2,korkeus2
Color r1,r1,r1
Text x,y,Teksti
If MouseX() >=x And MouseX()<= x+leveys2 And MouseY() >= y And MouseY() <= y+korkeus2 Then
in=True
Else
in=False
EndIf
If in=True And MouseHit(1) Then
painettu=True
Else
painettu=False
EndIf
Return painettu
EndFunction
Function VähennäHp(maara#)
hp=hp-maara
Return hp#
EndFunction
Function camera(img,x,y)
l=ImageWidth(img)
k=ImageHeight(img)
UpdateGame
DrawToImage img
ClsColor cbblack
Cls
PositionCamera x,y
PositionCamera CameraX()+((ScreenWidth()-l)/2),CameraY()-((ScreenHeight()-k)/2)
DrawGame
DrawToScreen
EndFunction
Luo:
newVihu.VIHUT= New(VIHUT)
newVihu\obj=CloneObject(vihu)
newVihu\hp=4.0
Return
Return
tarkista:
Nykyinen_maara = 0
For vihumää.VIHUT = Each VIHUT
Nykyinen_maara + 1
Next vihumää
If Nykyinen_maara < Maksimi Then Gosub luo
Return
EDIT:
Nyt ogelmani on että kun ammus osuu jälkimmäiseen niin se ei tuhoudu eikä hiiri enään hallitse sitä. Koodi:
Include "ide\cbJanelas.cb"
'Pääohjelma
SCREEN 400,300,0,0
FrameLimit 40
Type RAKETIT
Field obj
EndType
Type ASTEROIDIT
Field obj
Field hp
EndType
Type VIHUT
Field obj
Field hp#
Field id
EndType
Const TUTKA_X=225
Const TUTKA_Y=100
Const TUTKA_KOKO=50
maksimi=2
Global hp
hp#=100.0
kamera=MakeImage(200,150)
space=MakeImage(400,300)
DrawToImage space
For i=1 To 100
Dot Rand(0,399),Rand(0,299)
Next i
DrawToScreen
world=MakeObjectFloor()
PositionObject world,0,0,-500
PaintObject world,space
sina=LoadObject("media\sinä.bmp",72)
energia=LoadObject("media\energia.bmp")
hiiri=LoadImage("media\hiiri.bmp")
meteori=LoadObject("media\meteori.bmp")
ShowObject meteori,OFF
pu=LoadObject("media\power-up.bmp")
ma=LoadObject("media\musta-aukko.bmp",72)
raketti=LoadObject("media\Kranaatti.jpg")
ShowObject raketti,OFF
vihu=LoadObject("media\vihu.bmp",72)
ShowObject vihu,OFF
pää=LoadObject("media\päävihu.bmp")
h=MakeObject()
n=2
Repeat
ClsColor 56,62,184
ShowMouse hiiri
If pause Then
Else
PositionObject h,MouseWX(),MouseWY()
Gosub tarkista
Color 255,255,255
Text 251,9,"hp: "+hp
PositionObject pää,Int(750.1994),Int(-17.1)
If LeftKey() Then TurnObject sina,5
If RightKey() Then TurnObject sina, -5
If UpKey() Then MoveObject sina,n
If DownKey() Then MoveObject sina,-n
If KeyDown(42) Or KeyDown(54) Then n=8 Else n=2
If KeyHit(cbkeyspace) And reload=0 Then
newRaketti.RAKETIT= New(RAKETIT)
newRaketti\obj=CloneObject(raketti)
CloneObjectPosition newRaketti\obj,sina
CloneObjectOrientation newRaketti\obj,sina
MoveObject newRaketti\obj,40
reload=4
EndIf
i=0
For lVihu.VIHUT= Each VIHUT
For iRaketti.RAKETIT= Each RAKETIT
MoveObject iRaketti\obj,6
If After(lVihu)<>NULL Then
If ObjectsOverlap(lVihu\obj,iRaketti\obj,3) Then
id.VIHUT=lVihu
EndIf
If id=lVihu Then
PositionObject lVihu\obj,ObjectX(h),ObjectY(h)
TurnObject lVihu\obj,7
EndIf
If MouseHit(1) Then id=0
EndIf
i=i+1
Next iRaketti
Next lVihu
If reload>0 Then reload=reload-1
Text 248,60,"Ladatut ammukset: "+i
EndIf
If KeyHit(cbkeyP) Then pause=Not pause
camera(kamera,ObjectX(sina),ObjectY(sina))
DrawImage kamera,0,0
DrawScreen
Forever
Function nappi(Teksti$,x,y,leveys=0,korkeus=0)
leveys1=leveys
korkeus1=korkeus
If leveys1=0 Then leveys2=TextWidth(Teksti)
If korkeus1=0 Then korkeus2=TextHeight(Teksti)
'Napin pohjaväri. EI TEKSTIN VÄRI!
r=getRGB(RED)
g=getRGB(GREEN)
b=getRGB(BLUE)
Color r,g,b
If r=0 And g=0 And b=0 Then
r1=255
g1=255
b1=255
Else
r1=0
g1=0
b1=0
EndIf
Box x,y,leveys2,korkeus2
Color r1,r1,r1
Text x,y,Teksti
If MouseX() >=x And MouseX()<= x+leveys2 And MouseY() >= y And MouseY() <= y+korkeus2 Then
in=True
Else
in=False
EndIf
If in=True And MouseHit(1) Then
painettu=True
Else
painettu=False
EndIf
Return painettu
EndFunction
Function VähennäHp(maara#)
hp=hp-maara
Return hp#
EndFunction
Function camera(img,x,y)
l=ImageWidth(img)
k=ImageHeight(img)
UpdateGame
DrawToImage img
ClsColor cbblack
Cls
PositionCamera x,y
PositionCamera CameraX()+((ScreenWidth()-l)/2),CameraY()-((ScreenHeight()-k)/2)
DrawGame
DrawToScreen
EndFunction
Luo:
newVihu.VIHUT= New(VIHUT)
newVihu\obj=CloneObject(vihu)
newVihu\hp=4.0
Return
Return
tarkista:
Nykyinen_maara = 0
For vihumää.VIHUT = Each VIHUT
Nykyinen_maara + 1
Next vihumää
If Nykyinen_maara < Maksimi Then Gosub luo
Return
[/edit]
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 1:43 pm
by Dewe
Elikkä kun ekan aseen lataus on "reload =4" niin millä tavoin saan määritettyä että toisen aseen ammukset eivät lataudu yhtä nopeasti. Ja kun sain aiempien ohjeiden mukaisesti aseet toimimaan niin nyt eivät ammukset näy
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 2:00 pm
by Awaclus
Dewe wrote:Elikkä kun ekan aseen lataus on "reload =4" niin millä tavoin saan määritettyä että toisen aseen ammukset eivät lataudu yhtä nopeasti. Ja kun sain aiempien ohjeiden mukaisesti aseet toimimaan niin nyt eivät ammukset näy
Dewe wrote:Elikkä kun ekan aseen lataus on "reload =4" niin millä tavoin saan määritettyä että toisen aseen ammukset eivät lataudu yhtä nopeasti. Ja kun sain aiempien ohjeiden mukaisesti aseet toimimaan niin nyt eivät ammukset näy
Reload = 4
Reload2 = 156
Repeat
If MouseHit(1) And Ase = 1 And reload = 0 Then AmmuAseella1()
If MouseHit(1) And Ase = 2 And reload2 = 0 Then AmmuAseella2()
Reload -1
Reload2 -1
Forever
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 4:33 pm
by DatsuniG
Chaosworm wrote:Olisi pitänyt auttaa.
Postcounter = Postcounter + 1
Chaosworm wrote:
Olisi pitänyt auttaa. Väännetään sitten rautalangasta:
Reload = 4
Reload2 = 156
Repeat
If MouseHit(1) And Ase = 1 And reload = 0 Then AmmuAseella1()
If MouseHit(1) And Ase = 2 And reload2 = 0 Then AmmuAseella2()
Reload -1
Reload2 -1
Forever
Onko se rautalangasta vääntämistä jos koodi ei ole läheskään toimivaa? Esimerkiksi reloadit menevät pakolta miinuksen puolelle.
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 4:39 pm
by Awaclus
DatsuniG wrote:Postcounter = Postcounter + 1
Niinpä niin .
Editoiminen ei nosta postikountteria, mutta eipä se nosta myöskään viestiketjua. Uuden viestin kirjoittaminen sen sijaan nostaa viestiketjun, joten uusi asia huomataan helpommin. Yritän tässä auttaa ihmisiä, ja jos sinulla on jotain sitä vastaan, voit jättää lukematta kaikki Ongelmat-alueella olevat viestit.
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 4:45 pm
by DatsuniG
Chaosworm wrote:
DatsuniG wrote:Postcounter = Postcounter + 1
Niinpä niin .
Editoiminen ei nosta postikountteria, mutta eipä se nosta myöskään viestiketjua. Uuden viestin kirjoittaminen sen sijaan nostaa viestiketjun, joten uusi asia huomataan helpommin. Yritän tässä auttaa ihmisiä, ja jos sinulla on jotain sitä vastaan, voit jättää lukematta kaikki Ongelmat-alueella olevat viestit.
Ei aloittelijoille ole kaikki itsestään selvää, eikä yksittäisen muuttujan postaaminen pakolta soita mitään kelloja.
FrameLimit 80
SCREEN 800,600
ääniAmmu = LoadSound ("Files\Gun_fire1.wav")
ääniammu2 = LoadSound ("Files\Gun_fire2.wav")
kartta = LoadMap("--------testmap.til","Space.bmp")
Alus=LoadObject("Files/Kopio_Raketti.bmp",300)
pati=LoadObject("Files/Ammus_1.bmp", 300)
pati2=LoadObject ("Files\Ammus_2.bmp", 300)
RotateObject Alus,90
PositionObject Alus,-150,100
ShowObject pati,OFF
ShowObject pati2,OFF
PlayObject kartta,0,0,1
SetWindow "-------"
Dim AMMUS_ELOSSA(100)
Dim AMMUS_OBJ(100,1)
Color cbOrange
AddText "------------"
Repeat
If LeftKey() Then TurnObject Alus,5
If RightKey() Then TurnObject Alus,-5
If UpKey() Then MoveObject Alus,10
If ObjectX(Alus)<-3700 Then PositionObject Alus,-3700,ObjectY(Alus)
If ObjectX(Alus)>3700 Then PositionObject Alus,3700,ObjectY(Alus)
If ObjectY(Alus)<-3700 Then PositionObject Alus,ObjectX(Alus),-3700
If ObjectY(Alus)>3700 Then PositionObject Alus,ObjectX(Alus),3700
If KeyDown(cbKeyLControl) And reload=0 Then
If weapon = 0 Then
PlaySound ääniAmmu,50
Else
PlaySound ääniAmmu2,50
EndIf
Gosub LisääAmmus
EndIf
If KeyHit(cbKeyReturn) Then Weapon = Not(Weapon)
If reload>0 Then reload=reload-1
Gosub PäivitäAmmukset
DrawGame
CloneCameraPosition Alus
DrawScreen
Until EscapeKey()
End
'-----------------------------------------------
LisääAmmus:
For i=1 To 100
If AMMUS_ELOSSA(i)=OFF Then
If weapon = 0 Then
AMMUS_ELOSSA(i)=ON
AMMUS_OBJ(i,0)=CloneObject(pati)
AMMUS_OBJ(i,1) = 4
reload=4
Else
AMMUS_ELOSSA(i)=ON
AMMUS_OBJ(i,0)=CloneObject(pati2)
AMMUS_OBJ(i,1) = 12
reload = 20
EndIf
CloneObjectPosition AMMUS_OBJ(i),Alus
CloneObjectOrientation AMMUS_OBJ(i),Alus
Exit
EndIf
Next i
Return
'-----------------------------------------------
PäivitäAmmukset:
For i=1 To 100
If AMMUS_ELOSSA(i) Then
MoveObject AMMUS_OBJ(i,0),AMMUS_OBJ(i,1)
If ObjectX(AMMUS_OBJ(i))<-4000 Or ObjectX(AMMUS_OBJ(i))>4000 Or ObjectY(AMMUS_OBJ(i))<-4000 Or ObjectY(AMMUS_OBJ(i))>4000 Then
DeleteObject AMMUS_OBJ(i)
AMMUS_ELOSSA(i)=OFF
EndIf
EndIf
Next i
Return
EDIT:
@Astigma: Käytänkö "Ilmoita tämä viesti"-namiskaa ensi kerralla?
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 5:04 pm
by Astigma
Noniin, soo soo. Tietenkin täällä saa auttaa ja kaikki apu on aina tarpeen. Joskus on hyvä, että antaa vähän vähemmän vinkkiä jotta joku joskus saisi ahaa-elämyksen ja ehkä oppisi asian copy-pasten sijaan. Joskus on taas parempi vääntää rautalangasta. On kuitenkin puhtaasti moderaattorien/adminien tehtävä huomauttaa turhista viesteistä ja siitä sitten antaa rangaistuksia jos näin katsotaan tarpeelliseksi. Liian monesti huomaan tällaista viestittelyä, missä vaan puututaan toisten käyttäjien viestien sisältöön/virheisiin/sääntöjen vastaisuuksiin. Haluaisin, että se poistuisi ja siksi nyt tähän puutuinkin.
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 6:26 pm
by CCE
Misthema wrote:En löytänyt haulla tähän asiaan tuloksia, joten heitänpä sen tänne:
Eli miten on mahdollista saada kahdella peräkkäisellä SCREEN -komennolla 320x240 ruutu venytettyä 800x600 resoluution sisään ja kokoruutuun? Nyt en siis ole haluamassa 320x240 ikkunaa venytettynä "kokoruutuun" reunoineen kaikkineen, vaan samaan tapaan kun SCREEN -komennon kokoruututila.
Eli siis grafiikka olisi silti piirretty 320x240 ruudun sisään, mutta venytetty sitten 800x600 resoluution kokoruutuun.
Minua on tässä kerran neuvottu ja sainkin sen toimimaan, mutta en enää muista miten sen tein...
SCREEN 800,600,0,1 : SCREEN 320,240,0,cbSizable
SetWindow "",3 // suurennetaan ikkuna kokoruudulle
Repeat
For i=0 To 100
Box 160+Cos(Timer() / 8-i*10)*120, 120+Sin(Timer() / 9-i*10)*95,Abs(3.0*(Sin(Timer() / 4.5-i*5)) *(Cos(Timer() / 4-i*5)))+1, Abs(3.0*(Sin(Timer() / 9-i*10)) *(Cos(Timer() / 8-i*10)))+1, 1
Next i
DrawScreen
Forever
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 6:29 pm
by Misthema
CCE wrote:
Misthema wrote:En löytänyt haulla tähän asiaan tuloksia, joten heitänpä sen tänne:
Eli miten on mahdollista saada kahdella peräkkäisellä SCREEN -komennolla 320x240 ruutu venytettyä 800x600 resoluution sisään ja kokoruutuun? Nyt en siis ole haluamassa 320x240 ikkunaa venytettynä "kokoruutuun" reunoineen kaikkineen, vaan samaan tapaan kun SCREEN -komennon kokoruututila.
Eli siis grafiikka olisi silti piirretty 320x240 ruudun sisään, mutta venytetty sitten 800x600 resoluution kokoruutuun.
Minua on tässä kerran neuvottu ja sainkin sen toimimaan, mutta en enää muista miten sen tein...
SCREEN 800,600,0,1 : SCREEN 320,240,0,cbSizable
SetWindow "",3 // suurennetaan ikkuna kokoruudulle
Repeat
For i=0 To 100
Box 160+Cos(Timer() / 8-i*10)*120, 120+Sin(Timer() / 9-i*10)*95,Abs(3.0*(Sin(Timer() / 4.5-i*5)) *(Cos(Timer() / 4-i*5)))+1, Abs(3.0*(Sin(Timer() / 9-i*10)) *(Cos(Timer() / 8-i*10)))+1, 1
Next i
DrawScreen
Forever
Juu, hienoa. Tätähän minä en tiennytkään..
Misthema wrote:... Nyt en siis ole haluamassa 320x240 ikkunaa venytettynä "kokoruutuun" reunoineen kaikkineen, vaan samaan tapaan kun SCREEN -komennon kokoruututila.
!! ;E
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 6:33 pm
by Panzur
Miten saan piirrettyä monta vihollista samaan aikaan?
Type VIHOLLISET
Field Obj
EndType
SCREEN 400, 300, 0, 0
vihu_master=loadobject ("Media\ukkeli.bmp")
For i = 1 to 10
uusiVihu.VIHOLLISET = New (VIHOLLISET)
uusiVihu\obj = CloneObject (vihu_master
PositionObject uusiVihu\obj, Rand (1,400), Rand (1,300)
Next i
Repeat
For iVihu.VIHOLLISET = Each VIHOLLISET
PointObject iVihu\obj, vihu_master
MoveObject iVihu\obj, 4
Next iVihu
DrawScreen
Forever
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 8:15 pm
by Viltzu
Chaosworm wrote:
Panzur wrote:Miten saan piirrettyä monta vihollista samaan aikaan?
Dim vihut(9) 'Luodaan taulukko 10 viholliselle, 0...9
master_vihu = LoadObject("Media/guy.bmp",72) 'master objekti josta kopioidaan muut vihut
ShowObject master_vihu, OFF 'Piilotetaan master_vihu objekti
For i = 0 to 9
vihut(i) = CloneObject (master_vihu) 'Kopioidaan jokaiseen soluun objekti
Next i
Repeat
For i = 0 to 9
MoveObject vihut(i), 4
Next i
DrawScreen
Forever
Mutta todellakin, käytä mieluummin typejä. Laitoin vain esimerkin, että näinkin sen voi tehdä.
Tämä tapa toimii ihan hyvin, mutta jos vihollisten määrä muuttuilee paljonkin niin Tyypit ehdottomasti.
Edit: Kommentoin hieman.
Re: Tyhmät kysymykset (I/2010)
Posted: Sat Jan 09, 2010 10:32 pm
by Ilkka
Aattelinpa et koitan tehä autolle luisun. No ihan hyvin se meni muuten, mutta tuli pikku ongelma: Kun auto palautuu luisusta, luisun pitäisi palautua ja auton lähtä keulan osoittamaan suuntaan. Noh, Auton keula kääntyykin luisu suuntaan.
Pahoittelen selityksen epäselvyyttä, mutta tajuatte ongelman kun kokeilette koodiani.
SCREEN 640,480
auto=LoadObject("Media/car2.bmp",360)
x#=0
y#=0
kulma#=0
luisu#=0
luisu2#=0
vauhti#=0
Repeat
SetWindow ""+FPS()
If kulma<0 Then kulma=360
If kulma>360 Then kulma=0
If LeftKey() And vauhti>1 Then kulma+2
If RightKey() And vauhti>1 Then kulma-2
If LeftKey() And vauhti>2 Then
luisu+0.4
Else
luisu-1.4
EndIf
If luisu<0 Then luisu=0
If RightKey() And vauhti>2 Then
luisu2-0.4
Else
luisu2+1.4
EndIf
If luisu2>0 Then luisu2=0
If UpKey() Then
vauhti+0.1
Else
vauhti-0.05
EndIf
If DownKey() Then vauhti-0.1
If vauhti>5 Then vauhti=5
If vauhti<0 Then vauhti=0
x=x+Cos(kulma)*vauhti
y=y+Sin(kulma)*vauhti
RotateObject auto,kulma+luisu+luisu2
PositionObject auto,x,y
DrawGame
Text 10,10,"Kulma:"+kulma+" x:"+x+" y:"+y
DrawScreen
Forever
Edit: Onko tosi ettei tähä löydy vastausta. Määkun luulin foorumia kaikki tietäväksi.
Re: Tyhmät kysymykset (I/2010)
Posted: Sun Jan 10, 2010 1:47 pm
by Tyyppi
Tuli muuten tällänen mieleen että onko Cool Basic:illa mahdollista tehdä minkään näköistä strategia peliä?