Startseite › Foren › Deutsches LiveCode-Forum › Einsteigerfrage
- Dieses Thema hat 1 Antwort und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren, 6 Monaten von
Klaus Major.
-
AutorBeiträge
-
-
September 28, 2017 um 14:49 Uhr #2229
Hallo zusammen,
ich befasse mich erst seit kurzem mit LC und zum Einstieg habe ich mir eine Art PacMan vorgenommen.
Ich habe ein Labyrinth (Lab03.png), eine Spielfigur (grun.png) die ich steuern kann, die nicht gegen die Wände laufen darf usw und einen Gegner (rot.png), der auf die Spielfigur zuläuft, in Abhängigkeit, wo diese sich befindet und auch nicht gegen die Wand laufen soll. Klappt allerdings nur solange, bis rot die vertikale Position von grun erreicht hat. Dann bleibt rot stehen.
Ich weiß im moment nicht, ob das ein LC Problem ist, oder ein Denkfehler in meiner Programmierung?! 😉
Vielleicht kann mit jemand nen Tip geben?!Hier der Code:
(movered wird übrigens über einen screenupdater aufgerufen)on movered –bewegt rot eigenständig
if the left of the image „grun.png“ < the left of the image „rot.png“ then
set the left of image „rot.png“ to the left of image „rot.png“ -1
if intersect( image „rot.png“ , image „Lab03.png“ , 150) then –prüft ob rot gegen Wand
set the left of image „rot.png“ to the left of image „rot.png“ +1
end if
end if
if the left of the image „grun.png“ > the left of the image „rot.png“ then
set the left of image „rot.png“ to the left of image „rot.png“ +1
if intersect( image „rot.png“ , image „Lab03.png“ , 150) then
set the left of image „rot.png“ to the left of image „rot.png“ -1
end if
end if
if the top of the image „grun.png“ > the top of the image „rot.png“ then
set the top of image „rot.png“ to the top of image „rot.png“ +1
if intersect( image „rot.png“ , image „Lab03.png“ , 150) then
set the top of image „rot.png“ to the top of image „rot.png“ -1
end if
end if
if the top of the image „grun.png“ < the top of the image „rot.png“ then
set the top of image „rot.png“ to the top of image „rot.png“ -1
if intersect( image „rot.png“ , image „Lab03.png“ , 150) then
set the top of image „rot.png“ to the top of image „rot.png“ +1
end if
end if
–detectCollisions
send movered to this stack in 1 seconds
end movered -
September 29, 2017 um 17:15 Uhr #2248
Hallo duijM,
willkommen im Forum! 🙂
Hinweis: Wnn du LC Objekte ansprichst, bitte nicht THE benutzen -> the left of THE image xyz.
Also OHNE THE -> the left of img xyz…THE wird verwendet, wenn Du Custom Properties ansprichst.
OK, zu Deinem Problem, ich denke es fehlt die Kodition =, die lässt du in Deinem Skript aus.
Du fragst nur ab, ob the left of img „rot“ GROESSER oder KLEINER als the left of img „gruen“ ist.
Deshalb bleibt ROT stehen, es gibt keine Anweisung, was passieren soll, wenn die beiden Bilder die SELBE Position haben!Mach es so:
…
if the left of image „grun.png“ >= the left of the image „rot.png“ then
…
Selbiges für TOP.Gruß
Klaus
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.