Autor Wątek: [Canvas]Game State Manager  (Przeczytany 2646 razy)

Offline kozuya

  • Użytkownik

# Styczeń 21, 2013, 17:05:14
Witam mam kolejny problem wiem że zaraz ktoś napiszę "o kolejny robi grę od intra i menu" a więc od razu dodam że grywalna część już jest zrobiona i działa chciałem dodać teraz mechanizm stanu gry i  menu. Lecz mam kolejny problem wymyśliłem sobie że zrobię to tak


engine.js
function Init(){
 canvas = document.getElementById('thescreen');
  if (canvas.getContext) {
    ctx = canvas.getContext ('2d');
    ctx.fillStyle = CanvasBG;
    ctx.fillRect (0, 0, width, height);
    RunGame();
}
}

var currentGameState = 0;
var currentGameStateFunction = null;

function SwitchGameState(NewState){
   currentGameState = NewState;
   
   switch(currentGameState){
       case GAME_STATE_MENU:
           currentGameStateFunction = gameStateMenu;
       break;

       case GAME_STATE_GAME:
           currentGameStateFunction = gameStateGame;
       break;
   }
   
}

function RunGame(){
    currentGameStateFunction();
}

SwitchGameState(GAME_STATE_MENU);


w menu.js mam
function gameStateMenu() {
    ctx.fillStyle = "#000";
      ctx.font = "italic 30px Arial";
      ctx.textBaseline = "top";
      ctx.fillText ("MENU", 255, 255);
      ctx.font = "17px Arial";
}

ale taka metoda nie działa

chrom zwraca mi gameStateMenu is not defined

jak wrzucę menu.js do engine śmiga wszystko ładnie i pięknie.

dodam ze wczoraj w nocy wszystko działało a dziś rano już nie :P

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Avaj

  • Użytkownik

  • +1
# Styczeń 21, 2013, 20:45:59
a includujesz ten menu.js przed engine.js?

Offline kozuya

  • Użytkownik

# Styczeń 21, 2013, 21:41:33
a jak mogę to zrobić ??

    <script type="text/javascript" src="js/config.js"></script>
    <script type="text/javascript" src="js/engine.js"></script>
    <script type="text/javascript" src="js/state/menu.js"></script>
    <script type="text/javascript" src="js/state/game.js"></script>

tak wyglada moj index.html

Offline flexi

  • Użytkownik

  • +1
# Styczeń 21, 2013, 22:06:14
Podstawy HTML i JS sie klaniaja.

Zalozmy ze mam dwa skrypty:

before.js
mojaFunkcja();

after.js
function mojaFunkcja() {
 alert("Hello!");
}

i teraz HTML

<script src="before.js"></script>
<script src="after.js"></script>

To dla before.js funkcja "mojaFunkcja" nie istnieje.

// Edit: dodatkowo radze poduczyc sie JavaScript i HTML, bo potem jest zakladanych milion tematow z podstawami...
« Ostatnia zmiana: Styczeń 21, 2013, 22:10:35 wysłana przez flexi »

Offline Xion

  • Redaktor
    • xion.log

  • +2
# Styczeń 21, 2013, 22:09:01
Tagi <script> w HTML to jak #include w C/C++, więc kolejność definicji jak najbardziej się liczy. Jeśli używałbyś window.onload albo $(document).ready to większość tych problemów by cię nie dotyczyła.

Offline Kos

  • Użytkownik
    • kos.gd

# Styczeń 22, 2013, 09:42:06
@up A require.js jest warty świeczki?

Offline skowronkow

  • Użytkownik
    • skowronkow devsite

# Styczeń 22, 2013, 12:45:21
@up Moim zdaniem jest ale głownie do pozniejszego buildowania libki (za pomocą ich optimizera - r.js) i zgrabnego wprowadzenia zarzadzania modułami zgodnego do pewnego stopnia z CommonJS (automatyczne zarządzanie zależnosciami).