Pikku pelit

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
Post Reply
naabster
Member
Posts: 56
Joined: Sat Sep 22, 2007 10:10 am

Pikku pelit

Post by naabster » Fri Aug 08, 2008 9:03 pm

eli tänne kaikki pikku pelit esim. semmoiset pelit joissa on yksi maa tai yksi tehtävä niin edelleen....8-)
ja minulta tulee nyt tänne ensimmäinen pien peli nimi on

Zombie killer 2

tehtävä on pelastaa kaverisi ja tappaa zombeja.
härveleitä:
-snipu, (snipu on lehmä) (kun olet saannut sen painat 2)
-haulikko,(haulikko on ukkeli jolla on kaksi asetta)( kun olet saanut sen paina 3)
-luotiliivit,(jonkin näköinen paketti)( zombit hittaa vähemmän)(tulee automaattisesti käyttöön)

pelissä lentää mukavasti verta :twisted:

Ps: en suosittele kuolemaan XD
ai niin peli on myös kaksin peli.

ja pelin saa täältä http://files.filefront.com/zombie+kille ... einfo.html
Last edited by naabster on Fri Aug 08, 2008 9:44 pm, edited 1 time in total.

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Pikku pelit

Post by Koodiapina » Fri Aug 08, 2008 9:35 pm

Olihan tuo varsin mukava pikkupeli. Tilesetin ottaminen media-kansiosta kuitenkin hieman riipaisee. Tuskin olisi ollut suuri vaiva tehdä hieman rosoista tiiliseinää ja kivilattiaa tai ottaa netistä jotain käytettävää. Grafiikat oli kuitenkin itse tekemiäsi ja piristivät peliä. Oli mukava huomata, että kaikki zombiet eivät olleet saman näköisiä. Veriefekti oli hieno, mutta veren lentäessä joka suuntaan on hieman epärealistista. Pelistä jäi kaikenkaikkiaan hyvä vaikutelma - ja ottaen huomioon CB pelien tason - tämä olisi ansainnut mennä "normaali-kokoisten" pelien sarjaan ;)

Itselläni ei ole laitettavaksi isoja eikä pieniä pelejä.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
Vouldenhaul
Active Member
Posts: 211
Joined: Tue Aug 28, 2007 3:48 pm

Re: Pikku pelit

Post by Vouldenhaul » Sun Aug 10, 2008 1:24 pm

Some stories can't be told by words...
Some legends are meant to die...
Some bloodlines must come to an end...


Metal Gear Solid 4: Guns of the Patriots
Sneaking Out 12.06.2008

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Pikku pelit

Post by Koodiapina » Sun Aug 10, 2008 1:31 pm

Mun mielestä tämä aihe kannattaisi silti pitää pystyssä, sillä Mysterious Coder ei käy enää näillä foorumeilla, ja aiheen ensimmäinen viesti sisältää kuolleita linkkejä ja vanhentunutta tietoa. Tietenkin nuo vielä voimassa olevien pienten pelien linkit voisi siirtää tähän aiheeseen. Eikä ollut mitään piilomodetusta, sanoin vain mielipiteeni.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

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

Re: Pikku pelit

Post by MAVmaggot » Mon Aug 11, 2008 12:53 am

Joo, samaa mieltä. Ja tuossa toimivat linkit: :D
------------
Airsoft - tehnyt arska. Kaksinpeli, kaksi asetta pistooli ja konekivääri.
Nimetön - pientä räiskintää, tehnyt itkevä nakki.
Little green ball - Alkun tasohyppely.
copy-paste-pelit:

Joon korispeli:

Code: Select all

    SAFEEXIT OFF
    SCREEN 800,600,0,0
    FrameLimit 60
    Dim speedx As Float
    Dim speedy As Float
    Dim hx,hy As Float
    korisnd=LoadSound("media\whip.wav")
    tausta=MakeImage(800,600)
    DrawToImage tausta
    For y=1 To 600
    Color y/3,y/4,50
    Line 0,y,800,y
    Next y
    DrawToScreen
    f=OpenToEdit("korisenkka.txt")
    enkka=ReadInt(f)
    CloseFile f

    DrawImage tausta,0,0
    Text 0,0,"Pelissä tarkoituksesi on heittää niin monta koria kuin ehdit minuutin aikana."
    Text 0,20,"Anna pallolle vauhtia pitämällä pohjassa hiiren vasenta nappia heittoalueella,"
    Text 0,40,"ja vapauta painike saadaksesi pallon liikkeelle."
    DrawScreen
    WaitKey
    alku:
    If start=1 Then
    Text 0,0,"Heitit "+kori+" koria."
    Text 0,20,"Ennätys on "+enkka+"."
    Text 0,40,"Paina jotain näppäintä jatkaaksesi."
    DrawScreen
    WaitKey
    EndIf
    start=1
    kori=0
    ballX# = ScreenWidth() / 2
    ballY# = ScreenHeight() / 2
    velX# = 0
    velY# = 0
    PositionMouse ballX, ballY
    x=400:y=300
    painovoima#=.5
    aika#=Timer()+60000

    Repeat
    vely=vely+painovoima
    If bally>550 And vely>0 Then vely=-vely*.8
    If ballx>780 And velx>0 Then velx=-velx*.8
    If ballx<20 And velx<0 Then velx=-velx*.8
    ballX = ballX + velX
    ballY = ballY + velY
    md=MouseDown(1)
    If MouseX()>200 And md Then PositionMouse 200,MouseY()
    If MouseY()<350 And md Then PositionMouse MouseX(),350
    If MouseY()>550 And md Then PositionMouse MouseX(),550
    If KeyHit(19) Then Goto alku
    If Distance(705,205,ballx,bally)<20 Then
    ang#=GetAngle(705,205,ballx,bally)
    spe#=Sqrt(velx^2+vely^2)
    If velx<>0 Then
    spang#=Tan(vely/velx)
    Else
    If vely>0 Then spang=90 Else spang=270
    EndIf
    ero#=ang-spang
    uus#=spang+2*ero
    velx=Cos(uus)*spe*.8
    vely=Sin(uus)*spe*.8
    EndIf
    If locked Then
    hx=Max(-10,Min(MouseMoveX(),10))
    hy=Max(-10,Min(MouseMoveY(),10))
    speedx=speedx+hx/1.4
    speedy=speedy+hy
    ballx=MouseX()
    bally=MouseY()
    velx=0
    vely=0
    EndIf
    speedx=.7*speedx
    speedy=.7*speedy
    If md Then locked=1
    If MouseUp(1) Then
    locked=0
    korituli=0
    velx=speedx
    vely=speedy
    lahella=0
    EndIf
    If ballx>715 And Abs(bally-205)<10 And vely>0 Then lahella=1
    If korituli=1 Then lahella=0
    If ballx>715 And Abs(bally-220)<10 And vely>0 And lahella Then kori=kori+1:PlaySound korisnd:korituli=1
    jaljella#=(aika-Timer())/1000.0
    If kori>enkka Then enkka=kori
    If jaljella<0 Then Goto alku
    // Lopuksi piirto
    DrawImage tausta,0,0
    Color 255,255,255
    Text 0,0,"FPS: "+FPS()
    Text 200,0,"KORIT: "+kori
    Text 400,0,"ENKKA: "+enkka
    Text 600,0,"AIKA: "+jaljella+"s"
    Text 400,580,"Paina r aloittaaksesi uudelleen alusta."
    Box MouseX()-1,MouseY()-1,3,3
    Box 0,350,200,200,OFF
    Text 20,530,"Heitä täältä"
    Color 225,125,50
    Circle ballX - 20, ballY - 20, 40, ON
    Color 0,0,0
    a=a-velx
    a2=a+60
    a3=a+120
    Circle ballX - 20, ballY - 20, 40, OFF
    Line ballx-Sin(a)*20,bally-Cos(a)*20,ballx+Sin(a)*20,bally+Cos(a)*20
    Line ballx-Sin(a2)*20,bally-Cos(a2)*20,ballx+Sin(a2)*20,bally+Cos(a2)*20
    Line ballx-Sin(a3)*20,bally-Cos(a3)*20,ballx+Sin(a3)*20,bally+Cos(a3)*20
    Color 255,255,255
    Box 700,200,10,10
    Line 705,205,800,205
    DrawScreen
    Until EscapeKey()
    f=OpenToEdit("korisenkka.txt")
    WriteInt f,enkka
    CloseFile f
Wöm - cb peogrammerin matopeli:

Code: Select all

SetWindow "Wöm"
Dim worm_x(100) As integer
Dim worm_y(100) As integer

worm_start_x=14
worm_start_y=14
window_w=29
window_h=29
//ALKU
font=LoadFont("small fonts",20,1)
SetFont font

Dim start_image(14) As String
start_image(0)="         0  0       "
start_image(1)="                    "
start_image(2)="0     0  0000  0   0"
start_image(3)=" 0 0 0  0    0 00 00"
start_image(4)="  0 0   0    0 0 0 0"
start_image(5)="  0 0    0000  0   0"
start_image(6)="          0000      "
start_image(7)="         000000     "
start_image(8)="         000000     "
start_image(9)="    0    000000     "
start_image(10)="    000   000       "
start_image(11)="     000000000      "
start_image(12)="      00000000      "
start_image(13)="       0000000      "
start_image(14)="        000000      "

Dim start_image_c(14) As String
start_image_c (0)="11111111111111111111"
start_image_c (1)="11111111111111111111"
start_image_c (2)="11111111111111111111"
start_image_c (3)="11111111111111111111"
start_image_c (4)="11111111111111111111"
start_image_c (5)="11111111111111111111"
start_image_c (6)="          HH55     "
start_image_c (7)="         HH5555    "
start_image_c (8)="         H55B5B    "
start_image_c (9)="    H    H55555    "
start_image_c (10)="    HHH   555     "
start_image_c (11)="     HHHHH5555    "
start_image_c (12)="      HHH55555    "
start_image_c (13)="       HH55555    "
start_image_c (14)="        H55555    "


alku:
worm_length=7 //MAX 100
worm_speed=7 //MAX 20
game_start=1
game_score=0
newfood=1

    //PIIRRETÄÄN
      //BG
      Color 10,10,10
      Box 0,0,ScreenWidth(),ScreenHeight()
      For k=0 To 14
        For i=1 To 20
            c$=Mid(start_image_c(k),i,1)
            Color 0,0,0
            If c="0" Then Color 0,0,0
            If c="1" Then Color 255,0,0
            If c="2" Then Color 0,255,0
            If c="3" Then Color 0,0,255
            If c="4" Then Color 128,0,0
            If c="5" Then Color 0,128,0
            If c="6" Then Color 0,0,128
            If c="7" Then Color 0,255,255
            If c="8" Then Color 255,255,0
            If c="9" Then Color 255,0,255
            If c="A" Then Color 128,128,128
            If c="B" Then Color 208,176,0
            If c="C" Then Color 255,255,255
            If c="D" Then Color 132,11,177
            If c="E" Then Color 123,90,0
            If c="F" Then Color 192,192,192
            If c="G" Then Color 64,0,0
            If c="H" Then Color 0,64,0
            If c="I" Then Color 0,0,64
            ch$=Mid(start_image(k),i,1)
            If ch<>" " Then Box (i-1)*20,k*20,20,20
        Next i
      Next k
      //TEKSTI
      Color cbwhite
      Text 0,281,"Press any arrow key "+lower("To")+" start"
    DrawScreen
    a=WaitKey()
    If a=203 Or a=208 Or a=205 Or a=200 Then Goto peli Else Goto alku
    
peli:
Repeat
    //VAHNAT ARVOT ja ALOITUS
    If game_start=0 Then
        worm_o_dir_x=worm_dir_x
        worm_o_dir_y=worm_dir_y
    Else
        worm_o_dir_x=99
        worm_o_dir_y=99
        For i=0 To worm_length
        worm_x(i)=worm_start_x
        worm_y(i)=worm_start_y
        Next i
        game_start=0
    EndIf
    
    //PÄIVITETÄÄN
      //MATO
        If Timer()>worm_speed_t Then
            //OHJAUS
            y_a=0
            x_a=0
            If LeftKey() Then worm_dir_x=-1:worm_dir_y=0:x_a=x_a+1
            If DownKey() Then worm_dir_y=1:worm_dir_x=0:y_a=y_a+1
            If RightKey() Then worm_dir_x=1:worm_dir_y=0:x_a=x_a+1
            If UpKey() Then worm_dir_y=-1:worm_dir_x=0:y_a=y_a+1
            
            If y_a>1 Then
                If Rand(0,1) Then worm_dir_y=1 Else worm_dir_y=-1
            EndIf
            If x_a>1 Then
                If Rand(0,1) Then worm_dir_x=1 Else worm_dir_x=-1
            EndIf

            //EI VOI KÄÄNTYÄ ITSEENSÄ
            If worm_dir_x<>worm_o_dir_x Then
                If worm_dir_y=worm_o_dir_y Then worm_dir_x=worm_o_dir_x
            EndIf
            If worm_dir_y<>worm_o_dir_y Then
                If worm_dir_x=worm_o_dir_x Then worm_dir_y=worm_o_dir_y
            EndIf
            //LIIKE
            For i=worm_length To 0 Step -1
                If i>0 Then
                    worm_x(i)=worm_x(i-1):worm_y(i)=worm_y(i-1)
                Else
                    worm_x(0)=worm_x(0)+worm_dir_x
                    worm_y(0)=worm_y(0)+worm_dir_y
                    worm_speed_t=Timer()+(200-(worm_speed*10))
            EndIf
            Next i
        EndIf
      //MADON SEINÄT
        If worm_x(0)<0 Then worm_x(0)=window_w
        If worm_x(0)>window_w Then worm_x(0)=0
        If worm_y(0)<0 Then worm_y(0)=window_h
        If worm_y(0)>window_h Then worm_y(0)=0
      //MADON KUOLEMA
        For i=1 To worm_length
            If worm_x(0)=worm_x(i) And worm_y(0)=worm_y(i) Then Goto alku
        Next i
      //RUOKA
        If worm_x(0)=food_x And worm_y(0)=food_y Or newfood=1 Then

            hit=1
            While hit=1
                food_x=Rand(0,window_w)
                food_y=Rand(0,window_h)
                hit=0
                For i=0 To worm_length
                    If worm_x(i)=food_x And worm_y(i)=food_y Then hit=1
                Next i
            Wend
            
            If newfood=0 Then
                game_score=game_score+1
                //PITUUS
                worm_length_c=worm_length_c+1
                If worm_length_c>0 Then
                    worm_length=worm_length+1
                    worm_x(worm_length)=worm_x(worm_length-1)
                    worm_y(worm_length)=worm_y(worm_length-1)
                    worm_length_c=0
                EndIf
                //VAUHTI
                worm_speed_c=worm_speed_c+1
                If worm_speed_c>5 Then
                    worm_speed=worm_speed+1
                    worm_speed_c=0
                EndIf
            EndIf
            newfood=0
        EndIf
      //VOITTO(taulukko loppuu kesken etc.)
        If worm_length>100 Then Goto alku
    //PIIRRETÄÄN
      //HUD
        Color 10,100,10
        Box 300,0,100,400
        Color cbblack
        Text 305,0,"Score: "+game_score
        If KeyDown(23)
            Text 305,15,"Speed:"+worm_speed
            Text 305,30,"Length:"+worm_length
        EndIf
      //MATO
        For i=0 To worm_length
            Color 50+(205/worm_length)*(worm_length-i),0,0
            Box worm_x(i)*10,worm_y(i)*10,10,10
        Next i
      //RUOKA
        Color 10,100,10
        Box food_x*10,food_y*10,10,10
   
    DrawScreen
Until EscapeKey()
Atzakan silmien rasitus peli, väistele palkkeja hiirellä.

Code: Select all

    SCREEN 400, 300
    SAFEEXIT OFF

    Const MEM_PER_WALL = 8

    Main()

    Function Main()

    ClsColor 255, 255, 255
    ShowMouse OFF

    Dim bWalls As Byte
    Dim fSpeed As Float
    Dim iRound As integer
    Dim iPoints As integer

    bWalls = 3
    fSpeed = 5.0
    iRound = 1

    memWalls = MakeMEMBlock( bWalls * MEM_PER_WALL )

    x = 500
    For i = 0 To bWalls - 1
    h = Rand( 50, 150 )
    PokeFloat memWalls, i * MEM_PER_WALL, x
    PokeShort memWalls, 4 + i * MEM_PER_WALL, Rand( 50, 250 - h )
    PokeByte memWalls, 6 + i * MEM_PER_WALL, Rand( 20, 30 )
    PokeByte memWalls, 7 + i * MEM_PER_WALL, h
    x + 200
    Next i


    Repeat

    Cls

    DrawBorders()
    LimitMouse()
    If ControlWalls( memWalls, bWalls, fSpeed ) = 1 Then
    Cls
    DrawScreen
    Print "You got " + iPoints + " points!"
    Wait 2000
    Exit
    EndIf

    iPoints + 1

    Color 0, 0, 0
    Text 5, 5, "Points:" + iPoints

    DrawScreen

    iRound + 1
    If iRound > 50 Then
    fSpeed + 0.1
    iRound = 0
    EndIf

    Until KeyHit( CbKeyEsc )

    DeleteMEMBlock memWalls

    End Function


    Function DrawBorders()

    Color 0, 200, 0
    Box 0, 0, 640, 50
    Box 0, 250, 640, 50

    End Function


    Function LimitMouse()

    If MouseY() > 240 Then PositionMouse MouseX(), 240
    If MouseY() < 60 Then PositionMouse MouseX(), 60

    Color 150, 0, 0
    Box MouseX() - 5, MouseY() - 5, 10, 10

    End Function


    Function ControlWalls( _memBlock, _wallsTot, _speed# )

    For i = 0 To _wallsTot - 1
    x = PeekFloat( _memBlock, i * MEM_PER_WALL )
    y = PeekShort( _memBlock, 4 + i * MEM_PER_WALL )
    w = PeekByte( _memBlock, 6 + i * MEM_PER_WALL )
    h = PeekByte( _memBlock, 7 + i * MEM_PER_WALL )

    Color 123, 90, 0
    Box x, y, w, h

    If CheckCollisions() = 1 Then Return 1

    If x < -90 Then
    h = Rand( 50, 150 )
    PokeFloat _memBlock, i * MEM_PER_WALL, 500
    PokeShort _memBlock, 4 + i * MEM_PER_WALL, Rand( 50, 250 - h )
    PokeByte _memBlock, 6 + i * MEM_PER_WALL, Rand( 20, 30 )
    PokeByte _memBlock, 7 + i * MEM_PER_WALL, h
    Else
    PokeFloat _memBlock, i * MEM_PER_WALL, x - _speed
    EndIf

    Next i

    End Function


    Function CheckCollisions()

    PickColor MouseX() + 5, MouseY() + 5
    If getRGB( GREEN ) > 85 And getRGB( GREEN ) < 95 Then Return 1

    PickColor MouseX() + 5, MouseY() - 5
    If getRGB( GREEN ) > 85 And getRGB( GREEN ) < 95 Then Return 1

    PickColor MouseX() - 5, MouseY() + 5
    If getRGB( GREEN ) > 85 And getRGB( GREEN ) < 95 Then Return 1

    PickColor MouseX() - 5, MouseY() - 5
    If getRGB( GREEN ) > 85 And getRGB( GREEN ) < 95 Then Return 1

    End Function


Oudon koodarin Fusion Game. Käytä hiirtä ja hiiren näppäimiä vapauttamaan energiaa.

Code: Select all

    SCREEN 800,600
    Type ATOM
    Field X As Float
    Field Y As Float
    Field Material As Integer
    Field Energy As Float
    Field SpeedX As Float
    Field SpeedY As Float
    Field ElectAngle As Float
    EndType

    Dim AtomImages(2) As Integer
    Const AT_Hydrogen=1
    Const AT_Hydrogen2=2
    Const AT_Hydrogen3=3
    Const AT_Neutron=4
    Const AT_Helium=5
    Const MAX_Senter_Dist=200.0
    Const Friction=0.95
    Const targ=12
    Global Fusion_CenterX As Float
    Global Fusion_CenterY As Float
    Fusion_CenterX=ScreenWidth()/2
    Fusion_CenterY=ScreenHeight()/2


    Global SPickATOM
    Global IsPicked
    Global Presure

    Global Fusion_LineX1 As Float
    Global Fusion_LineY1 As Float
    Global Fusion_LineX2 As Float
    Global Fusion_LineY2 As Float
    Global Fusion_Timer As Integer
    Global Fusion_NSpeedX As Float
    Global Fusion_NSpeedY As Float
    Global Fusion_Energy As Integer

    Function GenImageElectron()
    img=MakeImage(10,10)
    DrawToImage img
    Color 0,0,0:Dot 0,0:Dot 1,0:Dot 2,0:Dot 3,0:Color 85,106,128:Dot 4,0:Color 83,103,125:Dot 5,0:Color 0,0,0:Dot 6,0:Dot 7,0:Dot 8,0:Dot 9,0
    Dot 0,1:Dot 1,1:Color 89,109,132:Dot 2,1:Color 89,110,134:Dot 3,1:Dot 4,1:Color 89,110,135:Dot 5,1:Color 86,107,129:Dot 6,1:Color 71,91,110:Dot 7,1:Color 0,0,0:Dot 8,1:Dot 9,1
    Dot 0,2:Color 89,109,132:Dot 1,2:Color 89,110,134:Dot 2,2:Dot 3,2:Dot 4,2:Dot 5,2:Dot 6,2:Color 80,100,121:Dot 7,2:Color 59,76,95:Dot 8,2:Color 0,0,0:Dot 9,2
    Dot 0,3:Color 92,113,137:Dot 1,3:Color 89,110,134:Dot 2,3:Dot 3,3:Dot 4,3:Dot 5,3:Color 89,110,132:Dot 6,3:Color 79,100,121:Dot 7,3:Color 61,80,98:Dot 8,3:Color 0,0,0:Dot 9,3
    Color 85,107,129:Dot 0,4:Color 89,110,134:Dot 1,4:Dot 2,4:Dot 3,4:Dot 4,4:Dot 5,4:Color 86,107,129:Dot 6,4:Color 76,95,116:Dot 7,4:Color 61,76,95:Dot 8,4:Color 40,55,70:Dot 9,4
    Color 83,103,125:Dot 0,5:Color 92,113,137:Dot 1,5:Color 89,110,134:Dot 2,5:Dot 3,5:Dot 4,5:Color 89,109,132:Dot 5,5:Color 80,100,121:Dot 6,5:Color 70,88,107:Dot 7,5:Color 53,70,86:Dot 8,5:Color 37,52,67:Dot 9,5
    Color 0,0,0:Dot 0,6:Color 86,107,129:Dot 1,6:Color 89,110,134:Dot 2,6:Color 89,109,132:Dot 3,6:Color 86,107,129:Dot 4,6:Color 80,100,121:Dot 5,6:Color 71,89,110:Dot 6,6:Color 61,77,95:Dot 7,6:Color 46,61,76:Dot 8,6:Color 0,0,0:Dot 9,6
    Dot 0,7:Color 71,89,110:Dot 1,7:Color 80,100,122:Dot 2,7:Color 79,98,121:Dot 3,7:Color 76,95,116:Dot 4,7:Color 70,88,107:Dot 5,7:Color 61,77,95:Dot 6,7:Color 47,62,79:Dot 7,7:Color 37,50,65:Dot 8,7:Color 0,0,0:Dot 9,7
    Dot 0,8:Dot 1,8:Color 58,74,92:Dot 2,8:Color 61,79,98:Dot 3,8:Color 61,77,95:Dot 4,8:Color 53,70,86:Dot 5,8:Color 46,61,76:Dot 6,8:Color 37,50,65:Dot 7,8:Color 0,0,0:Dot 8,8:Dot 9,8
    Dot 0,9:Dot 1,9:Dot 2,9:Dot 3,9:Color 38,53,68:Dot 4,9:Color 37,52,67:Dot 5,9:Color 0,0,0:Dot 6,9:Dot 7,9:Dot 8,9:Dot 9,9
    DrawToScreen
    Return img
    EndFunction

    Function GenImageNeutron()
    img=MakeImage(17,17)
    DrawToImage img
    Color 0,0,0:Dot 0,0:Dot 1,0:Dot 2,0:Dot 3,0:Dot 4,0:Dot 5,0:Dot 6,0:Color 0,220,0:Dot 7,0:Dot 8,0:Color 0,197,0:Dot 9,0:Color 0,0,0:Dot 10,0:Dot 11,0:Dot 12,0:Dot 13,0:Dot 14,0:Dot 15,0:Dot 16,0
    Dot 0,1:Dot 1,1:Dot 2,1:Dot 3,1:Color 0,218,17:Dot 4,1:Color 0,247,0:Dot 5,1:Color 0,254,16:Dot 6,1:Dot 7,1:Color 0,253,13:Dot 8,1:Color 0,243,19:Dot 9,1:Color 0,228,12:Dot 10,1:Color 0,185,0:Dot 11,1:Color 0,133,8:Dot 12,1:Color 0,0,0:Dot 13,1:Dot 14,1:Dot 15,1:Dot 16,1
    Dot 0,2:Dot 1,2:Dot 2,2:Color 6,233,0:Dot 3,2:Color 0,254,16:Dot 4,2:Dot 5,2:Dot 6,2:Color 0,244,21:Dot 7,2:Color 0,254,16:Dot 8,2:Dot 9,2:Color 0,252,8:Dot 10,2:Color 0,219,20:Dot 11,2:Color 9,191,12:Dot 12,2:Color 7,128,2:Dot 13,2:Color 0,0,0:Dot 14,2:Dot 15,2:Dot 16,2
    Dot 0,3:Dot 1,3:Color 0,228,12:Dot 2,3:Color 0,254,16:Dot 3,3:Dot 4,3:Color 0,255,19:Dot 5,3:Dot 6,3:Dot 7,3:Color 0,254,16:Dot 8,3:Dot 9,3:Dot 10,3:Color 0,243,19:Dot 11,3:Color 0,209,0:Dot 12,3:Color 0,167,10:Dot 13,3:Color 0,105,1:Dot 14,3:Color 0,0,0:Dot 15,3:Dot 16,3
    Dot 0,4:Color 0,219,20:Dot 1,4:Color 0,254,16:Dot 2,4:Dot 3,4:Dot 4,4:Color 0,255,19:Dot 5,4:Dot 6,4:Dot 7,4:Dot 8,4:Color 0,254,16:Dot 9,4:Dot 10,4:Color 0,244,21:Dot 11,4:Color 0,219,20:Dot 12,4:Color 0,178,8:Dot 13,4:Color 9,138,0:Dot 14,4:Color 0,75,2:Dot 15,4:Color 0,0,0:Dot 16,4
    Dot 0,5:Color 0,244,21:Dot 1,5:Color 0,255,19:Dot 2,5:Color 0,244,21:Dot 3,5:Color 0,255,19:Dot 4,5:Dot 5,5:Dot 6,5:Color 0,254,16:Dot 7,5:Dot 8,5:Dot 9,5:Dot 10,5:Color 0,244,21:Dot 11,5:Color 0,219,20:Dot 12,5:Color 0,187,3:Dot 13,5:Color 0,147,15:Dot 14,5:Color 0,93,9:Dot 15,5:Color 0,0,0:Dot 16,5
    Dot 0,6:Color 0,255,19:Dot 1,6:Dot 2,6:Dot 3,6:Dot 4,6:Color 0,254,16:Dot 5,6:Color 0,244,21:Dot 6,6:Color 0,255,19:Dot 7,6:Dot 8,6:Dot 9,6:Color 0,254,16:Dot 10,6:Color 0,243,19:Dot 11,6:Color 0,218,17:Dot 12,6:Color 0,183,17:Dot 13,6:Color 0,147,15:Dot 14,6:Color 0,101,7:Dot 15,6:Color 0,0,0:Dot 16,6
    Color 0,219,20:Dot 0,7:Color 0,255,19:Dot 1,7:Dot 2,7:Dot 3,7:Color 0,244,21:Dot 4,7:Color 0,255,19:Dot 5,7:Dot 6,7:Dot 7,7:Color 0,254,16:Dot 8,7:Color 0,255,19:Dot 9,7:Color 0,244,21:Dot 10,7:Color 0,228,12:Dot 11,7:Color 0,206,17:Dot 12,7:Color 0,183,17:Dot 13,7:Color 0,142,5:Dot 14,7:Color 3,98,5:Dot 15,7:Color 0,75,2:Dot 16,7
    Color 0,219,20:Dot 0,8:Color 0,255,19:Dot 1,8:Dot 2,8:Dot 3,8:Dot 4,8:Dot 5,8:Dot 6,8:Dot 7,8:Dot 8,8:Color 0,254,16:Dot 9,8:Color 0,243,19:Dot 10,8:Color 0,219,20:Dot 11,8:Color 9,191,12:Dot 12,8:Color 0,167,10:Dot 13,8:Color 0,133,8:Dot 14,8:Color 0,93,9:Dot 15,8:Color 0,75,2:Dot 16,8
    Color 9,191,12:Dot 0,9:Color 0,244,21:Dot 1,9:Color 0,255,19:Dot 2,9:Dot 3,9:Dot 4,9:Dot 5,9:Dot 6,9:Dot 7,9:Color 0,254,16:Dot 8,9:Color 0,244,21:Dot 9,9:Color 0,228,12:Dot 10,9:Color 0,206,17:Dot 11,9:Color 0,183,17:Dot 12,9:Color 0,147,15:Dot 13,9:Color 2,117,2:Dot 14,9:Color 4,90,7:Dot 15,9:Color 0,75,2:Dot 16,9
    Color 0,0,0:Dot 0,10:Color 0,226,5:Dot 1,10:Color 0,244,21:Dot 2,10:Color 0,255,19:Dot 3,10:Dot 4,10:Dot 5,10:Color 0,244,21:Dot 6,10:Color 0,255,19:Dot 7,10:Color 0,243,19:Dot 8,10:Color 0,228,12:Dot 9,10:Color 0,206,17:Dot 10,10:Color 9,191,12:Dot 11,10:Color 0,167,10:Dot 12,10:Color 0,134,10:Dot 13,10:Color 0,101,7:Dot 14,10:Color 0,79,5:Dot 15,10:Color 0,0,0:Dot 16,10
    Dot 0,11:Color 0,183,17:Dot 1,11:Color 0,219,20:Dot 2,11:Color 0,243,19:Dot 3,11:Color 0,244,21:Dot 4,11:Dot 5,11:Color 0,243,19:Dot 6,11:Color 0,228,12:Dot 7,11:Color 0,219,20:Dot 8,11:Color 0,206,17:Dot 9,11:Color 0,183,17:Dot 10,11:Color 0,167,10:Dot 11,11:Color 0,146,13:Dot 12,11:Color 0,112,8:Dot 13,11:Color 0,87,4:Dot 14,11:Color 0,70,6:Dot 15,11:Color 0,0,0:Dot 16,11
    Dot 0,12:Color 0,134,10:Dot 1,12:Color 9,191,12:Dot 2,12:Color 0,206,17:Dot 3,12:Color 0,219,20:Dot 4,12:Dot 5,12:Color 0,218,17:Dot 6,12:Color 0,206,17:Dot 7,12:Color 0,197,0:Dot 8,12:Color 0,183,17:Dot 9,12:Color 0,167,10:Dot 10,12:Color 0,134,10:Dot 11,12:Color 0,112,8:Dot 12,12:Color 4,90,7:Dot 13,12:Color 0,79,5:Dot 14,12:Color 0,70,6:Dot 15,12:Color 0,0,0:Dot 16,12
    Dot 0,13:Dot 1,13:Color 7,128,2:Dot 2,13:Color 0,183,17:Dot 3,13:Dot 4,13:Dot 5,13:Dot 6,13:Dot 7,13:Color 0,167,10:Dot 8,13:Color 0,153,5:Dot 9,13:Color 0,134,10:Dot 10,13:Color 0,112,8:Dot 11,13:Color 0,93,9:Dot 12,13:Color 0,79,5:Dot 13,13:Color 0,70,6:Dot 14,13:Color 0,0,0:Dot 15,13:Dot 16,13
    Dot 0,14:Dot 1,14:Dot 2,14:Color 0,101,7:Dot 3,14:Color 0,147,15:Dot 4,14:Dot 5,14:Dot 6,14:Dot 7,14:Color 0,134,10:Dot 8,14:Color 0,112,8:Dot 9,14:Color 0,101,7:Dot 10,14:Color 0,87,4:Dot 11,14:Color 0,79,5:Dot 12,14:Color 0,70,6:Dot 13,14:Color 0,0,0:Dot 14,14:Dot 15,14:Dot 16,14
    Dot 0,15:Dot 1,15:Dot 2,15:Dot 3,15:Color 0,79,5:Dot 4,15:Color 0,93,9:Dot 5,15:Color 5,99,7:Dot 6,15:Dot 7,15:Color 0,93,9:Dot 8,15:Color 4,90,7:Dot 9,15:Color 0,79,5:Dot 10,15:Color 0,70,6:Dot 11,15:Dot 12,15:Color 0,0,0:Dot 13,15:Dot 14,15:Dot 15,15:Dot 16,15
    Dot 0,16:Dot 1,16:Dot 2,16:Dot 3,16:Dot 4,16:Dot 5,16:Dot 6,16:Color 0,78,4:Dot 7,16:Dot 8,16:Dot 9,16:Color 0,0,0:Dot 10,16:Dot 11,16:Dot 12,16:Dot 13,16:Dot 14,16:Dot 15,16:Dot 16,16
    DrawToScreen
    Return img
    EndFunction
    Function GenImageProton()
    img=MakeImage(17,17)
    DrawToImage img
    Color 0,0,0:Dot 0,0:Dot 1,0:Dot 2,0:Dot 3,0:Dot 4,0:Dot 5,0:Dot 6,0:Color 220,0,0:Dot 7,0:Dot 8,0:Color 198,1,0:Dot 9,0:Color 0,0,0:Dot 10,0:Dot 11,0:Dot 12,0:Dot 13,0:Dot 14,0:Dot 15,0:Dot 16,0
    Dot 0,1:Dot 1,1:Dot 2,1:Dot 3,1:Color 219,0,2:Dot 4,1:Color 244,0,0:Dot 5,1:Color 255,0,0:Dot 6,1:Dot 7,1:Dot 8,1:Color 244,0,0:Dot 9,1:Color 228,0,0:Dot 10,1:Color 185,0,0:Dot 11,1:Color 130,0,0:Dot 12,1:Color 0,0,0:Dot 13,1:Dot 14,1:Dot 15,1:Dot 16,1
    Dot 0,2:Dot 1,2:Dot 2,2:Color 229,0,0:Dot 3,2:Color 255,0,0:Dot 4,2:Dot 5,2:Dot 6,2:Dot 7,2:Dot 8,2:Dot 9,2:Dot 10,2:Color 228,0,0:Dot 11,2:Color 193,0,0:Dot 12,2:Color 130,0,0:Dot 13,2:Color 0,0,0:Dot 14,2:Dot 15,2:Dot 16,2
    Dot 0,3:Dot 1,3:Color 229,0,0:Dot 2,3:Color 255,0,0:Dot 3,3:Dot 4,3:Dot 5,3:Dot 6,3:Dot 7,3:Dot 8,3:Dot 9,3:Color 251,0,2:Dot 10,3:Color 243,0,0:Dot 11,3:Color 208,0,0:Dot 12,3:Color 169,0,0:Dot 13,3:Color 106,0,1:Dot 14,3:Color 0,0,0:Dot 15,3:Dot 16,3
    Dot 0,4:Color 228,0,0:Dot 1,4:Color 255,0,0:Dot 2,4:Dot 3,4:Dot 4,4:Dot 5,4:Dot 6,4:Dot 7,4:Dot 8,4:Dot 9,4:Color 251,0,2:Dot 10,4:Color 244,0,0:Dot 11,4:Color 219,0,2:Dot 12,4:Color 184,0,0:Dot 13,4:Color 141,1,0:Dot 14,4:Color 77,0,0:Dot 15,4:Color 0,0,0:Dot 16,4
    Dot 0,5:Color 244,0,0:Dot 1,5:Color 255,0,0:Dot 2,5:Dot 3,5:Dot 4,5:Dot 5,5:Dot 6,5:Dot 7,5:Dot 8,5:Dot 9,5:Dot 10,5:Color 244,0,0:Dot 11,5:Color 219,0,2:Dot 12,5:Color 185,0,0:Dot 13,5:Color 141,1,0:Dot 14,5:Color 90,2,0:Dot 15,5:Color 0,0,0:Dot 16,5
    Dot 0,6:Color 255,0,0:Dot 1,6:Dot 2,6:Dot 3,6:Dot 4,6:Dot 5,6:Dot 6,6:Dot 7,6:Dot 8,6:Dot 9,6:Color 251,0,2:Dot 10,6:Color 243,0,0:Dot 11,6:Color 216,0,0:Dot 12,6:Color 185,0,0:Dot 13,6:Color 148,0,1:Dot 14,6:Color 101,3,0:Dot 15,6:Color 0,0,0:Dot 16,6
    Color 220,0,0:Dot 0,7:Color 255,0,0:Dot 1,7:Dot 2,7:Dot 3,7:Dot 4,7:Dot 5,7:Dot 6,7:Dot 7,7:Dot 8,7:Dot 9,7:Color 251,0,2:Dot 10,7:Color 228,0,0:Dot 11,7:Color 208,0,0:Dot 12,7:Color 184,0,0:Dot 13,7:Color 148,0,1:Dot 14,7:Color 106,0,1:Dot 15,7:Color 77,0,0:Dot 16,7
    Color 220,0,0:Dot 0,8:Color 255,0,0:Dot 1,8:Dot 2,8:Dot 3,8:Dot 4,8:Dot 5,8:Dot 6,8:Dot 7,8:Dot 8,8:Dot 9,8:Color 243,0,0:Dot 10,8:Color 219,0,2:Dot 11,8:Color 188,5,2:Dot 12,8:Color 164,1,0:Dot 13,8:Color 128,0,0:Dot 14,8:Color 94,0,0:Dot 15,8:Color 77,0,0:Dot 16,8
    Color 198,1,0:Dot 0,9:Color 244,0,0:Dot 1,9:Color 255,0,0:Dot 2,9:Dot 3,9:Dot 4,9:Dot 5,9:Dot 6,9:Dot 7,9:Dot 8,9:Color 243,0,0:Dot 9,9:Color 222,1,0:Dot 10,9:Color 208,0,0:Dot 11,9:Color 185,0,0:Dot 12,9:Color 153,2,0:Dot 13,9:Color 117,0,2:Dot 14,9:Color 87,0,1:Dot 15,9:Color 77,0,0:Dot 16,9
    Color 0,0,0:Dot 0,10:Color 228,0,0:Dot 1,10:Color 251,0,2:Dot 2,10:Dot 3,10:Color 255,0,0:Dot 4,10:Dot 5,10:Dot 6,10:Color 244,0,0:Dot 7,10:Color 233,0,1:Dot 8,10:Color 229,0,0:Dot 9,10:Color 208,0,0:Dot 10,10:Color 193,0,0:Dot 11,10:Color 164,1,0:Dot 12,10:Color 131,2,0:Dot 13,10:Color 100,1,0:Dot 14,10:Color 79,1,2:Dot 15,10:Color 0,0,0:Dot 16,10
    Dot 0,11:Color 185,0,0:Dot 1,11:Color 220,0,0:Dot 2,11:Color 243,0,0:Dot 3,11:Color 244,0,0:Dot 4,11:Color 243,0,0:Dot 5,11:Dot 6,11:Color 229,0,0:Dot 7,11:Color 222,1,0:Dot 8,11:Color 208,0,0:Dot 9,11:Color 185,0,0:Dot 10,11:Color 164,1,0:Dot 11,11:Color 148,0,1:Dot 12,11:Color 113,0,0:Dot 13,11:Color 86,0,0:Dot 14,11:Color 77,0,0:Dot 15,11:Color 0,0,0:Dot 16,11
    Dot 0,12:Color 131,2,0:Dot 1,12:Color 188,5,2:Dot 2,12:Color 210,3,0:Dot 3,12:Color 219,0,2:Dot 4,12:Color 216,0,0:Dot 5,12:Color 219,0,2:Dot 6,12:Color 210,3,0:Dot 7,12:Color 196,0,0:Dot 8,12:Color 184,0,0:Dot 9,12:Color 164,1,0:Dot 10,12:Color 136,0,1:Dot 11,12:Color 117,0,0:Dot 12,12:Color 87,0,1:Dot 13,12:Color 77,0,0:Dot 14,12:Color 69,0,0:Dot 15,12:Color 0,0,0:Dot 16,12
    Dot 0,13:Dot 1,13:Color 130,0,0:Dot 2,13:Color 172,0,1:Dot 3,13:Color 184,0,0:Dot 4,13:Color 185,0,0:Dot 5,13:Color 184,0,0:Dot 6,13:Dot 7,13:Color 164,1,0:Dot 8,13:Color 153,2,0:Dot 9,13:Color 136,0,1:Dot 10,13:Color 113,0,0:Dot 11,13:Color 94,0,0:Dot 12,13:Color 84,0,0:Dot 13,13:Color 69,1,1:Dot 14,13:Color 0,0,0:Dot 15,13:Dot 16,13
    Dot 0,14:Dot 1,14:Dot 2,14:Color 106,0,1:Dot 3,14:Color 136,0,1:Dot 4,14:Color 148,0,1:Dot 5,14:Color 141,1,0:Dot 6,14:Color 148,0,1:Dot 7,14:Color 136,0,1:Dot 8,14:Color 113,0,0:Dot 9,14:Color 100,1,0:Dot 10,14:Color 86,0,0:Dot 11,14:Color 77,0,0:Dot 12,14:Color 69,1,1:Dot 13,14:Color 0,0,0:Dot 14,14:Dot 15,14:Dot 16,14
    Dot 0,15:Dot 1,15:Dot 2,15:Dot 3,15:Color 79,1,2:Dot 4,15:Color 90,2,0:Dot 5,15:Color 106,0,1:Dot 6,15:Color 94,0,0:Dot 7,15:Dot 8,15:Color 90,2,0:Dot 9,15:Color 77,0,0:Dot 10,15:Color 76,0,0:Dot 11,15:Color 69,0,0:Dot 12,15:Color 0,0,0:Dot 13,15:Dot 14,15:Dot 15,15:Dot 16,15
    Dot 0,16:Dot 1,16:Dot 2,16:Dot 3,16:Dot 4,16:Dot 5,16:Dot 6,16:Color 76,0,0:Dot 7,16:Color 77,0,0:Dot 8,16:Dot 9,16:Color 0,0,0:Dot 10,16:Dot 11,16:Dot 12,16:Dot 13,16:Dot 14,16:Dot 15,16:Dot 16,16
    DrawToScreen
    Return img
    EndFunction

    HotSpot ON
    AtomImages(0)=GenImageProton()
    AtomImages(1)=GenImageNeutron()
    AtomImages(2)=GenImageElectron()
    HotSpot OFF
    Color cbwhite

    Function MakeGame(energy,hyd1,hyd2,hyd3,neut)
    ScrHalfW=ScreenWidth()/2
    ScrHalfH=ScreenHeight()/2
    Randomize Timer()
    giveEnergy=energy/(hyd1+hyd2+hyd3+neut)
    For i=1 To hyd1
    AT.ATOM=New(ATOM)
    AT\Material=1
    dist#=Rnd(0,MAX_Senter_Dist)
    angle#=Rnd(360)
    AT\X=ScrHalfW+Cos(angle)*dist
    AT\Y=ScrHalfH+Sin(angle)*dist
    AT\ElectAngle=Rnd(360)
    AT\Energy=giveEnergy
    Next i
    For i=1 To hyd2
    AT.ATOM=New(ATOM)
    AT\Material=2
    dist#=Rnd(0,MAX_Senter_Dist)
    angle=Rnd(360)
    AT\X=ScrHalfW+Cos(angle)*dist
    AT\Y=ScrHalfH+Sin(angle)*dist
    AT\ElectAngle=Rnd(360)
    AT\Energy=giveEnergy
    Next i
    For i=1 To hyd3
    AT.ATOM=New(ATOM)
    AT\Material=3
    dist#=Rnd(0,MAX_Senter_Dist)
    angle=Rnd(360)
    AT\X=ScrHalfW+Cos(angle)*dist
    AT\Y=ScrHalfH+Sin(angle)*dist
    AT\ElectAngle=Rnd(360)
    AT\Energy=giveEnergy
    Next i
    For i=1 To neut
    AT.ATOM=New(ATOM)
    AT\Material=4
    dist#=Rnd(0,MAX_Senter_Dist)
    angle=Rnd(360)
    AT\X=ScrHalfW+Cos(angle)*dist
    AT\Y=ScrHalfH+Sin(angle)*dist
    AT\ElectAngle=Rnd(360)
    AT\Energy=giveEnergy
    Next i
    EndFunction

    Function DrawATOMS()
    For AT.ATOM=Each ATOM
    Select AT\Material
    Case 1
    DrawImage AtomImages(0),AT\X,AT\Y
    dx#=AT\X+Cos(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))
    dy#=AT\Y+Sin(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))
    DrawImage AtomImages(2),dx#,dy#
    Case 2
    DrawImage AtomImages(0),AT\X-8,AT\Y
    DrawImage AtomImages(1),AT\X+8,AT\Y
    dx#=AT\X+Cos(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))
    dy#=AT\Y+Sin(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))
    DrawImage AtomImages(2),dx#,dy#
    Case 3
    DrawImage AtomImages(0),AT\X-8,AT\Y
    DrawImage AtomImages(1),AT\X+8,AT\Y
    DrawImage AtomImages(1),AT\X,AT\Y-14
    dx#=AT\X+Cos(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))
    dy#=AT\Y+Sin(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))
    DrawImage AtomImages(2),dx#,dy#
    Case 4
    DrawImage AtomImages(1),AT\X,AT\Y
    Case 5
    DrawImage AtomImages(0),AT\X-8,AT\Y
    DrawImage AtomImages(1),AT\X+8,AT\Y
    DrawImage AtomImages(1),AT\X-16,AT\Y-14
    DrawImage AtomImages(0),AT\X,AT\y-14
    dx#=Cos(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))+10
    dy#=Sin(AT\ElectAngle)*(AT\Energy/10.0-(AT\SpeedX+AT\SpeedY))+10
    DrawImage AtomImages(2),AT\X+dx#,AT\Y+dy#
    DrawImage AtomImages(2),AT\X-dx#,AT\Y-dy#
    EndSelect
    Next AT
    EndFunction


    Function CalculatePhysics(x=400,y=300)
    Fusion_NSpeedX=0
    Fusion_NSpeedY=0
    Count=0
    For AT.ATOM=Each ATOM
    For AT2.ATOM=Each ATOM
    If AT<>AT2
    dist#=Distance(AT\X,AT\Y,AT2\X,AT2\Y)
    If dist#<Max(Min((AT\Energy*10-(AT\SpeedX+AT\SpeedY)),50),0)
    angle#=GetAngle(AT\X,AT\Y,x,y)
    power# = AT\Energy*10 / (dist#+20)^2
    accelationX#=Cos(angle#)*power#
    accelationY#=-Sin(angle#)*power#
    AT\SpeedX=AT\SpeedX - accelationX#
    AT\SpeedY=AT\SpeedY - accelationY#
    AT2\SpeedX=AT2\SpeedX + accelationX#
    AT2\SpeedY=AT2\SpeedY + accelationY#
    EndIf
    EndIf
    Next AT2
    dist#=Distance(AT\X,AT\Y,x,y)
    If dist#>MAX_Senter_Dist+10-Presure And AT\Material<>AT_Helium
    angle#=GetAngle(AT\X,AT\Y,x,y)
    power# = (100000.0-Presure) / (dist#+20)^2
    accelationX#=Cos(angle#)*power#
    accelationY#=-Sin(angle#)*power#
    AT\SpeedX=AT\SpeedX + accelationX#
    AT\SpeedY=AT\SpeedY + accelationY#
    EndIf
    If AT\Material=AT_Helium
    angle#=GetAngle(AT\X,AT\Y,x,y)
    power# = (10000.0+Presure) / (dist#+20)^2
    accelationX#=Cos(angle#)*power#
    accelationY#=-Sin(angle#)*power#
    AT\SpeedX=AT\SpeedX - accelationX#
    AT\SpeedY=AT\SpeedY - accelationY#
    If dist#>1000 Then Delete AT
    EndIf

    AT\Electangle=WrapAngle(AT\Electangle+3)
    Count=Count+1
    Fusion_NSpeedX=Fusion_NSpeedX+Abs(AT\SpeedX)
    Fusion_NSpeedY=Fusion_NSpeedY+Abs(AT\SpeedY)
    Next AT
    Fusion_NSpeedX=Fusion_NSpeedX/Count
    Fusion_NSpeedY=Fusion_NSpeedY/Count
    EndFunction

    Function UpdatePhysics()
    PickATOM.ATOM=NULL
    fDist#=50.0
    For AT.ATOM=Each ATOM
    AT\SpeedX=AT\SpeedX*Friction
    AT\SpeedY=AT\SpeedY*Friction
    AT\X=AT\X+AT\SpeedX
    AT\Y=AT\Y+AT\SpeedY
    Next AT
    EndFunction



    Function Fusion()
    PickATOM.ATOM=NULL
    fDist#=50.0
    For AT.ATOM=Each ATOM
    If Timer()<Fusion_Timer
    For AT2.ATOM=Each ATOM
    If AT<>AT2 And Distance(AT\X,AT\Y,AT2\X,AT2\Y)<20 And Abs(AT\SpeedX)>Fusion_SpeedX And Abs(AT\SpeedY)>Fusion_SpeedY
    If AT\Material=AT_Hydrogen2 And AT2\Material=AT_Hydrogen2

    AT\Material=AT_Helium
    Fusion_Energy=Fusion_Energy+(AT\Energy+AT2\Energy)-(AT\Energy/2+AT2\Energy/2)
    AT\Energy=AT\Energy/3+AT2\Energy/3
    If (Abs(AT\SpeedX)+Abs(AT\SpeedY))/2<(Abs(AT2\SpeedX)+Abs(AT2\SpeedY))/2
    AT\SpeedX=AT2\SpeedX
    AT\SpeedY=AT2\SpeedY
    EndIf
    Delete AT2

    ElseIf AT\Material=AT_Hydrogen And AT2\Material=AT_Hydrogen3
    AT\Material=AT_Helium
    AT\Energy=AT\Energy/2
    Fusion_Energy=Fusion_Energy+(AT\Energy+AT2\Energy)-(AT\Energy/2+AT2\Energy/3)
    If (Abs(AT\SpeedX)+Abs(AT\SpeedY))/2<(Abs(AT2\SpeedX)+Abs(AT2\SpeedY))/2
    AT\SpeedX=AT2\SpeedX
    AT\SpeedY=AT2\SpeedY
    EndIf
    Delete AT2

    ElseIf AT\Material=AT_Hydrogen And AT2\Material=AT_Neutron
    AT\Material=AT_Hydrogen2
    AT\Energy=AT\Energy+AT2\Energy
    If (Abs(AT\SpeedX)+Abs(AT\SpeedY))/2<(Abs(AT2\SpeedX)+Abs(AT2\SpeedY))/2
    AT\SpeedX=AT2\SpeedX
    AT\SpeedY=AT2\SpeedY
    EndIf
    Delete AT2

    ElseIf AT\Material=AT_Neutron And AT2\Material=AT_Hydrogen2
    AT\Material=AT_Hydrogen3
    AT\Energy=AT\Energy+AT2\Energy
    If (Abs(AT\SpeedX)+Abs(AT\SpeedY))/2<(Abs(AT2\SpeedX)+Abs(AT2\SpeedY))/2
    AT\SpeedX=AT2\SpeedX
    AT\SpeedY=AT2\SpeedY
    EndIf
    Delete AT2
    ElseIf AT\Material=AT_Hydrogen3 And AT2\Material=AT_Hydrogen3
    AT\Material=AT_Helium
    Fusion_Energy=Fusion_Energy+(AT\Energy+AT2\Energy)-(AT\Energy/4+AT2\Energy/4)
    AT2\Material=4
    AT3.ATOM=New(ATOM)
    AT3\Material=4
    AT3\X=(AT\X+AT2\X)/2
    AT3\Y=(AT\Y+AT2\Y)/2
    If (Abs(AT\SpeedX)+Abs(AT\SpeedY))/2<(Abs(AT2\SpeedX)+Abs(AT2\SpeedY))/2
    AT\SpeedX=AT2\SpeedX
    AT\SpeedY=AT2\SpeedY
    EndIf
    ElseIf AT\Material=AT_Hydrogen3 And AT2\Material=AT_Hydrogen2
    Fusion_Energy=Fusion_Energy+(AT\Energy+AT2\Energy)-(AT\Energy/3+AT2\Energy/4)
    AT\Material=AT_Helium
    AT\Energy=AT\Energy/3+AT2\Energy/2
    AT2\Material=4
    If (Abs(AT\SpeedX)+Abs(AT\SpeedY))/2<(Abs(AT2\SpeedX)+Abs(AT2\SpeedY))/2
    AT\SpeedX=AT2\SpeedX
    AT\SpeedY=AT2\SpeedY
    EndIf
    EndIf
    EndIf
    Next AT2
    EndIf
    dist#=Distance(AT\X,AT\Y,MouseX(),MouseY())
    If MouseDown(1) And dist#<60 And IsPicked=False
    If dist#<fDist#
    fDist#=dist#
    SPickATOM=ConvertToInteger(AT)
    EndIf
    EndIf

    Next AT

    PickATOM.ATOM=ConvertToType(SPickATOM)
    If PickATOM<>NULL
    IsPicked=True
    angle#=-GetAngle(PickATOM\X,PickATOM\Y,MouseX(),MouseY())+180
    dist#=Distance(PickATOM\X,PickATOM\Y,MouseX(),MouseY())
    PickATOM\SpeedX=PickATOM\SpeedX-Cos(angle#)
    PickATOM\SpeedY=PickATOM\SpeedY-Sin(angle#)
    EndIf

    If MouseUp(1)
    If PickATOM<>NULL
    PickATOM\SpeedX=PickATOM\SpeedX*3
    PickATOM\SpeedY=PickATOM\SpeedY*3
    Fusion_LineX1=MouseX()
    Fusion_LineY1=MouseY()
    Fusion_Timer=Timer()+500
    EndIf
    SPickATOM=ConvertToInteger(NULL)
    IsPicked=False
    EndIf

    If MouseDown(2) Then
    Presure=Max(Min(Presure+1,100),0)
    Else
    If Presure>0 Then Presure-5
    EndIf

    size#=MAX_Senter_Dist+10-Presure
    Circle 400-size/2,300-size/2,size,OFF

    EndFunction


    Function MainLoop()
    Repeat
    CalculatePhysics(Fusion_CenterX,Fusion_CenterY)
    UpdatePhysics()
    Fusion()
    DrawATOMS()
    If KeyHit(cbkeyr) Then
    For AT.ATOM=Each ATOM
    Delete AT
    Next AT
    MakeGame(Rand(1000,30000),Rand(1,20),Rand(1,20),Rand(1,20),Rand(1,20))
    Fusion_Energy=0
    EndIf
    Text 0,0,"Fps: "+FPS()
    Text 0,12,"Hit R to reset game."
    Text 0,24,"Relased Energy:"+Fusion_Energy
    DrawScreen
    Forever
    EndFunction

    MakeGame(10000, 30, 0, 0, 30)
    MainLoop()

User avatar
Alligaattori
Active Member
Posts: 135
Joined: Fri Mar 07, 2008 9:49 pm

Re: Pikku pelit

Post by Alligaattori » Mon Aug 18, 2008 5:36 pm

naabster wrote:Zombie killer 2
Löysin bugin. Zombit kävivät kähmimässä ja hp tippui -1:een ( :lol: ). Oli muuten mahtavaa, kun tuli kunnon tappomeininki. En muista sellaista CB-peliä pelanneeni.

Edit: Alussa ukkeli oli seinän sisällä. Käänsin sitä jä lähdin menemään huoneen nurkkaa päin seinää pitkin ja peruutin nurkan läpi. Tarkoituksellista?

User avatar
Mr_Noob
Newcomer
Posts: 30
Joined: Tue Aug 28, 2007 1:05 pm
Location: koti
Contact:

Re: Pikku pelit

Post by Mr_Noob » Tue Aug 19, 2008 10:00 pm

Noniin. Sain valmiiksi tämmösen tosi pienen pikajuoksu pelin.

Eli olet pelissä vihreä pallukka radalla 3 ja voit juosta eteenpäin näpyttämällä ylä ja ala nuolia.

screeni:
(kun saan linkitettyä)
sprint.zip
sprint
(589.27 KiB) Downloaded 216 times
programmer of DSG wrote:
EDIT:

aika hauska peli, vähän tylsä


User avatar
Mysterius Coder
Active Member
Posts: 133
Joined: Mon Aug 27, 2007 8:13 pm

Re: Pikku pelit

Post by Mysterius Coder » Wed Aug 20, 2008 7:42 pm

Mysterious Coder ei käy enää näillä foorumeilla,
Käynpäs! Minulla ei vaan ole ikinä mitään sanottavaa. : ]
Kyllä minä osaan, mutta kun mieli on tällasen kaaoksen vallassa, niin ei siitä mitään tule.

Jormalaz
Member
Posts: 77
Joined: Sun Jun 15, 2008 9:22 pm

Re: Pikku pelit

Post by Jormalaz » Wed Aug 20, 2008 7:57 pm

Aloitusviestissä oli paljon kirjoitusvirheitä.

User avatar
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 6:02 pm

Re: Pikku pelit

Post by nevssons » Sat Aug 23, 2008 9:07 am

Tein itsekin huvikseni virtuaalilemmikin. Tämän nimi on Härö Häiskä
Tyypissä näkyy seurauksia jos statsit menee liian alas (tai joissain tapauksissa ylös).
Uutta ja ennen näkemätöntä:
Tyyppi lihoo!
EDIT:

Olkaa kilttejä ja kommentoikaa!

Attachments
HR.zip
viellä zippinä...
(609.99 KiB) Downloaded 227 times
HR.rar
(606.68 KiB) Downloaded 179 times
nimetön.jpg
nimetön.jpg (18.81 KiB) Viewed 13290 times
Last edited by nevssons on Sun Aug 24, 2008 4:56 pm, edited 4 times in total.
Koodarina kohtalainen, henkilönä vittumainen
Image

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Pikku pelit

Post by DatsuniG » Sat Aug 23, 2008 12:26 pm

Tämä ei oikeastaa on peli, mutta en viitsinyt tehä mitään threadia tälle.

Code: Select all

FrameLimit 30

    Global blinker, blink, cmd$
    
    SCREEN 500,300
    
    ClsColor 0,0,128
    
    fileopened=False 
    
    base:
    
    Repeat
        cmdinput(0,0,CurrentDir())
        DrawScreen
    Until KeyHit(cbkeyreturn)
    CloseInput
    
    cmdlower$=Lower(cmd)

        Select cmdlower$
    
    Case "help"
    Print "Tämän hetkiset komennot ovat: "
    
        Print "help"
        Print "e"+"xit"
        Print "chdir <kansio>"
        Print "upperdir"
        Print "sysroot"
        Print "systime"
        Print "sysdate"
        Print "defrag"
        Print "checkdisk"
        Print "exec <tiedosto>"
        Print "d"+"elete <tiedosto>"

        
    WaitKey
    Goto base
    
    Case "upperdir"
    ChDir ".."
    Goto base 
    
    Case "exit"
    End
    Goto base 
    
    Case "systime"
    Repeat
    Text 0,0,Time()
    DrawScreen
    Until KeyHit(cbkeyreturn)
    Goto base
    
    Case "sysdate"
    Repeat
    Text 0,0,Date()
    DrawScreen
    Until KeyHit(cbkeyreturn)
    Goto base
    
    Case "defrag"
    Execute "dfrg.msc"
    Goto base 
    
    Case "sysroot"
    For i=0 To 100
    ChDir ".."
    Next i
    Goto base 
    
    Case "checkdisk"
    Execute "chkdsk"
    Goto base 
    
    

    EndSelect
    
        
    If Mid(cmdlower$,1,5)="chdir" Then
        myselecteddir$=Mid(cmdlower$,7)
        moddeddir$=Upper(Right(myselecteddir$,1))
        ChDir moddeddir$
    EndIf   
    
    
    If Mid(cmdlower$,1,6)="delete" Then
        mydelete$=Mid(cmdlower$,8)
        If FileExists(mydelete$) Then
        DeleteFile mydelete$
    EndIf   
 EndIf 
 
     If Mid(cmdlower$,1,4)="exec" Then
        myexec$=Mid(cmdlower$,6)
        If FileExists(myexec$) Then
        Execute myexec$
    EndIf   
 EndIf 
    
    
    Goto base
    
    
    Function cmdinput(x,y,optional$)
    Color cbwhite 
      Text x,y,optional$+cmd
        
                Locate -80000,-80000
                Cmd=Input("")
                
                If TIMER()>blinker+400 Then 
                    blink=Not blink
                    blinker=TIMER()
                EndIf
        
                If blink Then 
                    Color cbwhite 
                    Box TextWidth(optional$+cmd)+2,y,7,14
                EndIf
       
       Return cmd 
       
    EndFunction 



Hengität nyt manuaalisesti.

User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 3:40 pm
Location: Lempäälä

Re: Pikku pelit

Post by kaneli2000 » Wed Sep 10, 2008 8:17 pm

Tein tommosen pienen sorsastuspelin, jossa (miten voi olla :O) ammutaan sorsia!

Ohessa zippi, pistän rarinkin hiukkasen myöhemmin.

Edit: linkin versio mavitti, postaan pian toimivan version.
Last edited by kaneli2000 on Thu Sep 11, 2008 2:58 pm, edited 1 time in total.
I see the rainbow rising

User avatar
skinkken
Advanced Member
Posts: 453
Joined: Sat Sep 01, 2007 4:00 pm
Location: Helsinki

Re: Pikku pelit

Post by skinkken » Wed Sep 10, 2008 8:53 pm

Tuossa sorsastus pelissä minulla tulee aina mav. :|
EDIT:

Siis loadingissa. :| :|


User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Pikku pelit

Post by Ilkka » Wed Sep 10, 2008 10:14 pm

skinkken wrote:Tuossa sorsastus pelissä minulla tulee aina mav. :|
EDIT:

Siis loadingissa. :| :|

Samavika. Loading... tulee kestää vähä aikaa ja MAV. Jos sais toimimaan ni ois kai se pikkupeliksi luokitettu. :D
Image

User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 3:40 pm
Location: Lempäälä

Re: Pikku pelit

Post by kaneli2000 » Thu Sep 11, 2008 2:54 pm

skinkken wrote:
EDIT:

Siis loadingissa. :| :|

Thäääh? Odotas katson...

Edit: Juu MAVi "löytyi", mutten tiedä miksi se tulee (löytymisellä tarkoitan, että jos yhden khdan ottaa pois mavi lähtee, mutt peli ei toimi.). Taidan koodata koko roskaan uusiksi.

Aika hyvä alku -_-.
I see the rainbow rising

User avatar
otto90x
Advanced Member
Posts: 349
Joined: Mon Aug 27, 2007 9:00 pm
Location: Lapinjärvi, Finland
Contact:

Re: Pikku pelit

Post by otto90x » Thu Sep 11, 2008 7:02 pm

Tässäpä oma pieni pelini

Code: Select all

SCREEN 640,480

Global sh,sw

sw=ScreenWidth()
sh=ScreenHeight()

Type flow
    Field x#
    Field y#
    Field ang#
    Field voima
    Field sx#
    Field sY#
    Field väri#
    Field angplus#
End Type

Const PAKSUUS = 10

Dim pala(2,4) As Float

pala(2,1)=10
pala(1,1)=SH-10-PAKSUUS

Dim pallo(3) As Float '0x 1y 2sx 3sy 

Global pisteetcom, pisteethuman 

Global comspeed As Float

Global gamepause, setupvalinta, setuptila

comspeed=1.00

Const laattoja = 5

Const PALANOPEUS = 7

Const VOIMAKERROIN =0.7

Const pallobufferkoko = 20

Dim pallobuffer(pallobufferkoko,2) As Float

Global flowmäärä, maksimiflowmäärä

maksimiflowmäärä=200



StartNewGame()

Repeat

    SetWindow "Cool Pong - Tietokone: "+pisteetcom+" Pelaaja: "+pisteethuman 

    UpdatePalat()
    
    UpdateFlow()
    
    UpdatePallo()
    
    Setup()

    DrawScreen

Forever

Function StartNewGame()
    pallo(0)=SW/2
    pallo(1)=SH/2
    pallo(2)=0
    pallo(3)=0
    DeleteFlow()
    pala(1,2)=11
    pala(2,2)=11
    pala(2,3)=100
    pala(1,3)=100
    pala(1,4)=0.0
    pala(2,4)=0.0
    pallobuffer(0,0)=pallo(0)
    pallobuffer(0,1)=pallo(1) 
    For i=1 To pallobufferkoko
        pallobuffer(i,0)=pallo(0)
        pallobuffer(i,1)=pallo(1)
    Next i
    
End Function 

Function Scoring(_voitto)

    
    Repeat
    
        Color 64,64,64
        
        Box 100,100,SW-200,100,0
        
        Color 96,96,96
        
        Box 102,102,SW-204,96,0
        
        Color cbwhite
        
        If _voitto>0 Then 
            Text 130,125,"Onneksi olkoon. Sinä voitit tämän erän."
        Else
            Text 130,125,"Valitettavasti tietokone voitti tämän erän."
        EndIf
        
        If pisteetcom>pisteethuman Then
            Text 130,165,"Tilanne on nyt "+pisteetcom+":"+pisteethuman+ " tietokoneen hyväksi." 
        ElseIf pisteetcom=pisteethuman Then
            Text 130,165,"Tilanne on nyt "+pisteethuman+":"+pisteetcom+ " tasapeli." 
        Else
            Text 130,165,"Tilanne on nyt "+pisteethuman+":"+pisteetcom+ " sinun hyväksesi." 
        EndIf
            
        DrawScreen
        
    Until KeyHit(cbkeyReturn)
    
    StartNewGame()
End Function 

Function UpdatePallo()

    If Not gamepause Then
    
        If pallo(1)>SH-5 Then
            pisteetcom=pisteetcom+1
            Scoring(-1)
        ElseIf pallo(1)<5 Then
            pisteethuman=pisteethuman+1
            Scoring(1)
        EndIf
            
        If pallo(0)>SW-15 Then pallo(0)=SW-15 : pallo(2)=-pallo(2)
        If pallo(0)<5 Then pallo(0)=5 : pallo(2)=-pallo(2)    
            
        pallo(0)=pallo(0)+pallo(2)
        pallo(1)=pallo(1)+pallo(3)    
    
        If pallo(2) Or pallo(3) Then 
        
            For i=0 To pallobufferkoko
            
                vx#=tx#
                vy#=ty#
            
                If i=0 Then 
                    tx#=pallobuffer(i,0)
                    ty#=pallobuffer(i,1)
                    pallobuffer(i,0)=pallo(0)
                    pallobuffer(i,1)=pallo(1) 
                Else
                    i2=(i-1)
                    tx2#=pallobuffer(i,0)
                    ty2#=pallobuffer(i,1)
                    pallobuffer(i,0)=tx#
                    pallobuffer(i,1)=ty#
                    tx#=tx2#
                    ty#=ty2#
                EndIf
            Next i
            
        EndIf
        
    EndIf
    
    i=pallobufferkoko
    
    While i>-1 
    
        If i=0 Then 
            Color 255,Rnd(0.2,0.4)*255,0
        Else
            väri#=max(Min( ( 255-((255/pallobufferkoko)*i)+Rand(20,-20) ) ,255.0),0.0)
            Color väri#,Int(väri#*Rnd(0.4,0.6)),0

        EndIf
        
        Circle pallobuffer(i,0)+4,pallobuffer(i,1),8-(i/3),1
        i-1
    
    Wend
    
End Function 



Function UpdatePalat()

    spread=30

    For i=1 To 2
        
        
         
        seis=0
        
        If i=1 Then 
        
            If Not gamepause Then
                If KeyDown(cbkeyup) And pala(i,4)=<1.0 And pala(i,4)=>0.0 Then 
                    AddFlow(pala(i,0)+pala(i,3)/2,pala(i,1)-PAKSUUS,Rand(90-spread,90+spread)) 
                    pala(i,4)=pala(i,4)+0.01
                    seis=1
                EndIf
                
                pala(i,2)=( KeyDown(cbkeyright)-KeyDown(cbkeyleft) )
                
            EndIf
            
            If pala(i,4)=>0.0 Then
                Color Min(pala(i,4)*255,255),Max(Min(255-pala(i,4)*255,255),0),0
            Else 
                Color 0,max(Min(255+pala(i,4)*255,255),0),Max(Min(-pala(i,4)*255,255),0)
            EndIf
        Else
        
            If Not gamepause Then
            
                    If pala(i,0)+(pala(i,3)/2)<pallo(0) Then 
                        pala(i,2)=comspeed
                    ElseIf pala(i,0)+(pala(i,3)/2)>pallo(0) Then 
                        pala(i,2)=-comspeed
                    EndIf
                  
                If pala(i,4)=<1.0 And pala(i,4)=>0.0 Then 
                    AddFlow(pala(i,0)+pala(i,3)/2,pala(i,1)+PAKSUUS,Rand(270-spread,270+spread)) 
                    pala(i,4)=pala(i,4)+0.01
                    seis=1
                EndIf
            EndIf

            Color 255,0,0
        EndIf
        
        If Not gamepause Then
            If pala(i,4)>1.0 Then Pala(i,4)=-pala(i,4)*2 : seis=1
            
            If pala(i,4)<0.0 Then 
                Pala(i,4)=Min(pala(i,4)+0.007,0.0) 
            ElseIf seis=0 And pala(i,4)>0.0 Then
                pala(i,4)=Max(pala(i,4)-0.0050,0.0)
            EndIf
            
            
            If pala(i,0)<0 Then 
                pala(i,0)=0
            ElseIf pala(i,0)>(SW-pala(i,3)) Then
                pala(i,0)=SW-pala(i,3)
            EndIf
            
            If abs((pala(2,0)+pala(2,3)/2)-pallo(0))<COMSPEED*2 Then pala(2,2)=0.0
            
            pala(i,0)=pala(i,0)+(PALANOPEUS*pala(i,2))
            
            
            x=pallo(0)
            y=pallo(1)
            
            If x>pala(i,0) And x<(pala(i,0)+pala(i,3)) And Abs(y-pala(i,1))=<PAKSUUS Then
                
                If pallo(3)>0 Then
                    pallo(1)=pala(i,1)-15
                Else
                    pallo(1)=pala(i,1)+PAKSUUS+5
                EndIf
    
                pallo(3)=-pallo(3)
                pallo(2)=pallo(2)+pala(i,2)*2
            EndIf
        
        EndIf
        
        Box pala(i,0),pala(i,1),pala(i,3),PAKSUUS,1
        
    Next i
End Function 


Function AddFlow(_x#,_y#,_angle#,_speed#=5.0)

    'If flowmäärä<maksimiflowmäärä Then 
        f.flow=New(flow)
        f\x=_x#
        f\y=_y#
        f\ang=WrapAngle(_angle#)
        f\sx=Cos(f\ang)*_speed#
        f\sy=-Sin(f\ang)*_speed#
        f\voima=1
        flowmäärä+1
    'EndIf

End Function  


Function DeleteFlow()
    For f.flow = Each flow
        Delete f
    Next f
    flowmäärä=0
End Function 


Function Setup()

    If KeyHit(cbkeyspace) Then gamepause=Not gamepause

    If gamepause Then 

        setupvalinta=setupvalinta-KeyHit(cbkeyleft)+KeyHit(cbkeyright)
        
        If setupvalinta=1 Then 
        
            leveys=SW-200
            korkeus=60
             
            comspeed=Min(Max(comspeed+(UpKey()-DownKey())*0.01,0.25),5.0)
            
            Color cbwhite
            
            Box 110,110,10,10,1
            
            Text 110,130,"Tietokoneen mailan nopeus: "+Float(comspeed*100)+" %."
            
            Color 128,128,128
            
            Box 130,110,10,10,1
            Box 150,110,10,10,1
            
        ElseIf setupvalinta=2 Then 
        
            leveys=SW-200
            korkeus=60
        
            Color cbwhite
            
            Box 130,110,10,10,1
            
            Text 110,130,"Ohjeet"
            
            Color 128,128,128
            
            Box 110,110,10,10,1
            Box 150,110,10,10,1
            
            If KeyHit(cbkeyreturn) Then setuptila=1 : ClearKeys
            
            If setuptila=1 Then 
                If KeyHit(cbkeyreturn) Then setuptila=0 : ClearKeys
                leveys=SW-200
                korkeus=SH-300
                Color cbwhite
                
                Text 110,170,"Ohjaa palava meteoroidi punaisen mailan taakse."
                Text 110,190,"Voit käyttää hiukkassuihkua ylöspäin näppäimestä."
                Text 110,210,"Varo hiukkassuihkun ylikuumentumista."
                Text 110,230,"Mailasi liikkuu sivusuunnassa nuolinäppäimistä."
                Text 110,250,"Voit säätää vaikeusastetta valikosta."
            EndIf
        
        ElseIf setupvalinta=3 Then
        
            Leveys=SW-200
            korkeus=60
            
            Color cbwhite
            
            Box 150,110,10,10,1
            
            Text 110,130,"Lopeta"
            
            Color 128,128,128
            
            Box 110,110,10,10,1
            Box 130,110,10,10,1
            
            If KeyHit(cbkeyreturn) Then End
        
        ElseIf setupvalinta<1 Then 
            setupvalinta=1
        ElseIf setupvalinta>3 Then 
            setupvalinta=3
        EndIf
        
        Color 64,64,64
        
        Box 100,100,leveys,korkeus,0
        
        Color 96,96,96
        
        Box 102,102,leveys-4,korkeus-4,0
    
    EndIf

 
End Function 


Function UpdateFlow()

    For f.flow = Each flow
    
        If Not gamepause Then
        
            f2.flow=First(flow)
            f2 = After(f) 
    
            'vang#=f\ang
            While f2<>NULL 
                etä#=Distance(f\x,f\y,f2\x,f2\y)
                
                maxetä#=40.0
                
                If etä<maxetä Then
    
                    f\ang=Curveangle2(f2\ang,f\ang,70.0)
                
                    f\sx=(f\sx+Cos(f\ang))*0.8
                    f\sy=(f\sy-Sin(f\ang))*0.8
                    
                    If abs(f\ang-f2\ang)<5.0 And etä<20.0 Then
                        f\voima=f\voima+1
                        Delete f2
                        flowmäärä=flowmäärä-1
                    EndIf
                    
                    
                EndIf
            
                f2 = After(f2) 
            Wend
            
       
        
            'f\angplus=f\ang-vang
            
            f\x=f\x+(f\sx#/1.5)
            f\y=f\y+(f\sy#/1.5)
    
            'f\ang=f\ang+f\angplus
            
        EndIf
        
        poisto=0

        If f\x<sw And f\x>0 And f\y<sh And f\y>0 Then

            f\väri=-Sin(f\ang)
            
            If f\väri<-0.75 Then Color 0,255,0 
            If f\väri<-0.4 Then Color 128,255,0 
            If f\väri>-0.4 Then Color 255,255,0 
            If f\väri>0.4 Then Color 255,128,0 
            If f\väri>0.75 Then Color 255,0,0 
            
            kerroin3#=2.0
             
            kerroin4#=(1+(f\voima*VOIMAKERROIN))*kerroin3#
            
            Line f\x,f\y,f\x+f\sx*kerroin4#,f\y+f\sy*kerroin4#
        
        Else
            'If f\x>sw Or f\x<0 Then 
            '    f\sx#=-f\sx# 
            '    f\x=Max(0,Min(sw,f\x))
            'EndIf
                
            'If f\y>sh Or f\y<0 Then 
            '    f\sy#=-f\sy#
            '    f\y=Max(0,Min(sh,f\y))
            'EndIf
            poisto=1
        EndIf
        
        If Not gamepause Then
        
            If poisto Then 
                Delete f
                flowmäärä=flowmäärä-1
            ElseIf Distance(pallo(0),pallo(1),f\x,f\y)<10 Then 
                pallo(2)=Max(Min( pallo(2)+(f\sx*(VOIMAKERROIN*f\voima)/7),12),-12) 
                pallo(3)=Max(Min( pallo(3)+(f\sy*(VOIMAKERROIN*f\voima)/7),12),-12)
            EndIf
        
        EndIf
    
    Next f
    

End Function 

Function CurveAngle2(targetangle#,oldangle#,incre#) 'Curves "oldangle" to "targetangle" by "incre" (e.g.homing missile)
   targetangle = WrapAngle(targetangle) : oldangle = WrapAngle(oldangle)
   If (oldangle + 360) - targetangle < targetangle - oldangle Then oldangle = 360 + oldangle
   If (targetangle + 360) - oldangle < oldangle - targetangle Then targetangle = 360 + targetangle
   oldangle = oldangle - (oldangle-targetangle) / incre
   Return oldangle
End Function

Ja tämän innoituksenahan on toiminut tämä.
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.

User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 3:40 pm
Location: Lempäälä

Re: Pikku pelit

Post by kaneli2000 » Fri Sep 12, 2008 5:22 pm

Huhhuh, olipas sorsastuksen kodaamisessa urakka (ensimmäisen version exe tosiaan mavitti, koska 6 v. sukulaiseni oli mennyt jotain söheltämään -_-) mutta sain kuitenkin valmiiksi.

Eli NYT vihdoin saan julkaistua!

Ja otolle: pelisi oli aikas hauskanoloinen ja hyvin toteutettu!
Attachments
Teh sorsatuspeli.zip
(1.1 MiB) Downloaded 215 times
I see the rainbow rising

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Pikku pelit

Post by Koodiapina » Sun Sep 14, 2008 11:45 am

Maailma on pelastettu!
Löysin sen mun Kivi, Paperi & Sakset - pelin Googletuksella. Nauttikaa.

Luulin, että se olisi iäksi tuhoutunut, mutta näemmä se oli jäänyt jonnekkin netin perukoille pyörimään.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Pikku pelit

Post by phons » Sat Oct 04, 2008 7:16 pm

Etkö tallenna pelejäsi koneellesi, Grandi? :?:
Image

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Pikku pelit

Post by Koodiapina » Sat Oct 04, 2008 8:05 pm

phons wrote:Etkö tallenna pelejäsi koneellesi, Grandi? :?:
Tallennan, mutta en itseasiassa tiedä, mihin tuo oli kadonnut. Onneksi uppaan melkein kaikki tekeleeni nettiin, joten sieltä ne varmasti löytyvät. Varmuuskopioitahan ei tosi-nörtti ota ;D Tai no, onhan tuo nettiin uppiminenkin sellaista, jos tarkkoja ollaan.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

Post Reply