 |
Castle Paradox
|
View previous topic :: View next topic |
Author |
Message |
Blue Pixel SPY SAPPIN MAH FISH SANDWICH

Joined: 22 Apr 2005 Posts: 621
|
Posted: Sat Dec 05, 2009 12:49 am Post subject: ugh, slices... |
|
|
So I'm in the 48 hour contest and i need help fast.
trying to get a large enemy slice (pic1 pal1) to move acoss the screen diagonally. I dont even know how to get it on the screen in the first place.
PLEASE HELP ASAP!!
thanks!
EDIT 8:46PM: current script
Code: | include, plotscr.hsd
include, scancode.hsi
global variable, begin
1, friction
2, gravity
3, hero-x
4, hero-y
5, hero-vx
6, hero-vy
7, hero-speed
8, hero-max-vx
9, hero-max-vy
10, hero-jump-speed
11, hero-animation
12, hero-direction
13, enemy anim
14, hero-hp
15, hero-max-hp
16, score
17, lives left
18, hero-portrait
19, lifebar
20, hero-invincibility
21, used door
#main loop variables
22, playing
23, hero can jump
#player control suspension variables
24, jumping suspended
25, walking suspended
3000, rain parent
3001, old camera x
3002, old camera y
end
define constant, begin
14, main loop timer
#the timer ID used by the rain script
15, rain timer
20, first location trigger
29, last location trigger
30, first action trigger
49, last action trigger
end
plotscript, new game, begin
initialize
#start the do game script
set timer(main loop timer, 0, 1, @do game)
custom main loop
game over
end
script, initialize, begin
suspend player
gravity := 25
friction := 15
hero-x := hero pixel x(me) * 10
hero-y := hero pixel y(me) * 10
hero-vx := 0
hero-vy := 0
hero-speed := 25
hero-jump-speed := -145
hero-max-vx := 100
hero-max-vy := 100
hero-direction := right
playing := true
end
define constant, begin
5, wiggle room
end
#========================================
script, do game, begin
# Let's do The Loop!
if (playing == false) then (exit script)
variable (want left, want right, want jump)
if (walking suspended == false) then (
if (key is pressed(key:right)) then (want right := true)
if (key is pressed(key:left)) then (want left := true)
)
if (jumping suspended == false) then (
if (key is pressed(key:alt)) then (want jump := true,)
)
# Accept player input
if (key is pressed(key:esc)) then (playing := false)
if (want right) then (
hero-direction := right
hero-vx += hero-speed
)
if (want left) then (
hero-direction := left
hero-vx -= hero-speed
)
if (want jump && hero can jump) then (hero-vy := hero-jump-speed, play sound (2))
# Reduce speed if our hero's going too fast
if (hero-vy >> hero-max-vy) then (hero-vy := hero-max-vy)
if (hero-vx >> hero-max-vx) then (hero-vx := hero-max-vx)
if (hero-vx << hero-max-vx * -1) then (hero-vx := hero-max-vx * -1)
hero-x += hero-vx
hero-y += hero-vy
# TODO: Other game-playing stuff goes here.
#========================================
check npcs
if (used door) then (
# Player changed maps. Update location variables.
hero-x := hero pixel x * 10
hero-y := hero pixel y * 10
hero-vx := 0
hero-vy := 0
used door := false
)
If (key is pressed (57)) then (
set tag (3, off)
create npc (10, hero-x, hero-y)
walk npc (10, hero-direction, 3)
wait for npc (10)
destroy npc (10)
set tag(3, on)
)
#================HUD====================
$0=""
$1=""
$2=""
$3=""
$10="HP :"
variable(g)
variable(sl)
g:=hero-hp
while (g>>0) do, begin
if (g>>0) then (append ascii(186, 255),g:=(g--1))
end
show string at(10, 0, 0)
sl:=load weapon sprite (0,1)
place sprite (sl, 0, 8)
#========================================
hero can jump := false
if (can fall) then (hero-vy += gravity)
else (
if (want jump == false) then (hero can jump := true)
# Apply friction
if (hero-vx << friction && hero-vx >> friction * -1
&& want left == false && want right == false)
then (hero-vx := 0)
if (hero-vx >= friction && want right == false)
then (hero-vx -= friction)
if (hero-vx <= friction * -1 && want left == false)
then (hero-vx += friction)
)
if (hero-vx <= 0) then (can left)
if (hero-vx >= 0) then (can right)
if (hero-vy <= 0) then (can rise)
put hero(me, hero-x/10, hero-y/10)
animate hero
#loop
set timer (main loop timer, 0, 1, @do game)
end
script, can fall, begin
variable (hy) # hero's y-position in maptiles
hy := hero-y / 200 + 1
if(
(read pass block((hero-x / 10 + wiggle room) / 20, hy), and, north wall)
||
(read pass block((hero-x / 10 + 20 -- wiggle room) / 20, hy), and, north wall)
||
(hy >= map height)
)
then (
if (hero-vy>=0)
then (
hero-y := hero-y -- (hero-y, mod, 200)
hero-vy := 0
)
return(false)
)
else (return(true))
end
#========================================
script, can rise, begin
variable (hy)
hy := (hero-y) / 200
if(
(read pass block((hero-x / 10 + wiggle room) / 20, hy), and, south wall)
||
(read pass block((hero-x / 10 + 20 -- wiggle room) / 20, hy), and, south wall)
||
(hy<<0)
)
then (
hero-y := hero-y -- hero-y,mod,200 + 200
if (hero-vy<<0) then (hero-vy:=0)
return(false)
)
else (return(true))
end
#========================================
script, can left, begin
variable (hx)
hx := (hero-x--10) / 200
if(
(readpassblock(hx,(hero-y) / 200), and, east wall)
||
(readpassblock(hx,(hero-y + 199) / 200), and, east wall)
||
(hx<<0)
)
then (
variable(new x)
new x := 0
if (hero-x,mod,200 >> 100) then (newx := 200)
if (hero-vx << 100, and, (hero-x,mod,200 >> 50)) then (newx := 200)
hero-x := hero-x -- (hero-x,mod,200) + new x
if (hero-vx << 0) then (hero-vx := 0)
return(false)
)
else (return(true))
)
#========================================
script, can right, begin
variable (hx)
hx:= hero-x / 200 + 1
if (
(read pass block(hx, hero-y / 200), and, west wall)
||
(read pass block(hx, (hero-y + 199) / 200), and, westwall)
||
(hx >= map width)
)
then (
hero-x := hero-x -- (hero-x,mod,200)
if (hero-vx >> 0) then (hero-vx := 0)
return(false)
)
else (return(true))
end
#========================================
script, animate hero, begin
if (hero-direction == right) then (
set hero frame(me, 1)
) else (
set hero frame(me, 0)
)
if (hero-vy << 0) then (
# Jumping
set hero direction(me, 2)
) else (
if (hero-vy >> 0) then (
# Falling
set hero direction(me, 3)
) else (
if (hero-vx <> 0) then (
# Cycle between walking and standing
if (hero-vx << 0) then (hero-animation -= hero-vx)
if (hero-vx >> 0) then (hero-animation += hero-vx)
if (hero-animation >= hero-max-vx * 2) then (hero-animation -= hero-max-vx * 2)
if (hero-animation >> hero-max-vx) then
(
set hero direction(me, 0)
) else (
set hero direction(me, 1)
)
) else (
# Standing
set hero direction(me, 0)
)
)
)
end
#========================================
plotscript, start rain, begin
variable (x, y, sl)
# initialise
rain parent := create container
for (x, 0, 320, 80) do (
for (y, 0, 240, 80) do (
sl := load large enemy sprite(0, 1) #change this
place sprite (sl, x, y)
set parent (sl, rain parent)
)
)
old camera x := camera pixel x
old camera y := camera pixel y
set timer (rain timer, 1, 1, @update rain)
end
script, update rain, begin
variable (x, y, sl)
# rain effect
# loop through all slices
sl := first child (rain parent)
while (sl) do (
x := slice x (sl) + 2 -- camera pixel x + old camera x
if (x >> 320) then (x -= 320 + 80)
if (x <= -80) then (x += 320 + 80)
y := slice y (sl) + 2 -- camera pixel y + old camera y
if (y >> 240) then (y -= 240 + 80)
if (x <= -80) then (y += 240 + 80)
place sprite (sl, x, y)
sl := next sibling (sl)
)
old camera x := camera pixel x
old camera y := camera pixel y
set timer (rain timer, 0, 1, @update rain)
end
plotscript, stop rain, begin
stop timer (rain timer)
# delete rain slices
free slice (rain parent)
end
#========================================
script, custom main loop, begin
while (playing) do (
#FIXME: you need to make sure this script is triggered only once!
if (hero x(me)>>15 && check tag(2)<<1)
then (intro)
wait (1)
)
end
Script, intro, begin
#suspend player
walking suspended := true
jumping suspended := true
variable (sl, box)
Box := create container (50, 50)
set slice x (box, 400)
set slice y (box, 100)
set parent (box, lookup slice(sl: map layer 1))
sl := load medium enemy sprite (0,1)
set parent(sl, box)
play sound (1)
Wait (20)
Show text box (1)
wait for text box
wait (10)
wait (1)
free slice (box)
walking suspended := false
jumping suspended := false
set tag (2, on)
end
#========================================
plotscript, npc door, which, begin
use door(which)
used door := true
end
script, npc near hero, ref, begin
variable(nx, ny)
nx := npc pixel x(ref) * 10
ny := npc pixel y(ref) * 10
return ((nx -- hero-x << 200 && hero-x -- nx << 200) &&
(ny -- hero-y << 200 && hero-y -- ny << 200))
end
script, check npcs, begin
variable(i, j, ref)
# Location triggers
for(i, first location trigger, last location trigger) do (
for (j, 0, npc copy count(i) -- 1) do (
ref := npc reference(i, j)
if (npc near hero(ref)) then (
use npc(ref)
wait for text box
)
)
)
end
#========================================
script, snakeboss, begin
end
#========================================
|
_________________

Last edited by Blue Pixel on Sat Dec 05, 2009 5:46 pm; edited 3 times in total |
|
Back to top |
|
 |
Rimudora Psychopath yandere Halloween 2006 Creativity Winner


Joined: 26 May 2005 Posts: 335
|
Posted: Sat Dec 05, 2009 2:31 am Post subject: |
|
|
Code: | variable(handle)
handle:=load large enemy sprite(1,1)
place sprite (handle, x, y) |
Where x and y are where you want the sprite to start. I believe this will be enough to make your enemy sprite appear on-screen. Once you do that, you can use the handle with other slice functions. There's stuff here that tells you how to move slices, I believe.
http://gilgamesh.hamsterrepublic.com/wiki/ohrrpgce/index.php/Plotslices_Tutorial |
|
Back to top |
|
 |
Blue Pixel SPY SAPPIN MAH FISH SANDWICH

Joined: 22 Apr 2005 Posts: 621
|
Posted: Sat Dec 05, 2009 2:36 am Post subject: |
|
|
Nvm, Tmc helped me with this
but now i need to know how to trigger scripts using the sidescroller tutorial, since im pretty sure you cant access npcs the normal way using it. _________________
 |
|
Back to top |
|
 |
Moogle1 Scourge of the Seas Halloween 2006 Creativity Winner


Joined: 15 Jul 2004 Posts: 3377 Location: Seattle, WA
|
Posted: Sat Dec 05, 2009 11:17 am Post subject: |
|
|
In the script you're using, NPCs 20-29 will be used when you are touching them.
You have two copies of "check npcs." _________________
|
|
Back to top |
|
 |
Blue Pixel SPY SAPPIN MAH FISH SANDWICH

Joined: 22 Apr 2005 Posts: 621
|
Posted: Sat Dec 05, 2009 5:47 pm Post subject: |
|
|
Now I need help setting up bullets.
I havn't got the slightest clue on how to do that. _________________
 |
|
Back to top |
|
 |
|
|
You can post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|