Coolbasic ongelma

Keskustelua tietokoneohjelmista ja käyttöjärjestelmistä.

Coolbasic ongelma

Viesti Tonilion 17 Loka 2005 15:56

FrameLimit 35

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1

ukko1=LoadObject("media\guy.bmp",360)
ukko2=LoadObject("media\guy.bmp",360)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

SetupCollision ukko1,ukko2,2,2,2
SetupCollision ukko2,ukko1,2,2,2

Repeat

'Ukon 1 ohjaus
If LeftKey() Then TurnObject ukko1,5
If RightKey() Then TurnObject ukko1,-5
If UpKey() Then MoveObject ukko1,2
If DownKey() Then MoveObject ukko1,-2




'Ukon 2 ohjaus
If KeyDown(cbKeyA) Then TurnObject ukko2,5
If KeyDown(cbKeyD) Then TurnObject ukko2,-5
If KeyDown(cbKeyW) Then MoveObject ukko2,2
If KeyDown(cbKeyS) Then MoveObject ukko2,-2

'Ammu-systeemi. Vain, jos ase on ladattu
If KeyDown(cbKeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS) 'luo uusi ammus
luoti\obj=CloneObject(pati) 'tee klooni

'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,ukko
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,ukko
reload=5 'aseen lataus
EndIf
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1

'Päivitä kaikki ammukset
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then
'ammus ylittää rajan -> tuhoa se
DeleteObject luoti\obj 'poista objekti
Delete luoti 'poista luoti kokonaan
EndIf
Next luoti



'Älä päästä ukkoa 1 seinien ulkopuolelle
If ObjectX(ukko1)<-200 Then PositionObject ukko1,-200,ObjectY(ukko1)
If ObjectX(ukko1)>200 Then PositionObject ukko1,200,ObjectY(ukko1)
If ObjectY(ukko1)<-150 Then PositionObject ukko1,ObjectX(ukko1),-150
If ObjectY(ukko1)>150 Then PositionObject ukko1,ObjectX(ukko1),150

'Älä päästä ukkoa 2 seinien ulkopuolelle
If ObjectX(ukko2)<-200 Then PositionObject ukko2,-200,ObjectY(ukko2)
If ObjectX(ukko2)>200 Then PositionObject ukko2,200,ObjectY(ukko2)
If ObjectY(ukko2)<-150 Then PositionObject ukko2,ObjectX(ukko2),-150
If ObjectY(ukko2)>150 Then PositionObject ukko2,ObjectX(ukko2),150



DrawScreen
Forever

punasta juttua se ei hyväksy se sanoo vaan invalid name at line 34
ja sit vielä custom type not defined for identifier "luoti\obj
siis mikä vikana
[piilotettu kuva]
Kiitoksia Laddylle
[piilotettu kuva]
Käyttäjän avatar
Tonilion
 
Viestit: 258

Viesti Death world 17 Loka 2005 16:52

(ammus)

Ei tee mitään tossa koodissa. () kannatais poistaa ekaks
Death world
 
Viestit: 108

Viesti tseitsei 17 Loka 2005 17:07

Et ole määritellyt AMMUS nimistä typeä. Lisää tämä koodin alkuosaan:
Koodi: Valitse kaikki
Type AMMUS
    Field obj
End Type
Käyttäjän avatar
tseitsei
 
Viestit: 1414

Viesti Lassi 17 Loka 2005 22:39

tseitsei kirjoitti:Et ole määritellyt AMMUS nimistä typeä. Lisää tämä koodin alkuosaan:
Koodi: Valitse kaikki
Type AMMUS
    Field obj
End Type

hymmmmm. *miettii*
Käyttäjän avatar
Lassi
 
Viestit: 672

Viesti Tonilion 18 Loka 2005 17:24

nyt laitoin tuon mutta nyt se sanoo kun ampuu memory access violation
[piilotettu kuva]
Kiitoksia Laddylle
[piilotettu kuva]
Käyttäjän avatar
Tonilion
 
Viestit: 258

Viesti Peruna 18 Loka 2005 19:03

Ekaksi toi minkä tseitsei sanoi, sitten tämä kohta on väärin
Koodi: Valitse kaikki
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,ukko <-VÄÄRIN
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,ukko<-VÄÄRIN

Koska latasit ukon nimellä ukko1.
Koodi: Valitse kaikki
ukko1=LoadObject("media\guy.bmp",360)


Vinkki: Tämä kohta
Koodi: Valitse kaikki
If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then

kannattaa muuttaa esim.
Koodi: Valitse kaikki
If Distance2(luoti\obj,ukko1)>3000 Then
Käyttäjän avatar
Peruna
 
Viestit: 426

Palaa alueelle Ohjelmistot ja käyttöjärjestelmät