diff --git a/main.ras b/main.ras index df33ed4..336ae22 100644 --- a/main.ras +++ b/main.ras @@ -1,7 +1,7 @@ program MyProgram; -var +var x,y: byte; - b0,b1,b2: byte; + b0,b1,b2,b3: byte; i: integer; etick:byte; eticknext:byte; @@ -158,6 +158,7 @@ procedure Frame(); var pressing:byte; + begin if player_dir=0 then @@ -190,8 +191,8 @@ 13, // Volume 200, // Hi byte frequency 0*16+0, // Attack voice 1 - 3*16 + 3, // Sustain = 16*15 + release=6 - 1 +sid_noise, // Waveform + 3*16+3, // Sustain = 16*15 + release=6 + 1+sid_noise, // Waveform sid_noise); // waveform end; end else pressing:=0; @@ -224,11 +225,12 @@ SetSpriteLoc(@spr_e2, @spriteNumBase+3+anif, @useBank); SetSpriteLoc(@spr_e3, @spriteNumBase+3+anif, @useBank); end; + //Power deploy - if pf:=0 then pow:=pow+1; - if pow>0 then begin //pownext then begin + if pf=0 then pow:=pow+1; + if pow>pownext then begin //pownext then begin pow:=0; - pownext:=110;//+(random()/2); + pownext:=110+(random()/2); pf:=1; px:=Random(); if px<20 then px:=20; @@ -236,64 +238,57 @@ py:=60; end; -// Hardware Update +// Hardware Update and last checks sprite_pos[0]:=player_x; for b0:=0 to 3 do begin b1:=8+(b0*2); if df[b0]=0 then sprite_pos[b1]:=0 + else if dy[b0]>220 then + df[b0]:=255 else begin - sprite_pos[b1]:=dx[b0]; - sprite_pos[b1+1]:=dy[b0]; - dy[b0]:=dy[b0]-5; - if dy[b0]<15 then df[b0]:=0; + sprite_pos[b1]:=dx[b0]; + sprite_pos[b1+1]:=dy[b0]; + dy[b0]:=dy[b0]-5; + if dy[b0]<15 then df[b0]:=0; end; b1:=2+(b0*2); + if ef[b0]=0 then sprite_pos[b1]:=0 else begin sprite_pos[b1]:=ex[b0]; sprite_pos[b1+1]:=ey[b0]; - ey[b0]:=ey[b0]+1; - if ey[b0]>245 then ef[b0]:=0; + + if ef[b0]=1 then begin + ey[b0]:=ey[b0]+2; + if ey[b0]>230 then + ef[b0]:=2; + end; + + if ef[b0]=2 then begin + ey[b0]:=ey[b0]-1; + if ey[b0]<240 then + ef[b0]:=0; + end; + + if ey[b0]>210 then + if ex[b0]>player_x-15 then + if ex[b0]245 then pf:=0; + if py>242 then pf:=0; end; -/* - moveto(1,23,hi(screen_char_loc)); - printstring("JOYSTICK IN PORT 2 TO MOVE",0,40); - // Update sprite position based on joystick values - sprite_x:=sprite_x + joystickright - joystickleft; - sprite_y:=sprite_y + joystickdown - joystickup; - // Update the sprite position on screen for sprite number @useSprite - SpritePos(sprite_x, sprite_y, @spr_player); - - // Set left/right offset pointer for sprite - if (joystickright) then - joystick_dir := 1; - if (joystickleft) then - joystick_dir := 0; - - // Set the sprite pointer to point to the sprite data + direction offset - SetSpriteLoc(@spr_player, @spriteLoc/64 + joystick_dir, @useBank); - - // If any movement is detected, play a random sound - if ((joystickright+joystickleft) or (joystickup+joystickdown)) then - PlaySound(sid_channel1, - 13, // Volume - 20+Random()/16, // Hi byte frequency - 0*16+0, // Attack voice 1 - 3*16 + 3, // Sustain = 16*15 + release=6 - 1 +sid_saw, // Waveform - sid_saw); // waveform -*/ + // Collisions end; // This interrupt is triggered one time pr raster cycle diff --git a/sprites.flf b/sprites.flf index 6d26eec..ffeed92 100644 --- a/sprites.flf +++ b/sprites.flf Binary files differ