Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Programming Enemy Lives In a Game Not Working
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
programmer_needs_help




PostPosted: Fri Jun 09, 2017 5:28 pm   Post subject: Programming Enemy Lives In a Game Not Working

So I'm making a sword fighting game in which I have to give both the enemy and player lives (so the game isn't incredibly challenging.) Now I've successfully programmed enemy lives but am not having luck programming enemy lives. After the player attacks, the lives of the enemy immediately go to zero and the player wins. This is the section of code that's not functioning:

% Begin Process For Player Movement
process playerMovement
loop

% Arrow Key Input

% Player Movement With Down Key
Input.KeyDown (arrowInput)

% Player Movement With Up Key

if arrowInput (KEY_UP_ARROW) and playerYValue = ground then
playerXValueOriginal := playerXValue
loop
playerYValue := floor (-0.015 * ((playerXValue - playerXValueOriginal) div 2) ** 2 + 420)
playerXValue := playerXValue + 1
Sprite.SetPosition (playerSprite, playerXValue, playerYValue, false)
Sprite.Show (playerSprite)
delay (2)
exit when playerYValue <= ground
end loop
% Reset Player To Bottom Of Screen When Top of Screen Reached


% Player Movement With Right Key
elsif arrowInput (KEY_RIGHT_ARROW) then
playerXValue := playerXValue + 1

% Restrict Player Movement on Right Side of Screen
if playerXValue >= maxx then
playerXValue := 0
end if

% Player Movement With Left Key
elsif arrowInput (KEY_LEFT_ARROW) then
playerXValue := playerXValue - 1

% Restrict Player Movement on Left Side of Screen
if playerXValue = 0 then
playerXValue := maxx
end if

% Sword Attack
elsif arrowInput (' ') and playerYValue <= ground then
Sprite.ChangePic (playerSprite, playerAttack)
Sprite.SetPosition (playerSprite, playerXValue, playerYValue, true)
View.Update
Sprite.ChangePic (playerSprite, player)
Sprite.SetPosition (playerSprite, playerXValue, playerYValue, true)
enemyOnePlayerDistance := Math.Distance (playerXValue, playerYValue, enemyOneXValue, enemyOneYValue)

% Decreasing Enemy Lives With Attack
if enemyOnePlayerDistance >= 100 then
enemyOneLives := enemyOneLives - 1
if enemyOneLives = 9 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsNine.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 360, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 8 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsEight.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 320, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 7 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsSeven.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 280, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 6 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsSix.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 240, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 5 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsFive.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 200, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 4 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsFour.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 160, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 3 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsThree.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 120, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 2 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsTwo.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 80, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 1 then
Sprite.Hide (enemyLifeHeartsSprite)
enemyLifeHearts := Pic.FileNew ("enemyHeartsOne.bmp")
enemyLifeHearts := Pic.Scale (enemyLifeHearts, 40, 60)
Sprite.ChangePic (enemyLifeHeartsSprite, enemyLifeHearts)
Sprite.Show (enemyLifeHeartsSprite)
Sprite.SetPosition (enemyLifeHeartsSprite, CENTREX + 270, CENTREY + 270, true)
elsif enemyOneLives = 0 then
delay (10)
loop
Pic.Draw (levelOneComplete, 0, 0, picMerge)
Sprite.Hide (lifeHeartsSprite)
Sprite.Hide (enemyOneSprite)
Sprite.Hide (playerSprite)
Sprite.Hide (fireballSprite)
Sprite.Hide (enemyLifeHeartsSprite)
end loop
end if
end if
end if
% Reposition The Player On The Screen According To Input
Sprite.SetPosition (playerSprite, playerXValue, playerYValue, true)
delay (2)
end loop
end playerMovement
Sponsor
Sponsor
Sponsor
sponsor
programmer_needs_help




PostPosted: Fri Jun 09, 2017 5:29 pm   Post subject: RE:Programming Enemy Lives In a Game Not Working

This is the code for player lives, which does work:

% Enemy AI
process enemyOneAttack
var a : int := 0
loop
enemyOnePlayerDistance := Math.Distance (playerXValue, playerYValue, enemyOneXValue, enemyOneYValue)
if enemyOnePlayerDistance >= 100 then
a := 0
end if
if enemyOnePlayerDistance > 0 and playerXValue < enemyOneXValue then
enemyOneXValue := enemyOneXValue - 2
Sprite.SetPosition (enemyOneSprite, enemyOneXValue, enemyOneYValue, true)
delay (7)
elsif enemyOnePlayerDistance > 0 and playerXValue > enemyOneXValue then
enemyOneXValue := enemyOneXValue + 2
Sprite.SetPosition (enemyOneSprite, enemyOneXValue, enemyOneYValue, true)
elsif enemyOnePlayerDistance < 100 then
randint (attackChance, 1, 4)
if attackChance = 1 then
Sprite.ChangePic (enemyOneSprite, enemyOneSword)
Sprite.SetPosition (enemyOneSprite, enemyOneXValue, enemyOneYValue, true)
View.Update

if a = 0 then
numLives := numLives - 1
if numLives = 2 then
Sprite.Hide (lifeHeartsSprite)
lifeHearts := Pic.FileNew ("lifeHeartsTwo.bmp")
lifeHearts := Pic.Scale (lifeHearts, 80, 40)
Sprite.ChangePic (lifeHeartsSprite, lifeHearts)
Sprite.Show (lifeHeartsSprite)
Sprite.SetPosition (lifeHeartsSprite, CENTREX - 370, CENTREY + 250, true)
elsif numLives = 1 then
Sprite.Hide (lifeHeartsSprite)
lifeHearts := Pic.FileNew ("lifeHeartsOne.bmp")
lifeHearts := Pic.Scale (lifeHearts, 40, 40)
Sprite.ChangePic (lifeHeartsSprite, lifeHearts)
Sprite.Show (lifeHeartsSprite)
Sprite.SetPosition (lifeHeartsSprite, CENTREX - 370, CENTREY + 250, true)

end if
a := 1
end if
exit when numLives = 0
end if
end if
delay (7)
end loop
programmer_needs_help




PostPosted: Fri Jun 09, 2017 6:39 pm   Post subject: RE:Programming Enemy Lives In a Game Not Working

To anyone trying to help me on this, I figured it out. Thank you!
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 3 Posts ]
Jump to:   


Style:  
Search: