[Lingo] Kogel schiet niet

Pagina: 1
Acties:
  • 56 views sinds 30-01-2008

  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
Ik weet niet of iemand iets weet van Lingo in Director MX.
Maar ik probeer space invaders te maken. Maar ik stuit nu op een probleem.

Ik heb 1 kanon die moet dan 1 kogel afschieten als je op spatie drukt.
Als ik op spatie druk nu, dan gaat de kogel alleen maar naar mijn kanon toe. Maar hij gaat niet omhoog.

de code van de kanon:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
property hpositie     -- horizontale positie
property vpositie     -- verticale positie
property spriteNr     -- sprite kanaal
property stapH        -- te zetten (horizontale) stap
property stapDelta    -- grootte van de verplaatsing
property stagebreedte -- breedte van de stage

on new me
  hpositie = 160
  vpositie = 240
  spriteNr = 1
  stapH = 0
  stapDelta = 6
  stagebreedte = window("stage").rect.width
  return me
end

on beweegtoets me
  stapH = 0
  if (_key.keyPressed(123)) then
    stapH = stapDelta * (-1)
  end if
  if (_key.keyPressed(124)) then
    stapH = stapDelta
  end if
  hpositie = hpositie + stapH
  if hpositie > 0 and hpositie < stagebreedte then
    sprite(spriteNr).locH = hpositie
  end if
end

on afvuren me
  if (_key.keyPressed(" ")) then
    kogel1=new (script "kogel", hpositie, vpositie, -1)
  end if
  end
  
on muis me
  hpositie=_mouse.mouseH 
  if hpositie > 0 and hpositie < stagebreedte then
    sprite(spriteNr).locH = hpositie
  end if
end


on toonMij me
  sprite(spriteNr).locH = hpositie
  sprite(spriteNr).locV = vpositie
  end

Belangrijkste is dus eigenlijk:
on afvuren me
if (_key.keyPressed(" ")) then
kogel1=new (script "kogel", hpositie, vpositie, -1)
end if
end

en de kogel
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
property hpositie
property vpositie
property spriteNr
property stagebreedte
property stagehoogte
property richting

on new me, waardeH, waardeV, richt
  hpositie = waardeH
  vpositie = waardeV
  spriteNr = 2
  stagebreedte = window ("stage").rect.width
  stagehoogte = window ("stage").rect.height
  richting = richt
  sprite(spriteNr).locH = hpositie
  sprite(spriteNr).locV = vpositie
  repeat while vpositie > 0 and vpositie <stagehoogte
    vpositie=vpositie+(richting)
    sprite(spriteNr).locV=vpositie
    UpdateStage
  end repeat
  return me
end


Het probleem is dus dat hij niet naar boven gaat wanneer je op spatie drukt. Hij zoekt alleen maar de kanon op.

[ Voor 7% gewijzigd door DNA_Saint op 15-04-2005 17:14 ]

Huub Huub Barbatruc!


  • 9nevermind9
  • Registratie: Juli 2001
  • Laatst online: 30-12-2025
code:
1
2
3
4
5
 repeat while vpositie > 0 and vpositie < stagehoogte
    vpositie=vpositie+(richting)
    sprite(spriteNr).locV=vpositie
    UpdateStage
  end repeat


ik weet niet hoe deze taal precies werkt maar is het niet mogenlijk dat deze richting negatief word waardoor vpositie <0 word ?

specs | Linux is like a Wigwam, no windows, no gates, only an apache inside!


  • Jerry
  • Registratie: September 2001
  • Laatst online: 24-03 16:08

Jerry

Who?

9nevermind9 schreef op vrijdag 15 april 2005 @ 17:20:
code:
1
2
3
4
5
 repeat while vpositie > 0 and vpositie < stagehoogte
    vpositie=vpositie+(richting)
    sprite(spriteNr).locV=vpositie
    UpdateStage
  end repeat


ik weet niet hoe deze taal precies werkt maar is het niet mogenlijk dat deze richting negatief word waardoor vpositie <0 word ?
Volgens mij is daar niks mis mee, want eigenlijk staat er:
240+(-1) = 239

Maar je zou het eventueel kunnen testen door gewoon:
vpositie=vpositie-1
te gebruiken. Als die dan wel werkt ligt het daaraan.

  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
nope werkt niet :(

echt raar. Hij gaat alleen naar mijn kanon. Maar hij gaat niet omhoog.
Is er niet iets fout bij dat ie omhoog gaat ofzo, want naar kanon toe komen is een echte code. Maar daarna is het alleen maar naar boven gaan.

vind Lingo maar een vage taal :p

Huub Huub Barbatruc!


  • vivo53280
  • Registratie: September 2001
  • Laatst online: 17-02-2019
moet die richting niet +1 zijn ?

  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
zou wel logischer zijn, maar werkt ook niet..

Huub Huub Barbatruc!


  • vivo53280
  • Registratie: September 2001
  • Laatst online: 17-02-2019
en spriteNr = 2 bij de kogel routine. maakt ie dan niet een nieuwe "sprite" aan ? Misschien even op spriteNr = 1 zetten proberen ?

  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 20-04 10:57
Wat is de waarde van "richt" (in de code staat richting = richt) ?
Het lijkt me daarin te zitten.

Een goedkope voeding is als een lot in de loterij, je maakt kans op een paar tientjes korting, maar meestal betaal je de hoofdprijs. mijn posts (nodig wegens nieuwe layout)


Verwijderd

TD-er schreef op vrijdag 15 april 2005 @ 19:01:
Wat is de waarde van "richt" (in de code staat richting = richt) ?
Het lijkt me daarin te zitten.
hij doet:
code:
1
script "kogel", hpositie, vpositie, -1


dus

code:
1
on new me, waardeH, waardeV, richt


richt is in dit geval -1.

Ik ken lingo niet, maar kun je voor dit stukje code:
code:
1
2
3
4
5
repeat while vpositie > 0 and vpositie <stagehoogte
    vpositie=vpositie+(richting)
    sprite(spriteNr).locV=vpositie
    UpdateStage
  end repeat


een code invoegen die laat zien wat vpositie is, en wat stagehoogte?

Ik heb nl het idee dat (vpositie>0 and vpositie<stagehoogte) evalueert naar false.

Verwijderd

Ik heb het gevoel dat je stagehoogte 240 is, en dan evalueert je vpositie (240) < stagehoogte (240) naar false, en doet het ding niets.

  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
vivo53280 schreef op vrijdag 15 april 2005 @ 18:51:
en spriteNr = 2 bij de kogel routine. maakt ie dan niet een nieuwe "sprite" aan ? Misschien even op spriteNr = 1 zetten proberen ?
Nee, ik heb bij mijn score (zo noem je zeg waar de tijdlijn) op channel 2 de sprite staan.
Dus dat klopt wel.
TD-er schreef op vrijdag 15 april 2005 @ 19:01:
Wat is de waarde van "richt" (in de code staat richting = richt) ?
Het lijkt me daarin te zitten.
Geen idee...deze code is niet echt van mij. maar van mijn leraar. Hij heeft dit getypt, maar toen hij het ging uittesten werkte het niet. Dus dat vond ie raar en hij wilde toen niet meer verder uitleggen.
Ja, we hebben slechte school

Huub Huub Barbatruc!


  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
Verwijderd schreef op vrijdag 15 april 2005 @ 19:24:
[...]


hij doet:
code:
1
script "kogel", hpositie, vpositie, -1


dus

code:
1
on new me, waardeH, waardeV, richt


richt is in dit geval -1.

Ik ken lingo niet, maar kun je voor dit stukje code:
code:
1
2
3
4
5
repeat while vpositie > 0 and vpositie <stagehoogte
    vpositie=vpositie+(richting)
    sprite(spriteNr).locV=vpositie
    UpdateStage
  end repeat


een code invoegen die laat zien wat vpositie is, en wat stagehoogte?

Ik heb nl het idee dat (vpositie>0 and vpositie<stagehoogte) evalueert naar false.
Verwijderd schreef op vrijdag 15 april 2005 @ 19:39:
Ik heb het gevoel dat je stagehoogte 240 is, en dan evalueert je vpositie (240) < stagehoogte (240) naar false, en doet het ding niets.
Ja klopt mijn stagehoogte is 240, maar wat bedoel je met evalueert je vpostie ....
En wat moet ik dus veranderen?

Huub Huub Barbatruc!


Verwijderd

vul het eens in..

code:
1
repeat while vpositie > 0 and vpositie < stagehoogte


Nu vervangen we stagehoogte door 240, en vpositie ook:
code:
1
repeat while 240>0 and 240<240


240 is groter dan 0 maar niet kleiner dan 240.. dus
code:
1
repeat while true and false


en bij mijn weten is (true and flase) gelijk aan false. Je repeat while wordt dus niet uitgevoerd.

Verder klopt de hele berekening niet. Ik neem aan dat de onderkant van het stage 0 is. Je kanon zal aan de onderkant van het stage zitten. dus moet je start positie 0 zijn en dan verhoogd worden. Niet 240 en verlaagd.

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 02-01 15:55
Verwijderd schreef op vrijdag 15 april 2005 @ 20:12:
vul het eens in..

code:
1
repeat while vpositie > 0 and vpositie < stagehoogte


Nu vervangen we stagehoogte door 240, en vpositie ook:
code:
1
repeat while 240>0 and 240<240


240 is groter dan 0 maar niet kleiner dan 240.. dus
code:
1
repeat while true and false


en bij mijn weten is (true and flase) gelijk aan false. Je repeat while wordt dus niet uitgevoerd.

Verder klopt de hele berekening niet. Ik neem aan dat de onderkant van het stage 0 is. Je kanon zal aan de onderkant van het stage zitten. dus moet je start positie 0 zijn en dan verhoogd worden. Niet 240 en verlaagd.
Na het bekijken van de code zou ik ook tot deze conslusie komen, ik zie ook dat in de functie 'toonMij' (ik noem het maar zo weet niet wat de naam is in dit taaltje), ook de waarde vpositie wordt gebruikt. Ik weet niet wanneer toonmij aangeroepen wordt, maar het is wel verwarrende om voor 2 verschillende objecten dezelfde variabele te gebruiken. Hier zou ook iets mis in kunnen gaan!

If I can't fix it, it ain't broken.


  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
nope nix werkt :D
voor misschien de elite, hier mijn bestandje: http://members.lycos.nl/thadnasaint/prj3/kanon.dir
Opslaan = kunnen editen, klikken is zien :)
Spatiebalk moest schieten zijn..maar is dus mislukt :p

Ik laat het anders wel zo. De leraar snapt het zelf niet. Deze code heeft hij zelf geschreven en het werkt niet eens! zoals hierboven gezegd is...de formule klopt niet eens.
hoe kan ik het dan maken.

Maar iedereen bedankt :)

[ Voor 14% gewijzigd door DNA_Saint op 15-04-2005 20:58 ]

Huub Huub Barbatruc!


  • Sjoerd
  • Registratie: December 2003
  • Niet online
Wil ff weten op welke school je zit ;) SISA toevallig of niet?

Modelbouw - Alles over modelbouw, van RC tot diorama


  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
Ik heb een hbo opleiding op het HogeSchool Rotterdam.
Dat is echt een perfecte school, maar je gaat een deel van de week ook naar een andere school. Dat is een VMBO/MBO school en daar is het echt bagger.
Daarvan heb ik ook deze opdracht. Het is het Grafisch Lyceum.

Ze leren hbo'ers alsof we de domste zijn. En zelf hebben ze geen kennis.

Huub Huub Barbatruc!


Verwijderd

Geen idee...deze code is niet echt van mij. maar van mijn leraar. Hij heeft dit getypt, maar toen hij het ging uittesten werkte het niet. Dus dat vond ie raar en hij wilde toen niet meer verder uitleggen.
Ja, we hebben slechte school
dit is dus gewoon een huiswerkopdracht en die horen niet op GoT thuis. Zoek zelf de fout maar die de docent opzettelijk heeft aangebracht.

  • Jerry
  • Registratie: September 2001
  • Laatst online: 24-03 16:08

Jerry

Who?

Verwijderd schreef op vrijdag 15 april 2005 @ 20:12:

* Code *

Verder klopt de hele berekening niet. Ik neem aan dat de onderkant van het stage 0 is. Je kanon zal aan de onderkant van het stage zitten. dus moet je start positie 0 zijn en dan verhoogd worden. Niet 240 en verlaagd.
Misschien is het anders bij dit programma, maar normaal gesproken begint het scherm linksbovenin. Dus punt (0,0) zit linksbovenin en (240,240) rechtsonderin.

Voor het bovenste stuk heb je idd gelijk.
Topicstarter vervang dit:
code:
1
repeat while vpositie > 0 and vpositie < stagehoogte


Door dit:
code:
1
repeat while vpositie > 0 and vpositie < (stagehoogte - 1)


Of dit:
code:
1
repeat while vpositie > 0 and vpositie <= stagehoogte

(Geen idee of welke mogelijk is, want ik ken de syntax van dit programma niet ;)).

  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 23-04 09:15

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
Jerry schreef op vrijdag 15 april 2005 @ 21:32:
[...]


Misschien is het anders bij dit programma, maar normaal gesproken begint het scherm linksbovenin. Dus punt (0,0) zit linksbovenin en (240,240) rechtsonderin.

Voor het bovenste stuk heb je idd gelijk.
Topicstarter vervang dit:
code:
1
repeat while vpositie > 0 and vpositie < stagehoogte


Door dit:
code:
1
repeat while vpositie > 0 and vpositie < (stagehoogte - 1)


Of dit:
code:
1
repeat while vpositie > 0 and vpositie <= stagehoogte

(Geen idee of welke mogelijk is, want ik ken de syntax van dit programma niet ;)).
thnx man...de laatste syntax werkt :)

Huub Huub Barbatruc!


Verwijderd

en heb je nu ook iets geleerd? Volgens mij snap je er geen reet van nu... misschien andere opleiding volgen?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 15 april 2005 @ 21:31:
dit is dus gewoon een huiswerkopdracht en die horen niet op GoT thuis. Zoek zelf de fout maar die de docent opzettelijk heeft aangebracht.
Dat is niet helemaal waar. :) Ik weet niet hoe het er op de andere subfora aan toe gaat, maar in Programming & Webscripting worden huiswerkvragen wel toegestaan, mits de topicstarter zelf moeite doet om het probleem op te lossen. Omdat ik hier inderdaad vrij weinig van terug zie in dit topic, en het achteraf niet eens eigen code blijkt te zijn, sluit ik dit topic toch maar. Bovendien is het probleem toch al opgelost. :)

DNA_Saint: ik heb je afgelopen week al 2x op de quickstart gewezen. Je topicstart ziet er al wat beter uit dan die van vorige week, maar hij is nog steeds erg mager. Je geeft alleen aan wat je hebt, en waar je naartoe wil, en niet wat je al gedaan hebt om te bereiken wat je wil, en waarom dat niet lukte. Eigen inzet is echt essentiëel op dit forum. :)
Verwijderd schreef op vrijdag 15 april 2005 @ 21:43:
en heb je nu ook iets geleerd? Volgens mij snap je er geen reet van nu... misschien andere opleiding volgen?
Die trap onder de gordel is niet nodig, toch? ;)

[ Voor 12% gewijzigd door NMe op 15-04-2005 21:53 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.