VideoRecord - Nauhoita "videokameralla" ruutua

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

VideoRecord - Nauhoita "videokameralla" ruutua

Post by elmo123 » Thu Oct 25, 2007 7:45 pm

Tämä pikku funkkari kaappaa ruudulta alueen ja tekee siitä kuvan. Kuvamuuttujan löytää RECORDS-tyypistä kentällä img.
Kätevää vaikkapa esim. peliin jossa kuvataan ufoja, jossa tämä olisi vain tehosteena, että voisi katsoa videopätkänsä :D

funkkareiden mukana myös pikku esimerkki ;)

Code: Select all

Type RECORD
    Field img
EndType
Dim enemy_x#(100)
Dim enemy_y#(100)
Dim enemy_plusx(100) As Float,enemy_plusy(100) As Float

Dim i As Integer
Dim angle As Integer

'First apply a random position for all enemies 
For i=1 To 100
    enemy_x(i)=Rand(390)
    enemy_y(i)=Rand(290)
    angle=Rand(360)
    enemy_plusx(i)=Cos(angle)
    enemy_plusy(i)=Sin(angle)
Next i

reload=15
'The main loop 
Repeat
    
    'update all enemies
    For i=1 To 100
        Color 0,255,0
        'draw
        Box enemy_x(i),enemy_y(i),10,10,OFF
        
        'move
        enemy_x(i)=enemy_x(i)+enemy_plusx(i)
        enemy_y(i)=enemy_y(i)+enemy_plusy(i)
        
        'bounce
        If enemy_x(i)<0 Or enemy_x(i)>390 Then enemy_plusx(i)= -enemy_plusx(i)
        If enemy_y(i)<0 Or enemy_y(i)>290 Then enemy_plusy(i)= -enemy_plusy(i)
    Next i
    
    Color cbRed
    
    Box MouseX()-1,MouseY()-1,Min(MouseX()-1+100,400)-MouseX()+2,Min(MouseY()-1+70,300)-MouseY()+2,OFF
    If MouseDown(1) Then VideoRecord(MouseX(),MouseY(),99,69)
    If MouseDown(1) And reload>0 And g=0 Then Text 0,0,"Recording...":reload-1
    If reload=0 Then g=1
    If g Then reload+1
    If reload=15 Then g=0
    
    DrawScreen
    
Until KeyHit(28)
ClsColor cbSilver
rec.RECORD = First(RECORD)
play=1
Repeat
    If TextBut(100,100,"Play",0,255,0,cbLightGreen) Then play=1
    If TextBut(100,125,"Pause",0,255,0,cbLightGreen) Then play=0
    If TextBut(100,150,"Stop",0,255,0,cbLightGreen) Then play=0:rec.RECORD = First(RECORD)
    If rec.RECORD = Last(RECORD) And TextBut(100,100,"Play",0,255,0,cbLightGreen) Then rec.RECORD = First(RECORD)
    DrawImage rec\img,0,0
    If rec.RECORD<>Last(RECORD) And play=1 Then rec = After(rec)
    
    DrawScreen

Forever
Function TextBut(x,y,txt$,r1,g1,b1,r2,g2,b2)
r=getRGB(RED)
g=getRGB(GREEN)
b=getRGB(BLUE)
x2=x-TextWidth(txt$)/2
y2=y-TextHeight(txt$)/2
If MouseX()>x2-1 And MouseX()<(x2+TextWidth(txt$))+1 And MouseY()>y2-1 And MouseY()<(y2+TextHeight(txt$))+1 Then
Color r2,g2,b2
gi=1
Else
Color r1,g1,b1
EndIf
CenterText x,y,txt$,2
If gi And MouseHit(1) Then Return 1
EndFunction
Function VideoRecord(x,y,w,h)

w = Min(x+w,ScreenWidth())-x
h = Min(y+h,ScreenHeight())-y
rec.RECORD = New(RECORD)
rec\img = MakeImage(w,h)
MaskImage rec\img,-255,-255,-255

CopyBox x,y,w,h,0,0,SCREEN(),Image(rec\img)

EndFunction 
Kommentteja :D
EDIT:

muokkasin oletusikkunakokojen tilalle ikkunan nykyisen koon, nyt toimii myös omilla ikkunaleveyksillä :)

Last edited by elmo123 on Mon Oct 29, 2007 1:33 pm, edited 1 time in total.
Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!

User avatar
Purple
Newcomer
Posts: 7
Joined: Thu Oct 25, 2007 1:01 pm
Location: Vaasa
Contact:

Re: VideoRecord - Nauhoita "videokameralla" ruutua

Post by Purple » Thu Oct 25, 2007 9:42 pm

TOI OLI UPEE!!!!! :o <-- Outo päärynä ;/ Oikei ärsyttää
Työn alla :
- Yewi » Rpg peli. Valmis 2% ( Tuleekohan koskaan valmiiksi? :/ )
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Purple

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: VideoRecord - Nauhoita "videokameralla" ruutua

Post by MaGetzUb » Sun Oct 28, 2007 10:59 pm

ihan ööhh.. tavallinen... MAHTAVA! Aikas kätsy :D Off topic: En keksinyt viel lisättävää tälle kommentille
EDIT:

Kysykääs Marcoderilt apu tuon videon tallennukses .avi muotoon se(hän) varmasti osaa räpätä Dll jutskia. Muuten äänien nauhoottaminen on eri juttu ;)

Last edited by MaGetzUb on Mon Oct 29, 2007 5:00 pm, edited 1 time in total.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: VideoRecord - Nauhoita "videokameralla" ruutua

Post by tuhoojabotti » Mon Oct 29, 2007 2:22 pm

Sitten myös silleen että se toimii ohjelman ulko puolella ja sen videon voi tallentaa vaikka .avi muodossa ;)
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: VideoRecord - Nauhoita "videokameralla" ruutua

Post by elmo123 » Mon Oct 29, 2007 3:52 pm

tuhoojabotti wrote:Sitten myös silleen että se toimii ohjelman ulko puolella ja sen videon voi tallentaa vaikka .avi muodossa ;)
noihin toimintoihin tarvii C++:alla tehtyjä DLL:liä ja käsitystä muuntaa kuvasarja .aviin. Itse en tajua avista mitään, sotkua koko formaatti täynnä... :D
Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!

User avatar
MAVmaggot
Advanced Member
Posts: 468
Joined: Fri Aug 31, 2007 10:18 pm
Location: bitspace

Re: VideoRecord - Nauhoita "videokameralla" ruutua

Post by MAVmaggot » Sat Dec 01, 2007 2:02 pm

Tosi hieno, tälle tulee varmaan käyttöö :lol:
offtopic: funktiot sisentämättä :x

Post Reply