Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Napisano

Hej

 

Znow mam problem :)

 

Potrzebuje sie dowiedziec w maxscripcie czy dana zmienna jest liczba. W teorii wiem ze "chyba" powinienem sobie taka zmienna zamienic na kod ascii i zobaczyc czy to co dostane spelnia warunek ((zmienna > 0) and (zmienna

 

Podsumowujac to jak sprawdzic czy dana zmienna to liczba?

Edytowane przez ant-3d

  • Odpowiedzi 3
  • Wyświetleń 1,6k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

"warunek ((zmienna > 0) and (zmienna

 

Maxscript ma hierarchię typów - typy liczbowe mają bazową klasę Number. Poza tym maxscript ma refleksje i można sprawdzić czy zmienna jest liczbą:

x = 666

IsKindOf x Number

"IsKindOf x Number" zwróci true zarówno gdy x będzie Integer jak i Float, ponieważ dziedziczą one z Number.

 

Tak w ogóle to poza światem Maxscript (ten język jest dla mnie "marginesem") ludzie zawracają sobie głowę tym żeby nie korzystać z refleksji i instrukcji warunkowych.

Napisano

Dzieki wielkie, o to chodzilo :) Tyle razy juz kopalem po helpie i nie znalazlem tego isKindOf.

 

EDIT:

 

no dobra rowiazalo mi to problem polowicznie. Powiedzmy teraz ze mam taka zmienna:

 

x = "3"

 

jesli zapytam sie teraz isKindOf x Number to oczywiscie dostane false. To sie zgadze bo to jest string. Gdyby x = 3 to wowczas bylby integer. Pytanie:

 

Majac zmienna x = "3" jako string jak moge sprawdzic czy moge ja sobie zkastowac na integera??

 

EDIT2:

 

No dobra rozwiazalem sobie problem. Moze komus sie tez przyda:

 

check_it = "3"
if (((bit.charAsInt check_it) > 47) and ((bit.charAsInt check_it) (
   x = check_it as integer
   -- mamy integera bo zostal spelniony powyzszy warunek
   -- czyli "3" zamienilem na kod ascii a w kodzie ascii cyfry sa od 48 do 57
)

Edytowane przez ant-3d

Napisano
-- zwraca undefined jesli nie mozna skonwertowac argumentu na number
-- zwraca wynik konwersji jesli uda sie skonwertowac argument na number

fn ToNumber _value = (
   foundValue = undefined
   if (iskindof _value Number) == true do foundValue = _value
   if foundValue == undefined do (
       try(
           tmpval = execute _value
           if (iskindof tmpval Number) == true do foundValue = tmpval
       )catch(format "Error Converting To Number. value:% exception:%\n" tmpval (getcurrentexception()))
   )
   return foundValue
)

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.