0

Oyun yapıyorum ve oyuncunun oyunda ne kadar sağ kaldığını izlemek için Health değişkenim var. Bir noktada, oyuncu dudağını bir kutuda keser (Gereksiz, biliyorum) ve 2 HP kaybedin. Aritmetik kullanmak için 'Sağlık' değişkeninden 2 HP çıkarmak (ki hala bu noktada 100'dür) ve daha sonra ne kadar sağlık kaldığını göstermeye çalışıyorum, ancak 2 tane çıkarmaya çalıştığımda hala 100 HP gösteriyorum. HP. Doğru yapıyor muyum?Parti'de Aritmetik?

:Beans 
call :colorEcho 7 "You decide you're going to have Canned Beans for  breakfast. Yum. You grab a knife from the kitchen counter and work the top off. You eat the beans straight from the can. Ouch! You cut your lip! It starts to bleed." 
Echo . 
set /a "_Health=_Health-2" 
Echo. 
call :colorEcho C "# ALERT; You have lost 2 Health Points! You are now at %Health% HP!" 
Echo. 
pause 
exit 

ne olur: Tamam

what happens

+0

"" 's? –

+0

olmadan denediniz mi? Bu kod parçacığı parantez içinde bir blokta olduğunu sanıyorum'() '; eğer haklıysam, [gecikmeli genişletme] gerekir (http://ss64.com /nt/delayedexpansion.html) veya "set/A _Health- = 2" yazıyor ... – aschipfl

+0

@i_am_jorf Evet, "' s olmadan denedim, ama aynı sonucu elde ediyorum. – FudgeMuffins

cevap

1

, ben @dbenham cevabı sayesinde öğrendim. Teşekkür ederim!

Ben değişkeni haberci ve dbenham belirttiği gibi ben set /a _Health-=2 yılında _Health kullanıyordum, ben %Health% genişliyordu. Sadece set /a Health-=2 olarak değiştirdim ve her şey iyi çalışıyor gibi görünüyor.