apc.lua/se
Attention: This page contains dead links!
apc.lua (advanced player collisions)
Detta bibliotek lägger till några nya blocktyper till SMBX, tillsammans med avancerade kollisionsdetektorer för spelare.
Biblioteket kräver Colliders och Vectors biblioteken för att fungera. För att installera, packa upp apc.lua och stoppa den i LunaScriptsLib mappen.
Ladda ner den senaste versionen.
apc.lua kan åkallas med:
local apc = API.load("apc")
Värden
Värden att tillträda:
| Namn | Typ | Beskrivning |
|---|---|---|
| apc.debug | boolean | Om den är satt till true så kommer de primitiva kollisionsobjekten skapade med detta bibliotek att vara synliga.
|
| ropeBlocks | tabell | Innehåller ID:n av alla rep-typ block i nivån (nil om det inte finns några).
|
| bouncySpikes | tabell | Innehåller ID:n av alla studsiga spik block i nivån (nil om det inte finns några).
|
| p1colliders | tabell | Innehåller en kollisionsbox på varje sida av spelare 1. De kan åkallas kollektivt eller en åt gången genom att lägga till .top, .left, .right eller .bottom till slutet.
Exempel: |
| p2colliders | tabell | Innehåller en kollisionsbox på varje sida av spelare 2. De kan åkallas kollektivt eller en åt gången genom att lägga till .top, .left, .right eller .bottom till slutet.
Exempel: |
Block funktioner
De här är funktioner som ändrar beteendet av block. Notera att varje funktion bara kan användas en gångar, men de accepterar tabeller som deras argument. Dessa funktioner måsta kallas i onLoop(), men för att motverka lagg så är det rekommenderat att bara köra dem på första loopen av nivån. (Se exemplen i nästa sektion.)
| apc.rope | ID:n | |
|---|---|---|
| Den här funktionen får de valda blocken att bete sig som "rep-typ" block. Ett "rep-typ" block beter sig som ett molnblock, men du kan gå igenom det om du trycker NER. Det här funkar bara om det används på moln-typ block. | ropeBlocks | tabell
ID:n av block ska vara av denna typ. Använd moln-typ block endast. |
| apc.bouncySpike | ids | |
| Den här funktioner får ett block att bete sig som ett spikblock som pekar uppåt, men att snurrhoppa på det studsar spelaren uppåt istället för att skada dem. Blocket kan ej skada spelaren från början, annars funkar inte den här funktionen. Det är inte rekommenderat att placera blocket i ett rörande lager, eftersom det inte kommer att funka korrekt. | bouncySpikes | tabell
ID:n av block måste vara av denna typ. Placera ej i ett lager som rör sig. |
Användningsexempel
local apc = API.load("apc")
function onLoop()
if not oneTimeStuff then
oneTimeStuff = true
apc.rope{8}
apc.bouncySpike{1}
end
end
Detta får block-8 att bli ett rep-typ block, och block-1 att bli ett block man can snurrhoppa på.
local apc = API.load("apc")
function onLoop()
for k,v in pairs(Block.get()) do
if (colliders.collide(p1colliders.top, v)) or (colliders.collide(p1colliders.left, v)) or (colliders.collide(p1colliders.right, v)) then
if not (colliders.collide(p1colliders.bottom, v)) then
v:remove(true)
end
end
end
end
Detta förstör alla block en spelare rör vid, förutom de som de står på.