Kuva liikkumaan suunnasta riippuvaisesti
Kuva liikkumaan suunnasta riippuvaisesti
Kysymykseni siis kuuluu kuinka saada kuva liikkumaan suunnasta riippuvaisesti. Eli samaan tapaan kuin moveobject-komento objekteilla. Kysyn tätä siksi että BlitzPlussassa ei (tietääkseni) ole valmista komentoa kyseiseen tarkoitukseen, mutta jos joku viitsisi valaista asiaa vaikka coolbasic-koodilla niin hyvä olisi
-
- Tech Developer
- Posts: 545
- Joined: Sun Aug 26, 2007 2:43 pm
- Location: Liminka
Re: Kuva liikkumaan suunnasta riippuvaisesti
Yksinkertaisella trigonometrialla liikutus hoituu. Tässä nyt pieni esimerkki.
Code: Select all
img = LoadImage("Media\guy.bmp")
Dim rot(360)
For i = 0 To 360 // Pyöritellään kuvat valmiiksi koska lennosta operaatio ON liian hidas
rot(i) = CloneImage(img)
RotateImage rot(i), -i // Pyörittäessä cb siirtää automaagisesti kontrollin kuvan keskelle. Blitz saattaa vaatia AutoMidHandle tai Handleimage
Next i
angle# = 0.0
x# = 100.0
y# = 200.0
Repeat
angle# = wrapangle(angle + (LeftKey() - RightKey()) * 2) // Kääntäminen
x# = x# + Cos(angle) * UpKey() * 2 // Liikutaan vaakatasossa
y# = y# - Sin(angle) * UpKey() * 2 // Liikutaan pystytasossa
DrawImage rot(int(angle)), x, y // Piirretään kuva
DrawScreen
Forever
CoolBasic henkilökuntaa
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Re: Kuva liikkumaan suunnasta riippuvaisesti
Osaako joku sanoa mikä tai mitkä tässä mättää?
E: Laitoin tuohon Code-tageihin uusimman yritykseni joka on aikalailla suora käännös tuosta sinun cb-koodistasi, mutta kusee aina vaan. Mikähän on vikana?
E2: No nyt vörkkii, kun laitoin tuon Sinin eteen plussan miinuksen sijaan.
Code: Select all
Graphics 640,480
Global Asteita=360
Dim Framet(Asteita)
AutoMidHandle True
Global Kuva = LoadImage("player.bmp")
Global x#=100
Global y#=200
For i = 0 To Asteita-1
Framet(i)=CopyImage(Kuva)
RotateImage Framet(i),i*360/Asteita
Next
Global angle#=0
Repeat
Cls
Text 0,0,angle#
If KeyDown(203) Then LeftKey=1 Else LeftKey=False
If KeyDown(205) Then RightKey=1 Else RightKey=False
If KeyDown(200) Then UpKey=1 Else UpKey=False
angle# = angle + (RightKey-LeftKey) * 2
x# = x# + Cos(angle) * UpKey * 2
y# = y# - Sin(angle) * UpKey * 2
DrawImage Framet(Int(angle)), x, y
Flip
Until KeyHit(1)
E2: No nyt vörkkii, kun laitoin tuon Sinin eteen plussan miinuksen sijaan.
Re: Kuva liikkumaan suunnasta riippuvaisesti
Testaas tätä:
En kyllä bb:tä osaa koodata, mutta CoolBasicn peusteella tämä oli kakun pala.
Code: Select all
Graphics 640,480
Global Asteita=360
Dim Framet(Asteita)
AutoMidHandle True
Global Kuva = LoadImage("player.bmp")
Global x#=100
Global y#=200
For i = 0 To Asteita-1
Framet(i)=CopyImage(Kuva)
RotateImage Framet(i),i*360/Asteita
Next
Global angle#=0
Repeat
Cls
Text 0,0,angle#
If KeyDown(203) Then LeftKey=1 Else LeftKey=False
If KeyDown(205) Then RightKey=1 Else RightKey=False
If KeyDown(200) Then UpKey=1 Else UpKey=False
angle# = angle + (RightKey-LeftKey) * 2
If Angle# < 1 Then Angle = 359
If Angle# > 359 Then Angle = 0
x# = x# + Cos(angle) * UpKey * 2
y# = y# + Sin(angle) * UpKey * 2
DrawImage Framet(Int(angle)), x, y
Flip
Until KeyHit(1)
Solar Eclipse
We're in a simulation, and God is trying to debug us.