Tyhmät kysymykset (I/2011)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
Bajamaja
Newcomer
Posts: 23
Joined: Thu Feb 17, 2011 7:02 pm

Re: Tyhmät kysymykset (I/2011)

Post by Bajamaja »

Anteeksi tuplapostaus. Tuli taas vastaan ongelma...

Code: Select all

Type TATIT
 Field tat
End Type


Type AMMUS
  Field obj
End Type


FrameLimit 40

SCREEN 1000,900

Slurp = LoadSound ("Media\Slurppaus.wav")

Musa = PlaySound ("Media\EpicFail.mp3")

hero = LoadObject ("Media\Hero1.bmp",360)

lol = LoadObject ("Media\Ammus.bmp",360)

ampu = LoadSound ("Media\ampu.wav")

tatti = LoadObject ("Media\Tatti.bmp",360)

tohveli = LoadObject ("Media\Tohveli.bmp",360)


PositionObject tohveli, 1010, 30




Repeat

 ShowObject lol,OFF
 ShowObject tatti,OFF




 
 
 
 




Gosub Musiikki
  Gosub Liiku
Gosub Tatteilu
 Gosub Ammu
  




 DrawScreen
 
Forever






End


 
  
Liiku:

  
 If KeyDown (cbkeyW) Then MoveObject hero,5
 If KeyDown (cbkeyS) Then MoveObject hero,-4
 If KeyDown (cbkeyD) Then TurnObject hero,-6
 If KeyDown (cbkeyA) Then TurnObject hero,6
Return 

Tatteilu:

If Odotus=0 Then 
 ok.TATIT = New (TATIT)
ok\tat=CloneObject (tatti)

 CloneObjectPosition ok\tat,tohveli


PlaySound Slurp

Odotus = 100



EndIf



 If Odotus>0 Then Odotus=Odotus-1
 For ok.TATIT = Each TATIT
 


 If ObjectsOverlap (hero,ok\tat,2) Then
Gosub FAIL
EndIf

PointObject ok\tat,hero

MoveObject ok\tat,3
 For pum.AMMUS = Each AMMUS
If ObjectsOverlap (pum\obj,ok\tat,2) Then
 Gosub osuma
EndIf
 Next pum
Next ok


Return





Ammu:

 If KeyDown (cbkeyRcontrol) And reload=0 Then 
pum.AMMUS = New (AMMUS)
pum\obj=CloneObject (lol)
 
 CloneObjectPosition pum\obj,hero
 CloneObjectOrientation pum\obj,hero

PlaySound ampu 
 
reload=5
EndIf 

If reload>0 Then reload=reload-1



For pum.AMMUS = Each AMMUS



 MoveObject pum\obj,30
 If ObjectX (pum\obj)<-1000 Or ObjectX (pum\obj)>1000 Or ObjectY (pum\obj)<-1000 Or ObjectY (pum\obj)>1000
DeleteObject pum\obj
Delete pum

EndIf


Next pum
 
 
 Return 
 
 



Musiikki:

 If SoundPlaying(Musa)=0 Then
 Musa = PlaySound ("Media\EpicFail.mp3")


EndIf 

Return

  Osuma:
  DeleteObject pum\obj
  DeleteObject ok\tat
  Delete pum
  Delete ok
Return







FAIL:
 
 StopSound Musa
 DeleteSound Musa
 

 
 ClearObjects
 
Color cbRed
Text 200, 200, "FAILED!! Kuolit noob!"
DrawScreen

 Wait 10000
End
Koodissa suht mukavasti keskeneräinen räiskintäpelini, jossa vihollisia tulvii käytännössä loputtomasti. Se toimii jonkin aikaa ihan kunnolla, mutta kun jonkin aikaa on ammuskellut vihollisia, niin tulee MAV. Osaako kukaan kertoa minulle missä vika? :?
Huuhkis

Re: Tyhmät kysymykset (I/2011)

Post by Huuhkis »

Anteeksi nopea vastaus, kiire bussiin. Ongelma taitaa olla kaksoissilmukassa tatit ja ammus. Saattaa tulla tapaus jossa tuhotun tatin ja ammuksen päällekkäisyys tarkastetaan ->MAV.
User avatar
Bajamaja
Newcomer
Posts: 23
Joined: Thu Feb 17, 2011 7:02 pm

Re: Tyhmät kysymykset (I/2011)

Post by Bajamaja »

Huuhkis wrote:Anteeksi nopea vastaus, kiire bussiin. Ongelma taitaa olla kaksoissilmukassa tatit ja ammus. Saattaa tulla tapaus jossa tuhotun tatin ja ammuksen päällekkäisyys tarkastetaan ->MAV.
ö_Ö Mutta eikös se aiheuttaisi MAVin jokaisella osumalla? Peli toimii ihan hyvin kun ampuu ammuksia yksitellen mutta kun niitä on ilmassa useita samaan aikaan ja joku niistä osuu tattiin niin MAV ilmaantuu.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

Ei, vaan se juuri aiheuttaa mavin silloin kun ammuksia on yli 1. Jos on VAIN 1 ammus: tatti ja ammus tuhotaan, silmukka päättyy. Jos on yli 1, ammus ja tatti tuhotaan ensimmäisellä tarkastuksella, mennään seuraavaan tarkastukseen, joka johtaa maviin koska tattia ei enää ole (tarkastettava ammus on tällä kertaa eri).

Ratkaisu on poistua Exit-komennolla ammus-silmukasta heti tuhoamisen jälkeen; muita ammuksiahan ei tarvitse käydä läpi, koska tiedämme jo että tatti tuhotaan.

Code: Select all

For ok.TATIT = Each TATIT
    If ObjectsOverlap (hero,ok\tat,2) Then
        Gosub FAIL
    EndIf
        
    PointObject ok\tat,hero
    MoveObject ok\tat,3
    For pum.AMMUS = Each AMMUS
        If ObjectsOverlap (pum\obj,ok\tat,2) Then
            Gosub osuma
            Exit
        EndIf
    Next pum
Next ok
Edit. koodiin oli jäänyt tattiTuhottu-muuttuja, jota ensin ajattelin käyttää. Sitä siis joutuisi käyttämään, jos tatin voi tuhota useammallakin tavalla kuin ampumalla, jolloin itse tuhoaminen tehtäisiin vasta silmukan lopussa. Siis jos tattiTuhottu = True.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
User avatar
Bajamaja
Newcomer
Posts: 23
Joined: Thu Feb 17, 2011 7:02 pm

Re: Tyhmät kysymykset (I/2011)

Post by Bajamaja »

Kiitos paljon! Nyt alkoi homma pelittää... ^^
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Nyt puolestaan tuli vastaan tänkka påå, että kuinka lisään lukuun luvun "1" aina kun hiiren 1 painiketta painetaan?
Olevinaan olen sen joskus bongannut ohjeista, mutta enpä löytänyt enää.
Tarkoitus on siis eräänlainen tulostaulu, johon omiin pisteisiin lisätään aina yksi lisää, kun sellainen tulee.

Code: Select all

SCREEN 800,700
While Not EscapeKey()
system=LoadFont("impact",200)
Color cbred
SetFont system
Text 50,200, 0
Text 500,200, 0
DeleteFont system
system2=LoadFont("impact",100)
SetFont system2
Text 250,0,Time()

DrawScreen
Wend
User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post by MetalRain »

ItzRaines wrote:Nyt puolestaan tuli vastaan tänkka påå, että kuinka lisään lukuun luvun "1" aina kun hiiren 1 painiketta painetaan?
Idea on se että MouseHit(1) saa arvon 1 kun hiiren vasenta näppäintä painetaan ja arvon 0 jos hiirtä ei olla painettu. Tämä lisätään muuttujaan joka tulostetaan. Jos muuttujaan lisätään nolla niin muuttujan arvo ei muutu.

Code: Select all

SCREEN 800,700
While Not EscapeKey()
system=LoadFont("impact",200)
Color cbred
SetFont system

//tässä lisätään pisteitä
pisteet = pisteet + MouseHit(1)
Text 50,200, pisteet

Text 500,200, 0
DeleteFont system
system2=LoadFont("impact",100)
SetFont system2
Text 250,0,Time()
DrawScreen
Wend
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Kiitän, toimii ihmeen yksinkertaisella koodinpätkällä :D
Jos sitä sais vaikka vähän palkkaa, kun tuollaista tulostaulua teen sukulaisen lentopallopeleihin, kun uusi sähköinen taulu olisi siinä 1000€ paikkeilla :lol:
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Nyt taas vaihteeksi sellasta, kun pitäis saada aina yksi pieni pallukka pisteiden päälle, kun pisteet ovat ohittaneet 30. Tarkoitus on siis merkitä muistiin erävoitot. Voisko joku auttaa oppivaa, kun en millään ole saanut ohjelmaa piirtämään pistettä tarvittaessa.

Code: Select all

SCREEN 800,700
SetWindow "Tulostaulu"
While Not EscapeKey()
system=LoadFont("impact",300)
Color cbblue
SetFont system

pisteet = pisteet + MouseHit(1)
Text 50,250, pisteet

pisteet2 = pisteet2 + MouseHit(2)
Text 500,250, pisteet2

If MouseHit(3) Then pisteet = 0
If MouseHit(3) Then pisteet2 = 0

If pisteet = 31 Then pisteet = 0
If pisteet2 = 31 Then pisteet2 = 0

Text 350,250,"-"

DeleteFont system
system2=LoadFont("impact",200)
SetFont system2
Text 140,0,Time()

DeleteFont system2
system3=LoadFont("arial",20)
SetFont system2
Text 0,600,"Nollaa pisteet painamalla hiiren rullaa"
Text 0,620,"Sulje ohjelma painamalla ESC"
Text 0,550,"Lisää pisteitä vasemmalle puolelle painamalla hiiren vasenta painiketta"
Text 0,570,"Lisää pisteitä oikealle puolelle painamalla hiiren oikeaa painiketta"

DrawScreen
Wend
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: Tyhmät kysymykset (I/2011)

Post by legend »

ItzRaines wrote:Nyt taas vaihteeksi sellasta, kun pitäis saada aina yksi pieni pallukka pisteiden päälle, kun pisteet ovat ohittaneet 30. Tarkoitus on siis merkitä muistiin erävoitot. Voisko joku auttaa oppivaa, kun en millään ole saanut ohjelmaa piirtämään pistettä tarvittaessa.

Code: Select all

SCREEN 800,700
SetWindow "Tulostaulu"
While Not EscapeKey()
system=LoadFont("impact",300)
Color cbblue
SetFont system

pisteet = pisteet + MouseHit(1)
Text 50,250, pisteet

pisteet2 = pisteet2 + MouseHit(2)
Text 500,250, pisteet2

If MouseHit(3) Then pisteet = 0
If MouseHit(3) Then pisteet2 = 0

If pisteet = 31 Then pisteet = 0
If pisteet2 = 31 Then pisteet2 = 0

Text 350,250,"-"

DeleteFont system
system2=LoadFont("impact",200)
SetFont system2
Text 140,0,Time()

DeleteFont system2
system3=LoadFont("arial",20)
SetFont system2
Text 0,600,"Nollaa pisteet painamalla hiiren rullaa"
Text 0,620,"Sulje ohjelma painamalla ESC"
Text 0,550,"Lisää pisteitä vasemmalle puolelle painamalla hiiren vasenta painiketta"
Text 0,570,"Lisää pisteitä oikealle puolelle painamalla hiiren oikeaa painiketta"

DrawScreen
Wend
Ratkaisu... Tein sen muuten aika hankalalla tavalla, mutta nopealla.

Code: Select all

SCREEN 800,700
SetWindow "Tulostaulu"
While Not EscapeKey()
system=LoadFont("impact",300)
Color cbblue
SetFont system

pisteet = pisteet + MouseHit(1)
Text 50,250, pisteet

pisteet2 = pisteet2 + MouseHit(2)
Text 500,250, pisteet2

If MouseHit(3) Then pisteet = 0
If MouseHit(3) Then pisteet2 = 0

If pisteet = 30 Then erä1 = erä1 + 1
If pisteet2 = 30 Then erä2 = erä2 + 1

i = 0
While Not i = erä1
    Circle 50 + i*50, 200, 25
    i + 1
Wend

i = 0
While Not i = erä2
    Circle 500 + i*50, 200, 25
    i + 1
Wend

If pisteet = 30 Then pisteet = 0
If pisteet2 = 30 Then pisteet2 = 0

Text 350,250,"-"

DeleteFont system
system2=LoadFont("impact",200)
SetFont system2
Text 140,0,Time()

DeleteFont system2
system3=LoadFont("arial",20)
SetFont system2
Text 0,600,"Nollaa pisteet painamalla hiiren rullaa"
Text 0,620,"Sulje ohjelma painamalla ESC"
Text 0,550,"Lisää pisteitä vasemmalle puolelle painamalla hiiren vasenta painiketta"
Text 0,570,"Lisää pisteitä oikealle puolelle painamalla hiiren oikeaa painiketta"

DrawScreen
Wend
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by valscion »

ItzRaines wrote:Nyt taas vaihteeksi sellasta, kun pitäis saada aina yksi pieni pallukka pisteiden päälle, kun pisteet ovat ohittaneet 30. Tarkoitus on siis merkitä muistiin erävoitot. Voisko joku auttaa oppivaa, kun en millään ole saanut ohjelmaa piirtämään pistettä tarvittaessa.

Code: Select all

...koodia...
legendin ratkaisu on ihan toimiva, mutta se saattaa olla hankala ymmärtää aluksi. Tein vastaavanlaisen systeemin, joka pitäisi olla helpommin tajuttavissa.

Code: Select all

SCREEN 800,700
SetWindow "Tulostaulu"

// Näihin muuttujiin tallennetaan erävoittojen määrät
eravoitot1 = 0
eravoitot2 = 0
While Not EscapeKey()
    system=LoadFont("impact",300)
    Color cbblue
    SetFont system
    
    If eravoitot1 > 0 Then
        // Piirretään pallurat erävoittojen merkiksi kotijoukkueelle.
        For i=1 To eravoitot1
            // Piirretään palluroita sen verran kuin eravoitot1-muuttujan suuruus on.
            // Seuraava pallura on aina 50 pikseliä enemmän oikealla kuin edellinen.
            // Ensimmäinen pallura tulee koordinaatteihin 50, koska i=1 ekalla For-loopin kierroksella.
            Circle i*50, 200, 25
        Next i
    EndIf
    
    If eravoitot2 > 0 Then
        // Tehdään sama vierasjoukkueelle kuin kotijoukkueelle.
        For i=1 To eravoitot2
            // Piirretään nämä pallurat alkamaan x-koordinaatista 500, eikä 50.
            Circle 450 + i*50, 200, 25
        Next i
    EndIf
    
    pisteet = pisteet + MouseHit(1)
    Text 50,250, pisteet
    
    pisteet2 = pisteet2 + MouseHit(2)
    Text 500,250, pisteet2
    
    If MouseHit(3) Then 
        pisteet = 0
        'eravoitot1 = 0 // Ota pilkku-kommentointi pois jos haluat nollata myös voitetut erät
        pisteet2 = 0
        'eravoitot2 = 0 // Ota pilkku-kommentointi pois jos haluat nollata myös voitetut erät
    EndIf
    
    If pisteet = 31 Then 
        pisteet = 0
        eravoitot1 = eravoitot1 + 1 // Lisätään yksi voitettu erä
    EndIf
    If pisteet2 = 31 Then 
        pisteet2 = 0
        eravoitot2 = eravoitot2 + 1
    EndIf
    
    Text 350,250,"-"
    
    DeleteFont system
    system2=LoadFont("impact",200)
    SetFont system2
    Text 140,0,Time()
    
    DeleteFont system2
    system3=LoadFont("arial",20)
    SetFont system2
    Text 0,600,"Nollaa pisteet painamalla hiiren rullaa"
    Text 0,620,"Sulje ohjelma painamalla ESC"
    Text 0,550,"Lisää pisteitä vasemmalle puolelle painamalla hiiren vasenta painiketta"
    Text 0,570,"Lisää pisteitä oikealle puolelle painamalla hiiren oikeaa painiketta"
    
    DrawScreen
Wend 
Kannattaa sisentää koodia niin sitä on helpompi lukea.
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
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2011)

Post by naputtelija »

Tämän koodin pitäisi piirtää mukavat pikku neliöt vasemmalla oleviin laatikoihin korostettaessa, mutta niin se ei tee. miksi?
game.zip
(5.21 KiB) Downloaded 311 times
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Joo käytin legendin ratkaisua, joka on toimiva. Nyt on vain jostain syystä ohjelma on jumalattoman raskas. Minulla on suht. tehokas kone ja näytönohjain, mutta silti ohjelma ei ensinnäkään sulkeudu samana vuonna, jos se on fullscreen tilassa. Päätin etten käytä fullscreenia vaan suurennan ikkunan mahd. suureksi. Nyt yritin suurentaa pisteitä, mutta sama homma. Ohjelma tökkii hemmetisti ja pisteet muuttuvat vasta 5 sekuntia painamisen jälkeen jos muuttuvat. Kellonaikakin jumittaa niin, että se muuttuu noin 8 sekunnin välein vasta. Jos olis jollakin ratkaisu, kuinka muuttaa koodia kevyemmäksi.

Code: Select all

SCREEN 1250,900
SetWindow "Tulostaulu"
While Not EscapeKey()
system=LoadFont("impact",570)
Color cbblue
SetFont system

pisteet = pisteet + MouseHit(1)
Text 100,270, pisteet

pisteet2 = pisteet2 + MouseHit(2)
Text 800,270, pisteet2

If MouseHit(3) Then pisteet = 0
If MouseHit(3) Then pisteet2 = 0

If pisteet = 31 Then erä1 = erä1 + 1
If pisteet2 = 31 Then erä2 = erä2 + 1

i = 0
While Not i = erä1
    Circle 50 + i*50, 200, 25
    i + 1
Wend

i = 0
While Not i = erä2
    Circle 500 + i*50, 200, 25
    i + 1
Wend

If pisteet = 31 Then pisteet = 0
If pisteet2 = 31 Then pisteet2 = 0

Text 600,250,"-"

DeleteFont system
system2=LoadFont("impact",350)
SetFont system2
Text 140,0,Time()

DrawScreen
Wend
Edit: Niin ja kun suljen ohjelman tulee error, että "can't load font impact"
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: Tyhmät kysymykset (I/2011)

Post by legend »

ItzRaines wrote:Joo käytin legendin ratkaisua, joka on toimiva. Nyt on vain jostain syystä ohjelma on jumalattoman raskas. Minulla on suht. tehokas kone ja näytönohjain, mutta silti ohjelma ei ensinnäkään sulkeudu samana vuonna, jos se on fullscreen tilassa. Päätin etten käytä fullscreenia vaan suurennan ikkunan mahd. suureksi. Nyt yritin suurentaa pisteitä, mutta sama homma. Ohjelma tökkii hemmetisti ja pisteet muuttuvat vasta 5 sekuntia painamisen jälkeen jos muuttuvat. Kellonaikakin jumittaa niin, että se muuttuu noin 8 sekunnin välein vasta. Jos olis jollakin ratkaisu, kuinka muuttaa koodia kevyemmäksi.

Code: Select all

SCREEN 1250,900
SetWindow "Tulostaulu"
While Not EscapeKey()
system=LoadFont("impact",570)
Color cbblue
SetFont system

pisteet = pisteet + MouseHit(1)
Text 100,270, pisteet

pisteet2 = pisteet2 + MouseHit(2)
Text 800,270, pisteet2

If MouseHit(3) Then pisteet = 0
If MouseHit(3) Then pisteet2 = 0

If pisteet = 31 Then erä1 = erä1 + 1
If pisteet2 = 31 Then erä2 = erä2 + 1

i = 0
While Not i = erä1
    Circle 50 + i*50, 200, 25
    i + 1
Wend

i = 0
While Not i = erä2
    Circle 500 + i*50, 200, 25
    i + 1
Wend

If pisteet = 31 Then pisteet = 0
If pisteet2 = 31 Then pisteet2 = 0

Text 600,250,"-"

DeleteFont system
system2=LoadFont("impact",350)
SetFont system2
Text 140,0,Time()

DrawScreen
Wend
Edit: Niin ja kun suljen ohjelman tulee error, että "can't load font impact"
Ongelma in siinä että lataat fontit joka pyörimis kerta uudelleen, eli joka sekuntti monta kertaa... Joten siirrä ne alkuun...
Tässä on koodi korjattuna ja paraneltuna

Code: Select all

SCREEN 1250,900
SetWindow "Tulostaulu"
system=LoadFont("impact",570)
system2=LoadFont("impact",350)

While Not EscapeKey()

    Color cbblue
    SetFont system
    pisteet = pisteet + MouseHit(1)
    Text 100,370, pisteet
    pisteet2 = pisteet2 + MouseHit(2)
    Text 800,370, pisteet2
    
    If MouseHit(3) Then pisteet = 0
    If MouseHit(3) Then pisteet2 = 0
    
    If pisteet = 31 Then erä1 = erä1 + 1
    If pisteet2 = 31 Then erä2 = erä2 + 1
    
    i = 0
    While Not i = erä1
        Circle 75 + i*125, 350, 50
        i + 1
    Wend
    
    i = 0
    While Not i = erä2
        Circle 775+ i*125, 350, 50
        i + 1
    Wend
    
    If pisteet = 31 Then Gosub nollaapisteet
    If pisteet2 = 31 Then Gosub nollaapisteet
    
    Text 600,250,"-"
    
    SetFont system2
    Text 140,0,Time()
    
    DrawScreen
Wend

Nollaapisteet:

    pisteet = 0
    pisteet2 = 0
Return
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Kiitän paljon vaivannäöstä. Jaksoit vielä laittaa tuon, että kummatkin pisteet nollautuu, kun erävoitto tulee.
DumBasZ
Newcomer
Posts: 20
Joined: Fri Aug 29, 2008 7:52 am

Re: Tyhmät kysymykset (I/2011)

Post by DumBasZ »

naputtelija wrote:Tämän koodin pitäisi piirtää mukavat pikku neliöt vasemmalla oleviin laatikoihin korostettaessa, mutta niin se ei tee. miksi?
Et nollaa lapi-muuttujaa ollenkaan, ja käytit sitä kertoimena hieman huonosti. Alla korjattu koodi. Poistin lapi-muuttujan, ja lisäsin tilalle ID-fieldin.

Code: Select all

FrameLimit 40
SCREEN 800,600

Type valin
    Field status As Integer 
    Field ID As Byte
End Type
amount1=5
lapi=1
For i=1 To amount1
    sel.valin = New (valin)
    sel\ID = i
Next i
longstick=LoadImage ("longstick.bmp")
shortstick=LoadImage ("shortstick.bmp")
inter=LoadImage ("craftint.bmp")
Repeat
    DrawImage inter,150,150
    If MouseY()>229 And MouseX()>162 And MouseY()<404 And MouseX()<194 Then
        For sel.valin = Each valin
            If MouseY()>229+(36*(sel\ID-1)) And MouseY()<229+(36*(sel\ID)) Then
                Color cbDark
                Box 162,230+(36*(sel\ID-1)),30,30,1
                sel\status=1
                Text 0,0,sel\ID
            Else
                sel\status=0
            EndIf
        Next sel
    EndIf
    
    DrawScreen
Forever
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Mikähän mahtaa olla ongelmana, kun omalla koneella ohjelma toimii moitteettomasti koko ruudun tilassa, jossa sen on tarkoituskin. Kun siirrän ohjelman ajettavaksi toiselle koneelle, joka on kannettava se ei näytä ollenkaan hyvältä... Kannettavassa on kaikki väriasetukset yms. resoluutiot samat kuin omassani, mutta silti pisteiden tilalla näkyy kaikkia muita merkkejä.. Tuollaisena screen- asetukset ovat tällä hetkellä: "SCREEN 0,0,0,0" eli kaikki on automaattisesti säätyviä. Jos ohjelma ajetaan ikkunassa: 1250,900 käynnistys kaataa kannettavan kokonaan. Tuota on turha mennä muuttamaan, koska silloin ohjelma heittää erroria, että impact fonttia ei voi ladata. Ainoastaan edellä mainittu koko ruutu tila ja 1250,900 ovat toimivia kylläkin vain omalla koneellani. Tarkoitus olisi saada ohjelma toimimaan moitteettomasti millä tahansa vähän "huonotehoisemmallakin" kokoonpanolla.
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: Tyhmät kysymykset (I/2011)

Post by legend »

ItzRaines wrote:Mikähän mahtaa olla ongelmana, kun omalla koneella ohjelma toimii moitteettomasti koko ruudun tilassa, jossa sen on tarkoituskin. Kun siirrän ohjelman ajettavaksi toiselle koneelle, joka on kannettava se ei näytä ollenkaan hyvältä... Kannettavassa on kaikki väriasetukset yms. resoluutiot samat kuin omassani, mutta silti pisteiden tilalla näkyy kaikkia muita merkkejä.. Tuollaisena screen- asetukset ovat tällä hetkellä: "SCREEN 0,0,0,0" eli kaikki on automaattisesti säätyviä. Jos ohjelma ajetaan ikkunassa: 1250,900 käynnistys kaataa kannettavan kokonaan. Tuota on turha mennä muuttamaan, koska silloin ohjelma heittää erroria, että impact fonttia ei voi ladata. Ainoastaan edellä mainittu koko ruutu tila ja 1250,900 ovat toimivia kylläkin vain omalla koneellani. Tarkoitus olisi saada ohjelma toimimaan moitteettomasti millä tahansa vähän "huonotehoisemmallakin" kokoonpanolla.
Mahdollisuuksia on olemassa. Koneellasi ei ole impact fonttia tai (todennäköisempi) lataat fontin ja sen jälkeen muutat screenin kokoa, eli siirrä screen komento ekalle riville tai sinulla on windows7 ja et aja sitä järjestelmävalvojana!
Laita screenshottia niin nähdään ongelma...
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Feuer »

Tapauseen tarkemmin perehtymättä voisin mainita että osa kokoonpanoista on erittäin kranttuja kokoruuturesoista. Parhainta toimivuutta voi odottaa kookruuturesoilla, jotka joko ovat näytön natiivireso tai ovat samassa kuvasuhteessa oleva, tunnetusti tuettu reso (esim. jos näytön natiivireso on 1280x1024, 1024x768 toimii myös erittäin varmasti).

Jos ongelma ei ratkennut noilla sanoilla, olen myös kuullut sellaista että SCREEN 0,0,0,0 toisi mukanaan jotain ongelmia jollei sen perässä ole SCREEN ScreenWidth(),ScreenHeight(),0,0 - kutsua. Huhupuheita, mutta tarkistamisen arvoinen vaihtoehto.
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

legend wrote:
ItzRaines wrote:Mikähän mahtaa olla ongelmana, kun omalla koneella ohjelma toimii moitteettomasti koko ruudun tilassa, jossa sen on tarkoituskin. Kun siirrän ohjelman ajettavaksi toiselle koneelle, joka on kannettava se ei näytä ollenkaan hyvältä... Kannettavassa on kaikki väriasetukset yms. resoluutiot samat kuin omassani, mutta silti pisteiden tilalla näkyy kaikkia muita merkkejä.. Tuollaisena screen- asetukset ovat tällä hetkellä: "SCREEN 0,0,0,0" eli kaikki on automaattisesti säätyviä. Jos ohjelma ajetaan ikkunassa: 1250,900 käynnistys kaataa kannettavan kokonaan. Tuota on turha mennä muuttamaan, koska silloin ohjelma heittää erroria, että impact fonttia ei voi ladata. Ainoastaan edellä mainittu koko ruutu tila ja 1250,900 ovat toimivia kylläkin vain omalla koneellani. Tarkoitus olisi saada ohjelma toimimaan moitteettomasti millä tahansa vähän "huonotehoisemmallakin" kokoonpanolla.
Mahdollisuuksia on olemassa. Koneellasi ei ole impact fonttia tai (todennäköisempi) lataat fontin ja sen jälkeen muutat screenin kokoa, eli siirrä screen komento ekalle riville tai sinulla on windows7 ja et aja sitä järjestelmävalvojana!
Laita screenshottia niin nähdään ongelma...
Koneella on kyseinen fontti, koska se toimii kylläkin vain tietyissä screen- tiloissa. Screenin koko määritellään ihan ensimmäisellä rivillä. Koneessani on xp. Screenshotilla en usko olevan kauheastikaan väliä, koska ruutu on vain sekalaista sotkua. Voin toki laittaa tässä sellaisen tulemaan kunhan ehdin.
Locked