Pikku pelit

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
Post Reply
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Pikku pelit

Post by Sly_Jack0 »

Varsin mainio pikkupeli! Päätin kokeilla ja tykitin ensimmäisellä yrityksellä 22676 pistettä.
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Pikku pelit

Post by Wingman »

olin tekemässä tuohon vielä loppuun kommentteja pisteiden määrästä, mutta jotenkin meni pieleen...e
em. jos saat enemmän kuin 20000p se sanoo: "voi juma..." tai jotain...
- - - -
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Pikku pelit

Post by valscion »

Ellu wrote:koodailin huvin vuoksi jotain helppoa, ja sain aikaan pallojen väistely-pelin, ihan yksinkertaisen vaan...
enemmittä puheitta, tuossa:

Code: Select all

...koodia...
yksi MAV on tullut, en tiedä mistä, mutta ei tullut seuraavalla kerralla, joten pitäisi toimia...
Minäpäs taidan tietää. "loppu"-labelin kohdalla jos painetaan entteriä, niin poistetaan kaikki objektit mutta jätetään tyhjät tyypin jäsenet hillumaan sinne. Tässä sen labelin koodinpätkä korjattuna:

Code: Select all

Forever
loppu:
Color 255,0,0
ScreenGamma 0,0,0
r=1
Repeat
    gamma-10
    ScreenGamma gamma,0,0
    If gamma<0 Then gamma=0
    r+1
    Color r,0,0
    If r>200 Then r=200
    Text 0,0,"Kuolit"
    Text 0,11,"pisteet: "+pisteet
    Text 0,22,"Vihut kentällä: "+ötötkent
    Text 0,33,"(Q) Lopeta"
    Text 0,44,"(Enter) Alkuun"
    If KeyHit(16) Then
        ClearText
        ClearKeys
        Goto loppuhäivytys
    EndIf 
    If KeyHit(28) Then
        ClearText
        ClearKeys
        For ötöx.VIHUT = Each VIHUT
            DeleteObject ötöx\obj
            Delete ötöx // <------------ HUOM!!! <---------
        Next ötöx.VIHUT
        Goto lopustaalkuun
    EndIf
    DrawScreen
Forever 
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
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Pikku pelit

Post by Wingman »

Minäpäs taidan tietää. "loppu"-labelin kohdalla jos painetaan entteriä, niin poistetaan kaikki objektit mutta jätetään tyhjät tyypin jäsenet hillumaan sinne. Tässä sen labelin koodinpätkä korjattuna:
oho! mulla ei kyllä oo tossa kohtaa mitään sattunu... mut siinä ku ennen ku alottaa ni liikuttaa tyyppiä ja samalla aloittaa... mutta kiitos tiedosta
- - - -
VRGames
Newcomer
Posts: 4
Joined: Tue Jun 02, 2009 11:04 am

Re: Pikku pelit

Post by VRGames »

Tää on melko tylsä... tein pari kk sitten
Koodille saa (täytyy) nauraa!

Code: Select all

SetWindow "Lehmäshooter"'ikkunan nimike

ääniAmmu = LoadSound ("Media\gun 1.wav")'lataa äänet
musa = PlaySound ("Media\sk_battle2.mp3")'ja soita musa
äänipum = LoadSound ("media\boom 1.wav")
ääniau=LoadSound ("media\scream1.wav")

Type lehmi 'tee kokoelma
  Field obj
End Type

Type omapati 'omat padit
  Field obj
  Field part
End Type
 
Type pum 'ja räjähdykset
  Field part
End Type 

Type bosspati 'pomon padit
  Field obj
  Field part
End Type

alku:'gotoa varten

FrameLimit 40

ClearText'poistaa pistetekstin

textreaded=False
generointisuoritettu=False
bosspaikaltaan=False 
bosskuollut=False 
paditpoistettu=False
permission=False'resetoi permissionin
bosspermission=False 
pomopaikallaan=False
bosspisteet=0
pisteet=0'resetoi pisteet
bosslife=10
extrahp=0
soundplayed=False
uusiscore=False

ruoho=MakeObjectFloor ()
'tee pelialusta
nurmikko=LoadImage("media\grass.bmp")

PaintObject ruoho,nurmikko

ukko=LoadObject ("media\guy.bmp",72)'lataa objektit
objpatioma=LoadObject ("media\bigbullet.bmp",72)
ShowObject objpatioma, OFF

imgSavu=LoadAnimImage("Media\smoke.bmp",16,16,0,12)'lataa partikkelit
imgPoks=LoadAnimImage("Media\bang.bmp",32,32,0,8)

oblehm=LoadAnimObject("media/animcow.bmp",30,25,0,2)'tee
ShowObject oblehm,OFF 'pääobjekti ja piilota se

boss=LoadObject ("media\soldier.bmp",1)
ShowObject boss,OFF 
PositionObject boss,-300,0

PositionObject ukko,150,0'sijoita ukko
RotateObject ukko,180

Color cbwhite 

AddText "Nuolista liikku, välilyönnistä ampuu."
AddText "Älä päästä lehmiä toiseen reunaan!"
AddText "paina välilyontia aloittaaksesi pelin!"

Repeat 
  

  
  If KeyHit(cbkeyp) And permission=True Then Gosub pause

  If generointisuoritettu=False Then
    A=Rand(17,23)
    generointisuoritettu=True
  EndIf

  boxwidth=(bosslife)*2

  Color cbwhite

  If permission=True Then ClearText 'käynnistä
  'pistelaskuri ja sälät spacea painettaessa
  If permission=True Then 
    AddText "Pisteet :"+pisteet
  EndIf
  
  If KeyHit(cbkeyspace) Then permission=True 'aloita peli spacestä

  If Not UpKey() Or DownKey() Then RotateObject ukko,180
  If UpKey() Then RotateObject ukko,90'liikkumissysteemi
  If DownKey() Then RotateObject ukko,270
  If UpKey() Or DownKey() Then MoveObject ukko,2
  'elä päästä ukkoa rajojen ulkopuolelle
    If ObjectY(ukko)<-130 Then PositionObject ukko,ObjectX(ukko),-130
    If ObjectY(ukko)>130 Then PositionObject ukko,ObjectX(ukko),130
  'lehmä- ja pistemekanismi
  If permission=True And Timer()>hetki+Rand(500,1500) And bosspermission=False Then
    lehm.lehmi = New(lehmi)
    lehm\obj = cloneobject(oblehm)
    PositionObject lehm\obj,-200,Rand(130,-130)
    hetki=Timer()
  EndIf 
  'lehmien animointi, liikutus ja poisto 
  For lehm = Each lehmi' sekä pelin lopetus lehmän osuessa
    PlayObject lehm\obj,0,2,0.2
    MoveObject lehm\obj,1
      If ObjectsOverlap (lehm\obj,ukko,3) Then Goto gameover
      If ObjectX(lehm\obj)>200 Then Goto gameover

    Next lehm
    
  If KeyHit(cbkeyspace) and permission=True Then 
    PlaySound ääniAmmu,50
    pati.omapati = New(omapati)
    pati\obj=CloneObject (objpatioma)
    CloneObjectPosition pati\obj,ukko
    CloneObjectOrientation pati\obj,ukko
    SetupCollision pati\obj,boss,2,2,2
    ResetObjectCollision pati\obj
    MoveObject pati\obj,10
    pati\part=MakeEmitter(imgsavu,20)
    ParticleMovement pati\part,0,0
    ParticleEmission pati\part,1,1,1 
    ParticleAnimation pati\part,11
  EndIf
  
  UpdateGame 
  
  For pati = Each omapati
    MoveObject pati\obj,5'liikuta omia pateja
    CloneObjectPosition pati\part,pati\obj'siirrä partikkeli oikeaan paikkaan
        For lehm = Each lehmi'ilman tätä tulee MAV:i
          If ObjectsOverlap (lehm\obj,pati\obj,3) Then'poistetaan 
            pisteet=pisteet+1'lehmät,lisätään pisteet,soitetaan äänet
            PlaySound äänipum'ja tehdään räjähdykset, jos pati osui
            poks.pum = New (pum)
            poks\part = MakeEmitter(imgPoks,10)
            CloneObjectPosition poks\part,pati\obj
            ObjectLife poks\part,11
            'aseta partikkelilähteen ominaisuudet    
            ParticleMovement poks\part,0,0
            ParticleEmission poks\part,2,1,1
            '8 animaatio-framea        
            ParticleAnimation poks\part,7 
            bosspisteet=bosspisteet+1
            DeleteObject lehm\obj'poista lehmäobjekti
            Delete lehm'poista lehmä kokonaan
           
          EndIf 
        Next lehm 'poista luodit jos ne menee liian kauas--->---->----->----> ------->
      If ObjectX(pati\obj)<-250 Or ObjectY(pati\obj)<-150 Or ObjectY(pati\obj)>150 Then
      DeleteObject pati\obj
      DeleteObject pati\part
      Delete pati
    EndIf   

  Next pati
  
   If SoundPlaying(musa)=0 Then 'looppaa musa
        musa = PlaySound ("Media\SK_Battle2.mp3")
   EndIf 
   If bosspisteet=A+extrahp Then 
     bosspermission=True 
     bosskuollut=False
   EndIf 
   
   If bosspermission=True Then 
    AddText "Pomo HP :"+bosslife
    
    DrawGame
     
     For lehm= Each lehmi
       DeleteObject lehm\obj
       Delete lehm
     Next lehm
     If paditpoistettu=False Then 
       For pati=Each omapati
         DeleteObject pati\obj
         DeleteObject pati\part
         Delete pati
       Next pati
        
       paditpoistettu=True
     EndIf 
     ShowObject boss,ON 
       While pomopaikallaan=False 
         If pomopaikallaan=False Then 
           MoveObject boss,2
         EndIf
         If ObjectX(boss)>-120 Then 
           pomopaikallaan=True
         EndIf 
         DrawScreen 
       Wend 
       
      Color 0,210,0
    Box 5,27,boxwidth,20,ON
      Color cbwhite 
    Box 4,26,boxwidth+2,22,OFF       
       
     If Timer()>pomohetki+Rand(750,2500) And pomopaikallaan=True Then 
       ohjus.bosspati = New(bosspati)
       ohjus\obj = CloneObject (objpatioma)
       CloneObjectPosition ohjus\obj,boss
       MoveObject ohjus\obj,18
       ohjus\part=makeemitter(imgsavu,20)
       ParticleMovement ohjus\part,0,0
       ParticleEmission ohjus\part,1,1,1 
       ParticleAnimation ohjus\part,11
       pomohetki=Timer()
     EndIf
     For ohjus=Each bosspati
       MoveObject ohjus\obj,4
       CloneObjectPosition ohjus\part,ohjus\obj
       If ObjectsOverlap(ohjus\obj,ukko) Then Goto gameover
       If ObjectX(ohjus\obj)>250 Then 
           DeleteObject ohjus\part
           DeleteObject ohjus\obj
           Delete ohjus
         EndIf
     Next ohjus
     If Timer()>suuntimer+1000 Then
       suunta=Rand(0,2)
       suuntimer=Timer()
     EndIf
     If suunta=1 Then RotateObject boss,90
     If suunta=2 Then RotateObject boss,270
     If suunta=1 Or suunta= 2 Then MoveObject boss,2
     If suunta=0 Then RotateObject boss,0

     If ObjectY(boss)<-130 Then 
     PositionObject boss,ObjectX(boss),-130
     EndIf
     If ObjectY(boss)>130 Then 
     PositionObject boss,ObjectX(boss),130
     EndIf

     For pati = Each omapati
       If ObjectsOverlap(pati\obj,boss) Then 
       bosslife=bosslife-1 
            
            poks.pum = New (pum)
            poks\part = MakeEmitter(imgPoks,10)
            CloneObjectPosition poks\part,pati\obj
            ObjectLife poks\part,11
                
            ParticleMovement poks\part,0,0
            ParticleEmission poks\part,2,1,1
                  
            ParticleAnimation poks\part,7 
            If CountCollisions(pati\obj)  Then 
            PlaySound äänipum
            DeleteObject pati\obj
            DeleteObject pati\part
            Delete pati
            EndIf
       EndIf
     Next pati
     
     If bosslife<1 Then bosskuollut=True 
     
     If bosskuollut=True Then 
     If soundplayed=False Then 
       PlaySound ääniau
       soundplayed=True
     EndIf
     
       While bosspaikaltaan=False
       
         For ohjus = Each bosspati
           DeleteObject ohjus\obj
           DeleteObject ohjus\part
           Delete ohjus
         Next ohjus
         
         For pati=Each omapati
           DeleteObject pati\obj
           DeleteObject pati\part
           Delete pati
         Next pati
         
         RotateObject boss,0
         MoveObject boss,-2
         If ObjectX (boss)<-300 Then bosspaikaltaan=True
         
         DrawScreen 
       Wend 
     EndIf
     If bosspaikaltaan=True Then 
       pisteet=pisteet+10+extrahp
       extrahp=extrahp+10
       bosslife=10
       bosslife=bosslife+extrahp
       bosspisteet=0
       bosspermission=False
       bosskuollut=False
       bosspaikaltaan=False
       paditpoistettu=False 
       pomopaikallaan=False
       soundplayed=False
       generointisuoritettu=False
     EndIf
   EndIf
   
  DrawScreen'nämä pitäisi olla tuttuja
Forever 

gameover:
ClearObjects'tyhjennä ruutu lehmistä ja muista objekteista
For lehm =Each lehmi'poista lehmät kokonaan
  Delete lehm
Next lehm 
For pati=Each omapati
  Delete pati
Next pati
For ohjus=Each bosspati
  Delete ohjus
Next ohjus

h=OpenToRead ("media\temp.dat")
  hiscore=ReadShort(h)
CloseFile h
If hiscore>15000 Then hiscore=0
If pisteet>hiscore Then
  h=OpenToWrite("media\temp.dat")
  WriteShort h,pisteet
  CloseFile h
  uusiscore=True
EndIf

Repeat 'gameover teksti
  ClearText 
  AddText "Pisteet :"+pisteet
  Text 50,50, "Game Over! Enter=uudestaan, Esc=poistu"
  'palaa alkuun entteriä painettaessa
  If KeyHit(28) Then Goto alku
  h=OpenToRead ("media\temp.dat")
    score=ReadShort(h)
    Text 50,100,"Hi-score :"+score
  CloseFile h
  
  If uusiscore=True Then AddText "Uusi huipputulos!" 
  
  DrawScreen
  
Until KeyHit(1)
End 'lopeta ohjelma

pause:

ClearKeys 

AddText "Game paused"

Repeat
  If KeyHit(cbkeyp) Then Return
  
  DrawScreen
  
Forever 
Projut=
GTA - Jäätynyt, tylsä koodata
Time trap - Arcaderäiskintä, pelimoottori lähes valmis
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Pikku pelit

Post by Wingman »

tässä, räiskintä piirtokomennoilla

Code: Select all

SetWindow "CrossFire"
SCREEN 800,600,0,1
Type SOME
    Field obj
EndType
Type AMMUS
    Field obj
EndType 
Type AMMUS2
    Field obj
EndType 
ötöi=MakeImage(15,11)
omai=MakeImage(15,11)
omatani=MakeImage(20,13)
patii=MakeImage(5,2)
patii2=MakeImage(5,2)
DrawToImage ötöi 
    Color 255,255,0
    'Circle 1,0,9,1
    'Circle 0,1,9,1
    Circle 1,1,9,1
    Line 5,6,15,6    
    Line 5,3,15,3
DrawToImage patii
    Ellipse 0,0,5,2,1
DrawToImage omai 
    Color 0,255,255
    'Circle 1,0,9,1
    'Circle 0,1,9,1
    Circle 1,1,9,1
    Line 5,6,15,6    
    Line 5,3,15,3    
DrawToImage omatani
    Box 0,0,20,13,0    
DrawToImage patii2    
    Ellipse 0,0,5,2,1
DrawToScreen 
ötötur=MakeObject(180)
PaintObject ötötur,-ötöi
omatur=MakeObject(180)
omatan=MakeObject(180)
pati=MakeObject(180)
pati2=MakeObject(180)
PaintObject omatur,-omai
PaintObject omatan,-omatani
PaintObject pati,-patii
PaintObject pati2,-patii2
ShowObject ötötur,OFF
ShowObject pati,OFF 
ShowObject pati2,OFF 
ShowMouse OFF 
alku:
plusx=1
plusy=1
plusvx=1
plusvy=1
AddText "liikkuu W,A,S,D"
AddText "väistele tykkien panoksia"
AddText "(Enter) Aloita"
Repeat 
    If KeyHit(28) Then 
        ClearText 
        ClearKeys
        Goto peli
    EndIf 
    If KeyDown(cbkeyw) Then MoveObject omatan,2
    If KeyDown(cbkeys) Then MoveObject omatan,-2
    If KeyDown(cbkeya) Then TurnObject omatan,3
    If KeyDown(cbkeyd) Then TurnObject omatan,-3
    CloneObjectPosition omatur,omatan
    CloneObjectOrientation omatur,omatan
    If ObjectX(omatan)<-400 Then PositionObject omatan,-400,ObjectY(omatan)
    If ObjectX(omatan)>400 Then PositionObject omatan,400,ObjectY(omatan)
    If ObjectY(omatan)<-300 Then PositionObject omatan,ObjectX(omatan),-300
    If ObjectY(omatan)>300 Then PositionObject omatan,ObjectX(omatan),300
    Color 50,50,50
    Text x+5,y+5,"CROSSFIRE"

    Color -vx/2,vy/2,0
    Text x,y,"CROSSFIRE"
    vx=vx+plusvx
    vy=vy+plusvy
    If vy<1 Or vy>255 Then plusvx=-plusvx
    If vy<1 Or vy>255 Then plusvy=-plusvy
    x = x + plusx    
    If x<0 Or x>800-TextWidth("CROSS FIRE") Then plusx= -plusx
    y = y + plusy    
    If y<0 Or y>600-TextHeight("CROSS FIRE") Then plusy= -plusy
    DrawScreen 
Forever 
peli:
elämä=255
ötökent=0
pisteet=0
ötöpisteet=50
Repeat 
    If KeyDown(cbkeyw) Then MoveObject omatan,2
    If KeyDown(cbkeys) Then MoveObject omatan,-2
    If KeyDown(cbkeya) Then TurnObject omatan,3
    If KeyDown(cbkeyd) Then TurnObject omatan,-3
    CloneObjectPosition omatur,omatan
    CloneObjectOrientation omatur,omatan
    If ObjectX(omatan)<-400 Then PositionObject omatan,-400,ObjectY(omatan)
    If ObjectX(omatan)>400 Then PositionObject omatan,400,ObjectY(omatan)
    If ObjectY(omatan)<-300 Then PositionObject omatan,ObjectX(omatan),-300
    If ObjectY(omatan)>300 Then PositionObject omatan,ObjectX(omatan),300
    If Timer()>record+2000 Then            
        ötöt.SOME=New(SOME)
        ötöt\obj=CloneObject(ötötur)
        PositionObject ötöt\obj,Rand(-400,400),Rand(-300,300)
        record=Timer()
        ötökent+1
    EndIf
    For ötöt.SOME=Each SOME
        PointObject ötöt\obj,omatan
    Next ötöt.SOME
    If Timer()>record2+600 Then 
        For ötöt.SOME=Each SOME
            
            ammuksiakentällä+1
            luoti.AMMUS=New(AMMUS)
            luoti\obj=CloneObject(pati)
            CloneObjectPosition luoti\obj,ötöt\obj
            CloneObjectOrientation luoti\obj,ötöt\obj
            MoveObject luoti\obj,3   
            record2=Timer()                      
        Next ötöt.SOME
    EndIf 
    For luoti.AMMUS=Each AMMUS
        MoveObject luoti\obj,3
        If ObjectsOverlap(luoti\obj,omatan) Then 
            elämä-1
        EndIf 
    Next luoti.AMMUS
    For luoti2.AMMUS2=Each AMMUS2
        MoveObject luoti2\obj,3
    Next luoti2.AMMUS2 
    pisteet+1
    If pisteet<1 Then pisteet=1
    Color -pisteet/20,pisteet/20,0
    Line 0,0,pisteet/10,0
    Line 0,2,pisteet/10,2
    Line 0,4,pisteet/10,4
    Line 0,6,pisteet/10,6
    Line 0,8,pisteet/10,8
    Line 0,10,pisteet/10,10
    Color pisteet/20,-pisteet/20,0
    Line 0,1,pisteet/20,1
    Line 0,3,pisteet/20,3
    Line 0,5,pisteet/20,5
    Line 0,7,pisteet/20,7
    Line 0,9,pisteet/20,9

    Color -elämä,elämä,0
    Line 0,11,elämä/3,11
    Line 0,12,elämä/2,12
    Line 0,13,elämä/3,13
    Line 0,14,elämä/2,14
    Line 0,15,elämä/3,15
    Line 0,16,elämä/2,16
    Line 0,17,elämä/3,17
    Line 0,18,elämä/2,18
    Line 0,19,elämä/3,19
    Line 0,20,elämä/2,20
    Color 1,1,1
    Text 0,-1,""+pisteet
    Text 1,-1,""+pisteet
    Text 0,10,""+elämä
    Text 1,10,""+elämä
    If elämä<1 Then
        ClearKeys
        Goto loppu
    EndIf 
    DrawScreen ON 
Forever 


loppu:
Repeat 
    Color 255,0,0
    Text 0,0,"pisteet: "+pisteet
    Text 0,11,"vihollisia kentällä: "+ötökent
    Text 0,22,"(Q) lopeta."
    If KeyDown(16) Then End
    DrawScreen 
Forever
taitaa olla loma nyt, kun näitä pikkupelejä tulee multa 1kpl/päivä :D
- - - -
User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: Pikku pelit

Post by Substance »

Ellu wrote:tässä, räiskintä piirtokomennoilla

Code: Select all

...koodi...
taitaa olla loma nyt, kun näitä pikkupelejä tulee multa 1kpl/päivä :D
Ihan hauska, kentällä oli 48 vihua kun kuolin. Harmi vaan kun ei voinut itse ampua.
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Pikku pelit

Post by phons »

Pistin paremmaks: 59 vihuu kentäl ja pisteit 2096
Image
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Pikku pelit

Post by kaneli2000 »

Itse osuin lehmään jo toisen bossin jälkeen ja kuolin >.< . Luulin että niinhin saa osua (huoh).
I see the rainbow rising
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Pikku pelit

Post by Wingman »

LittleGreen wrote:Ihan hauska, kentällä oli 48 vihua kun kuolin. Harmi vaan kun ei voinut itse ampua.
en saanut vihollisten ja luotien törmäystä toimimaan, joten jätin pois...
- - - -
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Pikku pelit

Post by MaGetzUb »

Ellu wrote:
LittleGreen wrote:Ihan hauska, kentällä oli 48 vihua kun kuolin. Harmi vaan kun ei voinut itse ampua.
en saanut vihollisten ja luotien törmäystä toimimaan, joten jätin pois...
Koitappa vaikka käyttää DIstance komentoa. Jos panoksen ja tankin etäisyys on tarpeeksi pieni niin vähennetään energiaa ja tuhotaan panos. :) ;)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Pikku pelit

Post by Sly_Jack0 »

phons wrote:Pistin paremmaks: 59 vihuu kentäl ja pisteit 2096
45 vihuu ja pisteitä 5433.
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Pikku pelit

Post by Wingman »

programmer of DSG wrote:Koitappa vaikka käyttää DIstance komentoa. Jos panoksen ja tankin etäisyys on tarpeeksi pieni niin vähennetään energiaa ja tuhotaan panos. :) ;)
kiitti tiedosta, mietinkin millä muulla ku objectsoverlapilla sen vois tehä... :roll:
EDIT:

Ei toimi, antaa MAVin kun yrittää ampua, tässä Mavittava koodi:

Code: Select all

SetWindow "CrossFire"
SCREEN 800,600,0,1
Type SOME
    Field obj
EndType
Type AMMUS
    Field obj
EndType
Type AMMUS2
    Field obj
EndType
ötöi=MakeImage(15,11)
omai=MakeImage(15,11)
omatani=MakeImage(20,13)
patii=MakeImage(5,2)
patii2=MakeImage(5,2)
DrawToImage ötöi
    Color 255,255,0
    'Circle 1,0,9,1
    'Circle 0,1,9,1
    Circle 1,1,9,1
    Line 5,6,15,6   
    Line 5,3,15,3
DrawToImage patii
    Ellipse 0,0,5,2,1
DrawToImage omai
    Color 0,255,255
    'Circle 1,0,9,1
    'Circle 0,1,9,1
    Circle 1,1,9,1
    Line 5,6,15,6   
    Line 5,3,15,3   
DrawToImage omatani
    Box 0,0,20,13,0   
DrawToImage patii2   
    Ellipse 0,0,5,2,1
DrawToScreen
ötötur=MakeObject(180)
PaintObject ötötur,-ötöi
omatur=MakeObject(180)
omatan=MakeObject(180)
pati=MakeObject(180)
pati2=MakeObject(180)
PaintObject omatur,-omai
PaintObject omatan,-omatani
PaintObject pati,-patii
PaintObject pati2,-patii2
ShowObject ötötur,OFF
ShowObject pati,OFF
ShowObject pati2,OFF
ShowMouse OFF
alku:
plusx=1
plusy=1
plusvx=1
plusvy=1
AddText "liikkuu W,A,S,D"
AddText "väistele tykkien panoksia"
AddText "(Enter) Aloita"
Repeat
    If KeyHit(28) Then
        ClearText
        ClearKeys
        Goto peli
    EndIf
    If KeyDown(cbkeyw) Then MoveObject omatan,2
    If KeyDown(cbkeys) Then MoveObject omatan,-2
    If KeyDown(cbkeya) Then TurnObject omatan,3
    If KeyDown(cbkeyd) Then TurnObject omatan,-3
    CloneObjectPosition omatur,omatan
    CloneObjectOrientation omatur,omatan
    If ObjectX(omatan)<-400 Then PositionObject omatan,-400,ObjectY(omatan)
    If ObjectX(omatan)>400 Then PositionObject omatan,400,ObjectY(omatan)
    If ObjectY(omatan)<-300 Then PositionObject omatan,ObjectX(omatan),-300
    If ObjectY(omatan)>300 Then PositionObject omatan,ObjectX(omatan),300
    Color 50,50,50
    Text x+5,y+5,"CROSSFIRE"

    Color -vx/2,vy/2,0
    Text x,y,"CROSSFIRE"
    vx=vx+plusvx
    vy=vy+plusvy
    If vy<1 Or vy>255 Then plusvx=-plusvx
    If vy<1 Or vy>255 Then plusvy=-plusvy
    x = x + plusx   
    If x<0 Or x>800-TextWidth("CROSS FIRE") Then plusx= -plusx
    y = y + plusy   
    If y<0 Or y>600-TextHeight("CROSS FIRE") Then plusy= -plusy
    DrawScreen
Forever
peli:
elämä=255
ötökent=0
pisteet=0
ötöpisteet=50
Repeat
    If KeyDown(cbkeyw) Then MoveObject omatan,2
    If KeyDown(cbkeys) Then MoveObject omatan,-2
    If KeyDown(cbkeya) Then TurnObject omatan,3
    If KeyDown(cbkeyd) Then TurnObject omatan,-3
    CloneObjectPosition omatur,omatan
    CloneObjectOrientation omatur,omatan
    If ObjectX(omatan)<-400 Then PositionObject omatan,-400,ObjectY(omatan)
    If ObjectX(omatan)>400 Then PositionObject omatan,400,ObjectY(omatan)
    If ObjectY(omatan)<-300 Then PositionObject omatan,ObjectX(omatan),-300
    If ObjectY(omatan)>300 Then PositionObject omatan,ObjectX(omatan),300
    If Timer()>record+2000 Then           
        ötöt.SOME=New(SOME)
        ötöt\obj=CloneObject(ötötur)
        PositionObject ötöt\obj,Rand(-400,400),Rand(-300,300)
        record=Timer()
        ötökent+1
    EndIf
    For ötöt.SOME=Each SOME
        PointObject ötöt\obj,omatan
    Next ötöt.SOME
    If Timer()>record2+600 Then
        For ötöt.SOME=Each SOME
           
            ammuksiakentällä+1
            luoti.AMMUS=New(AMMUS)
            luoti\obj=CloneObject(pati)
            CloneObjectPosition luoti\obj,ötöt\obj
            CloneObjectOrientation luoti\obj,ötöt\obj
            MoveObject luoti\obj,3   
            record2=Timer()                     
        Next ötöt.SOME
    EndIf
    If KeyDown(57) Then 
        If Timer()>record3+600 Then
            ammuksiakentällä+1
            luoti2.AMMUS2=New(AMMUS2)
            luoti2\obj=CloneObject(pati2)
            CloneObjectPosition luoti2\obj,omatur
            CloneObjectOrientation luoti2\obj,omatur             
            record3=Timer()                     
        EndIf 
    EndIf
    For luoti.AMMUS=Each AMMUS
        MoveObject luoti\obj,3
        If ObjectsOverlap(luoti\obj,omatan) Then
            elämä-1
        EndIf
    Next luoti.AMMUS
    
    For luoti2.AMMUS2=Each AMMUS2
        MoveObject luoti2\obj,3
        If Distance(ObjectX(ötöt\obj),ObjectY(ötöt\obj),ObjectX(luoti2\obj),ObjectY(luoti2\obj))<1 Then 
            DeleteObject ötöt\obj
            Delete ötöt
            DeleteObject luoti2\obj
            Delete luoti2
        EndIf 
    Next luoti2.AMMUS2
    
    pisteet+1
    If pisteet<1 Then pisteet=1
    Color -pisteet/20,pisteet/20,0
    Line 0,0,pisteet/10,0
    Line 0,2,pisteet/10,2
    Line 0,4,pisteet/10,4
    Line 0,6,pisteet/10,6
    Line 0,8,pisteet/10,8
    Line 0,10,pisteet/10,10
    Color pisteet/20,-pisteet/20,0
    Line 0,1,pisteet/20,1
    Line 0,3,pisteet/20,3
    Line 0,5,pisteet/20,5
    Line 0,7,pisteet/20,7
    Line 0,9,pisteet/20,9

    Color -elämä,elämä,0
    Line 0,11,elämä/3,11
    Line 0,12,elämä/2,12
    Line 0,13,elämä/3,13
    Line 0,14,elämä/2,14
    Line 0,15,elämä/3,15
    Line 0,16,elämä/2,16
    Line 0,17,elämä/3,17
    Line 0,18,elämä/2,18
    Line 0,19,elämä/3,19
    Line 0,20,elämä/2,20
    Color 1,1,1
    Text 0,-1,""+pisteet
    Text 1,-1,""+pisteet
    Text 0,10,""+elämä
    Text 1,10,""+elämä
    If elämä<1 Then
        ClearKeys
        Goto loppu
    EndIf
    DrawScreen ON
Forever


loppu:
Repeat
    Color 255,0,0
    Text 0,0,"pisteet: "+pisteet
    Text 0,11,"vihollisia kentällä: "+ötökent
    Text 0,22,"(Q) lopeta."
    If KeyDown(16) Then End
    DrawScreen
Forever 
[/edit]
- - - -
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Pikku pelit

Post by rami123 »

Tein ajankulukseni tälläisen väistelypelin, mitä kauemmin olet hengissä sitä enemmän pisteitä :roll:

ohjaukset:
liikkuminen vasen ja oikea nuolinäppäin
ylöspäin välilyönti
tauko P

Väistele lentokoneita ja ammuksia, jotka tulevat kohti!

omat pisteeni:3221 ;)
EDIT:

huomasin,että fps tipahtaa välillä ja nouseekin :?

Attachments
lentokone.zip
(605.37 KiB) Downloaded 271 times
User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Pikku pelit

Post by buke44 »

Tässä olisi rahantekopeli beta. Pelin ideana on tienata rahaa ostamalla ja myymällä osakkeita, myös osakkeiden omistamisesta saa voitto osinkoja. Suurin osa ohjeista on pelin sisällä. Osakekurssit päivittyvät aina päivien "välissä".http://up.servut.us/15881 Alkupaikkaan eli kotiin pääset painamalla vasenta controllia.
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Pikku pelit

Post by DatsuniG »

Pitkästä aikaa piti jotakin vääntää, ja tässä on tulos. Pelissä on siis ideana poksauttaa kolmen tai useamman neliön rykelmiä mahdollisimman monta 15 sekunnin aikana. Mitä isompi rykelmä, sitä enemmän pisteitä. Postailkaa ennätyksiänne sekä mahdollisesti löytämiänne virheitä.

Code: Select all

FrameLimit 20

Global gPoints, gComboMeter, gBlockWidth, gBlockID As integer
gBlockWidth = 20
Dim BLOCKS(ScreenWidth()/gBlockWidth - 1,ScreenHeight()/gBlockWidth - 1,1) As integer

GenerateBlocks()

cTimer = Timer()
Repeat
    SetWindow "Points: "+gPoints+"  -  Time left: "+Max(0,(15 - (Timer() - cTimer)/1000))
    If Timer() - cTimer < 15000 Then 
        If MouseHit(1) Then 
            CheckBlocks(MouseX() / gBlockwidth,MouseY() / gBlockWidth,1)
            ClearSelectedBlocks()
        EndIf 
        UpdateBlockPosition()
        DrawBlocks()
    Else
        Color cbwhite 
        Text (ScreenWidth() - TextWidth("You scored "+gPoints+" points!")) / 2, (ScreenHeight() - TextHeight("You scored "+gPoints+" points!")) / 2, "You scored "+gPoints+" points!"
        Text 2,2,"Press R for a new game"
        Text 2,18,"Press Q or ESC to quit"
    EndIf 
    
    If KeyHit(cbKeyR) Then 
        GenerateBlocks()
        gPoints = 0
        gComboMeter = 0
        cTimer = Timer()
    EndIf 
    
    If KeyHit(cbkeyQ) Then End 
    DrawScreen
Forever 

Function GenerateBlocks()
    InitBlocks()
    For a = 0 To ScreenHeight()/gBlockWidth - 1
        For i = 0 To ScreenWidth()/gBlockWidth - 1
            BLOCKS(i,a,0) = Rand(1,5)
        Next i
    Next a
EndFunction 

Function InitBlocks()
    For a = 0 To ScreenHeight()/gBlockWidth - 1
        For i = 0 To ScreenWidth()/gBlockWidth - 1
            BLOCKS(i,a,1) = 0
        Next i
    Next a
EndFunction 

Function CheckBlocks(x#,y#,firstblock = 0)
    x = RoundDown(x)
    y = RoundDown(y)
    If FirstBlock = True Then 
        gCombometer = 0
        gBlockID = BLOCKS(int(x),int(y),0)
    EndIf 
    
    If BLOCKS(int(x),int(y),0) = gBlockID And BLOCKS(int(x),int(y),1) = 0 Then 
        BLOCKS(int(x),int(y),1) = 1
        gComboMeter + 1
        CheckBlocks(LimitX(x - 1),LimitY(y))
        CheckBlocks(LimitX(x + 1),LimitY(y))
        CheckBlocks(LimitX(x),LimitY(y - 1))
        CheckBlocks(LimitX(x),LimitY(y + 1))
    EndIf 
EndFunction 

Function ClearSelectedBlocks()
    If gComboMeter > 2 Then 
        For a = 0 To ScreenHeight()/gBlockWidth - 1
            For i = 0 To ScreenWidth()/gBlockWidth - 1
                If BLOCKS(i,a,1) = 1 Then BLOCKS(i,a,0) = 0
            Next i
        Next a    
        gPoints = gPoints + 2^gComboMeter * 10
    EndIf 
InitBlocks()
EndFunction 

Function DrawBlocks()
    For a = 0 To ScreenHeight()/gBlockWidth - 1
        For i = 0 To ScreenWidth()/gBlockWidth - 1
            Select BLOCKS(i,a,0)
                Case 1
                    Color cbred
                    Box i * gBlockWidth,a * gBlockWidth,gBlockWidth,gBlockWidth
                Case 2
                    Color cbblue
                    Box i * gBlockWidth,a * gBlockWidth,gBlockWidth,gBlockWidth
                Case 3
                    Color cbyellow
                    Box i * gBlockWidth,a * gBlockWidth,gBlockWidth,gBlockWidth
                Case 4
                    Color cbOrange
                    Box i * gBlockWidth,a * gBlockWidth,gBlockWidth,gBlockWidth
                Case 5
                    Color cbpurple
                    Box i * gBlockWidth,a * gBlockWidth,gBlockWidth,gBlockWidth
            EndSelect
            Color cbblack 
            Box i * gBlockWidth,a * gBlockWidth,gBlockWidth,gBlockWidth,0
        Next i
    Next a
EndFunction 

Function UpdateBlockPosition()
    For a = 0 To ScreenHeight()/gBlockWidth - 2
        For i = 0 To ScreenWidth()/gBlockWidth - 1
            If BLOCKS(i,a + 1,0) = 0 Then BLOCKS(i,a + 1,0) = BLOCKS(i,a,0) : BLOCKS(i,a,0) = 0
            If a = 0 And BLOCKS(i,a,0) = 0 Then BLOCKS(i,a,0) = Rand(1,5)
        Next i
    Next a
EndFunction 

Function LimitX(x)
    Return Max(Min(ScreenWidth()/gBlockWidth - 1,x),0)
EndFunction 

Function LimitY(y)
    Return Max(Min(ScreenHeight()/gBlockWidth - 1,y),0)
EndFunction 
Hengität nyt manuaalisesti.
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Pikku pelit

Post by Sly_Jack0 »

Hieno peli kaikin puolin! Pisteet: 11840.
EDIT:

Pissteet vähän parani. 45840!

E.T.
Newcomer
Posts: 42
Joined: Thu Jul 03, 2008 9:33 am

Re: Pikku pelit

Post by E.T. »

Muuten hyvä, mutta isoista rykelmistä saa ihan liikaa pisteitä verrattuna pieniin. Kun poistaa yhden neliön enemmän saa kaksinkertaiset pisteet.
Tulos: 176400 pistettä
Quidquid latine dictum sit, altum videtur.
Voitot: Viikkokisa XVII
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Pikku pelit

Post by DatsuniG »

E.T. wrote:Muuten hyvä, mutta isoista rykelmistä saa ihan liikaa pisteitä verrattuna pieniin. Kun poistaa yhden neliön enemmän saa kaksinkertaiset pisteet.
Tulos: 176400 pistettä
Juuri tämän takia peli ei ole nopeudesta kiinni.
Hengität nyt manuaalisesti.
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Pikku pelit

Post by phons »

Image


Sori pojat... Joo... Ensimmäisessä palikka kasassa oli yli 15 palikkaa niin kyllä tuli pisteitä. XD
Image
Post Reply