shuvit 4 years ago
parent
commit
93959d24a8
10 changed files with 297 additions and 36 deletions
  1. 1
    1
      config.ini
  2. 32
    2
      scripts/FSM.py
  3. 8
    13
      scripts/Settings.py
  4. 1
    0
      scripts/Startup.py
  5. 133
    0
      scripts/StatesGame.py
  6. 93
    0
      scripts/StatesPlayer.py
  7. 12
    0
      scripts/game.py
  8. 1
    1
      scripts/inputs.py
  9. 2
    19
      scripts/logo_fades.py
  10. 14
    0
      scripts/player.py

+ 1
- 1
config.ini View File

143
 man_sens_l = 0.03
143
 man_sens_l = 0.03
144
 man_sens_r = 0.08
144
 man_sens_r = 0.08
145
 man_sens_side = 0.035
145
 man_sens_side = 0.035
146
-turn_rotation = 0.025 #0.0175
146
+turn_rotation = 0.025#0.0175
147
 turn_addx = 0.004
147
 turn_addx = 0.004
148
 turn_air_rotation = 0.07
148
 turn_air_rotation = 0.07
149
 grass_mult = 0.98
149
 grass_mult = 0.98

+ 32
- 2
scripts/FSM.py View File

1
 import bge
1
 import bge
2
 
2
 
3
+import StatesGame
4
+import StatesPlayer
3
 import StatesWalker
5
 import StatesWalker
4
 import StatesCamera
6
 import StatesCamera
5
 import StatesCar
7
 import StatesCar
67
         self.owner = owner
69
         self.owner = owner
68
         
70
         
69
         state_list = [
71
         state_list = [
70
-        'Example']
72
+        'Example',
73
+        'Startup',
74
+        'Initer',
75
+        'LoadLevel',
76
+        'GameOn']
71
         
77
         
72
         for s in state_list:
78
         for s in state_list:
73
             self.FSM.AddState(s, getattr(StatesGame, s)(self.FSM))
79
             self.FSM.AddState(s, getattr(StatesGame, s)(self.FSM))
75
             self.FSM.AddTransition(t, Transition(s))
81
             self.FSM.AddTransition(t, Transition(s))
76
         
82
         
77
         if self.FSM.curState == None:
83
         if self.FSM.curState == None:
78
-            self.FSM.SetState('Example')
84
+            self.FSM.SetState('Startup')
85
+    
86
+    def Execute(self):
87
+        self.FSM.Execute(self.owner)    
88
+
89
+#=================================== 
90
+        
91
+class PlayerFSM(Char):
92
+    def __init__(self, owner):
93
+        self.FSM = FSM(self, owner)
94
+        self.owner = owner
95
+        
96
+        state_list = [
97
+        'Example',
98
+        'Startup',
99
+        'Walk',
100
+        'Roll']
101
+        
102
+        for s in state_list:
103
+            self.FSM.AddState(s, getattr(StatesPlayer, s)(self.FSM))
104
+            t = 'to' + s
105
+            self.FSM.AddTransition(t, Transition(s))
106
+        
107
+        if self.FSM.curState == None:
108
+            self.FSM.SetState('Startup')
79
     
109
     
80
     def Execute(self):
110
     def Execute(self):
81
         self.FSM.Execute(self.owner)    
111
         self.FSM.Execute(self.owner)    

+ 8
- 13
scripts/Settings.py View File

34
     
34
     
35
     
35
     
36
     def to_dict2(section, key):
36
     def to_dict2(section, key):
37
-        dict = bge.logic.globalDict
37
+        #dict = bge.logic.globalDict
38
         value = char_config[key]
38
         value = char_config[key]
39
         if isinstance(value, str):
39
         if isinstance(value, str):
40
             if value.isdigit():
40
             if value.isdigit():
51
     char_config.walk(to_dict2, char_config)
51
     char_config.walk(to_dict2, char_config)
52
     
52
     
53
 def writeChar():
53
 def writeChar():
54
-    dict = bge.logic.globalDict
54
+    #dict = bge.logic.globalDict
55
     mainDir = GameLogic.expandPath("//characters/")    
55
     mainDir = GameLogic.expandPath("//characters/")    
56
     fileName = mainDir + dict['character'] + ".ini"
56
     fileName = mainDir + dict['character'] + ".ini"
57
     print('writing character settings', fileName)
57
     print('writing character settings', fileName)
70
     readChar()
70
     readChar()
71
 
71
 
72
 def from_dict(section, key):
72
 def from_dict(section, key):
73
-    dict = bge.logic.globalDict
73
+    #dict = bge.logic.globalDict
74
     config[key] = dict[key]
74
     config[key] = dict[key]
75
 
75
 
76
 def writeSettings():
76
 def writeSettings():
77
     config.walk(from_dict)  
77
     config.walk(from_dict)  
78
     config.write()  
78
     config.write()  
79
-    dict = bge.logic.globalDict
79
+    #dict = bge.logic.globalDict
80
      
80
      
81
 def setres():
81
 def setres():
82
-    import GameLogic
83
-    import bge
82
+    #import GameLogic
83
+    #import bge
84
     scenes = bge.logic.getSceneList()
84
     scenes = bge.logic.getSceneList()
85
     main_scene = [scene for scene in scenes if scene.name=="main"][0]
85
     main_scene = [scene for scene in scenes if scene.name=="main"][0]
86
     own = main_scene.objects['Empty']
86
     own = main_scene.objects['Empty']
87
-    cont = GameLogic.getCurrentController()
87
+    cont = bge.logic.getCurrentController()
88
     own2 = cont.owner
88
     own2 = cont.owner
89
     dict = bge.logic.globalDict 
89
     dict = bge.logic.globalDict 
90
     resx = int(dict["resx"])
90
     resx = int(dict["resx"])
104
     #print("resolution = ", resx, resy)       
104
     #print("resolution = ", resx, resy)       
105
         
105
         
106
 def loadlevel():
106
 def loadlevel():
107
-    import GameLogic
108
-    import bge
109
     scenes = bge.logic.getSceneList()
107
     scenes = bge.logic.getSceneList()
110
     main_scene = [scene for scene in scenes if scene.name=="main"][0]
108
     main_scene = [scene for scene in scenes if scene.name=="main"][0]
111
     own = main_scene.objects['Empty']
109
     own = main_scene.objects['Empty']
127
     dict['npause'] = False 
125
     dict['npause'] = False 
128
     
126
     
129
 def timer():
127
 def timer():
130
-    import GameLogic
131
-    import bge    
132
-
133
-    dict = bge.logic.globalDict    
128
+    #dict = bge.logic.globalDict    
134
     
129
     
135
     if dict['reload_timer'] == 1:
130
     if dict['reload_timer'] == 1:
136
         scene = bge.logic.getCurrentScene()
131
         scene = bge.logic.getCurrentScene()

+ 1
- 0
scripts/Startup.py View File

2
 
2
 
3
 def main(cont):
3
 def main(cont):
4
     #cont = bge.logic.getCurrentController() 
4
     #cont = bge.logic.getCurrentController() 
5
+    print('Startup.py running ----------')
5
     own = cont.owner
6
     own = cont.owner
6
     scenes = bge.logic.getSceneList()
7
     scenes = bge.logic.getSceneList()
7
 
8
 

+ 133
- 0
scripts/StatesGame.py View File

1
+import bge
2
+import random
3
+
4
+import Startup as S2
5
+import Settings
6
+import inputs
7
+import logo_fades
8
+#====================================     
9
+
10
+State = type("State", (object,), {})
11
+#====================================     
12
+class State(object):
13
+    def __init__(self, FSM):
14
+        self.FSM = FSM
15
+        self.timer = 0
16
+        self.startTime = 0
17
+    def Enter(self):
18
+        self.timer = 0
19
+        self.startTime = 0
20
+    def Execute(self):
21
+        print('Executing')
22
+    def Exit(self):
23
+        print('Exiting')
24
+
25
+#==================================== 
26
+            
27
+class Example(State):
28
+    def __init__(self,FSM):
29
+        super(Example, self).__init__(FSM)    
30
+        
31
+    def Enter(self):
32
+        self.FSM.stateLife = 1
33
+        super(Example, self).Enter()        
34
+        
35
+    def Execute(self):
36
+        self.FSM.stateLife += 1
37
+        #self.FSM.ToTransition('toLand')
38
+        
39
+    def Exit(self):
40
+        pass
41
+
42
+#==================================== 
43
+
44
+class Startup(State):
45
+    def __init__(self,FSM):
46
+        super(Startup, self).__init__(FSM)    
47
+        
48
+    def Enter(self):
49
+        self.FSM.stateLife = 1
50
+        super(Startup, self).Enter()        
51
+        
52
+    def Execute(self):
53
+        self.FSM.stateLife += 1
54
+
55
+        #if self.FSM.stateLife == 2:
56
+            #Startup.main(self.FSM.owner['cont'])
57
+
58
+        self.FSM.ToTransition('toIniter')
59
+        
60
+    def Exit(self):
61
+        pass
62
+
63
+#==================================== 
64
+
65
+class Initer(State):
66
+    def __init__(self,FSM):
67
+        super(Initer, self).__init__(FSM)    
68
+        
69
+    def Enter(self):
70
+        self.FSM.stateLife = 1
71
+        super(Initer, self).Enter()        
72
+        
73
+    def Execute(self):
74
+        self.FSM.stateLife += 1
75
+
76
+        if self.FSM.stateLife == 2:
77
+            print('--------- fsm running startup')
78
+            S2.main(self.FSM.owner['cont'])
79
+            #Settings.readSettings(self.FSM.owner['cont'])
80
+            Settings.readSettings()
81
+            Settings.setres()
82
+
83
+
84
+        if self.FSM.stateLife == 120:
85
+
86
+            self.FSM.ToTransition('toLoadLevel')
87
+        
88
+    def Exit(self):
89
+        pass
90
+
91
+
92
+#==================================== 
93
+
94
+class LoadLevel(State):
95
+    def __init__(self,FSM):
96
+        super(LoadLevel, self).__init__(FSM)    
97
+        
98
+    def Enter(self):
99
+        self.FSM.stateLife = 1
100
+        super(LoadLevel, self).Enter()        
101
+        
102
+    def Execute(self):
103
+        self.FSM.stateLife += 1
104
+        print('fsm loading level')
105
+        
106
+        Settings.loadlevel()
107
+        
108
+        self.FSM.ToTransition('toGameOn')
109
+    def Exit(self):
110
+        pass
111
+
112
+#==================================== 
113
+
114
+class GameOn(State):
115
+    def __init__(self,FSM):
116
+        super(GameOn, self).__init__(FSM)    
117
+        
118
+    def Enter(self):
119
+        self.FSM.stateLife = 1
120
+        super(GameOn, self).Enter()        
121
+        
122
+    def Execute(self):
123
+        self.FSM.stateLife += 1
124
+        #self.FSM.ToTransition('toLand')
125
+        #print('game on')
126
+
127
+        inputs.main()
128
+        logo_fades.main()
129
+
130
+    def Exit(self):
131
+        pass
132
+
133
+#==================================== 

+ 93
- 0
scripts/StatesPlayer.py View File

1
+import bge
2
+
3
+#====================================     
4
+
5
+State = type("State", (object,), {})
6
+#====================================     
7
+class State(object):
8
+    def __init__(self, FSM):
9
+        self.FSM = FSM
10
+        self.timer = 0
11
+        self.startTime = 0
12
+    def Enter(self):
13
+        self.timer = 0
14
+        self.startTime = 0
15
+    def Execute(self):
16
+        print('Executing')
17
+    def Exit(self):
18
+        print('Exiting')
19
+
20
+#==================================== 
21
+            
22
+class Example(State):
23
+    def __init__(self,FSM):
24
+        super(Example, self).__init__(FSM)    
25
+        
26
+    def Enter(self):
27
+        self.FSM.stateLife = 1
28
+        super(Example, self).Enter()        
29
+        
30
+    def Execute(self):
31
+        self.FSM.stateLife += 1
32
+        #self.FSM.ToTransition('toLand')
33
+        
34
+    def Exit(self):
35
+        pass
36
+
37
+#==================================== 
38
+
39
+class Startup(State):
40
+    def __init__(self,FSM):
41
+        super(Startup, self).__init__(FSM)    
42
+        
43
+    def Enter(self):
44
+        self.FSM.stateLife = 1
45
+        super(Startup, self).Enter()        
46
+        
47
+    def Execute(self):
48
+        self.FSM.stateLife += 1
49
+
50
+        #if self.FSM.stateLife == 2:
51
+            #Startup.main(self.FSM.owner['cont'])
52
+
53
+        self.FSM.ToTransition('toWalk')
54
+        print('player FSM')
55
+        
56
+    def Exit(self):
57
+        pass
58
+
59
+#==================================== 
60
+            
61
+class Walk(State):
62
+    def __init__(self,FSM):
63
+        super(Walk, self).__init__(FSM)    
64
+        
65
+    def Enter(self):
66
+        self.FSM.stateLife = 1
67
+        super(Walk, self).Enter()        
68
+        
69
+    def Execute(self):
70
+        self.FSM.stateLife += 1
71
+        #self.FSM.ToTransition('toLand')
72
+        
73
+    def Exit(self):
74
+        pass
75
+
76
+#==================================== 
77
+            
78
+class Roll(State):
79
+    def __init__(self,FSM):
80
+        super(Roll, self).__init__(FSM)    
81
+        
82
+    def Enter(self):
83
+        self.FSM.stateLife = 1
84
+        super(Roll, self).Enter()        
85
+        
86
+    def Execute(self):
87
+        self.FSM.stateLife += 1
88
+        #self.FSM.ToTransition('toLand')
89
+        
90
+    def Exit(self):
91
+        pass
92
+
93
+#==================================== 

+ 12
- 0
scripts/game.py View File

1
+import bge
2
+import FSM
3
+
4
+def main(cont):
5
+	own = cont.owner
6
+	dict = bge.logic.globalDict
7
+	if 'game_inited' not in own:
8
+		own['game_inited'] = True
9
+		own['cont'] = cont
10
+		dict['gameFSM'] = FSM.GameFSM(own)
11
+
12
+	dict['gameFSM'].Execute()

+ 1
- 1
scripts/inputs.py View File

311
             cube.restoreDynamics()
311
             cube.restoreDynamics()
312
             print(cube.isSuspendDynamics)
312
             print(cube.isSuspendDynamics)
313
 
313
 
314
-main()
314
+#main()
315
 
315
 

+ 2
- 19
scripts/logo_fades.py View File

1
 import bge
1
 import bge
2
-import Settings
2
+#import Settings
3
 
3
 
4
 def main():
4
 def main():
5
 
5
 
9
     scene = bge.logic.getCurrentScene()
9
     scene = bge.logic.getCurrentScene()
10
     black = scene.objects['black']
10
     black = scene.objects['black']
11
     shuvit_logo = scene.objects['shuvit_logo']
11
     shuvit_logo = scene.objects['shuvit_logo']
12
-    levels = ['garage18', 'mini_scene']
13
     scenes = bge.logic.getSceneList()
12
     scenes = bge.logic.getSceneList()
14
-    #print(dict['load_timer'])
15
     
13
     
16
     if dict['overlay_fadein'] == 1:
14
     if dict['overlay_fadein'] == 1:
17
-        #dict['overlay_fadein'] = 0
18
-        #black.playAction('black_fade', 0,60, layer=0, play_mode=0)
19
-        #print("---add fade")
20
-        #fade_in
21
-        
22
         for i in scenes:
15
         for i in scenes:
23
             if i.name == "fade_in":
16
             if i.name == "fade_in":
24
                 scene2 = i
17
                 scene2 = i
25
                 scene2.end()         
18
                 scene2.end()         
26
         cont.activate(own.actuators['add_fade'])  
19
         cont.activate(own.actuators['add_fade'])  
27
         
20
         
28
-        #skater.playAction("reg_noses", 30,40, layer=trans_layer, play_mode=0, speed=.5)
29
     if dict['overlay_fadeout'] == 1:
21
     if dict['overlay_fadeout'] == 1:
30
         dict['overlay_fadeout'] = 0    
22
         dict['overlay_fadeout'] = 0    
31
         black.playAction('black_fade', 100,200, layer=2, play_mode=0) 
23
         black.playAction('black_fade', 100,200, layer=2, play_mode=0) 
32
         shuvit_logo.playAction('logo_fade', 100,200, layer=0, play_mode=0)  
24
         shuvit_logo.playAction('logo_fade', 100,200, layer=0, play_mode=0)  
33
-        #print('fade out black and logo') 
34
         
25
         
35
     if dict['load_timer'] > 0:
26
     if dict['load_timer'] > 0:
36
         dict['load_timer'] -= 1
27
         dict['load_timer'] -= 1
37
     if dict['load_timer'] == 3:
28
     if dict['load_timer'] == 3:
38
-        #load   
39
         scenes = bge.logic.getSceneList()
29
         scenes = bge.logic.getSceneList()
40
-        #print('scenes: ', scenes)
41
 
30
 
42
-                 
43
-        #Settings.loadlevel()
44
-        #print('----reloading----')
45
         dict['load_timer'] == 0
31
         dict['load_timer'] == 0
46
         cont.activate(own.actuators['reload_game'])
32
         cont.activate(own.actuators['reload_game'])
47
-        
48
-        #cont.activate(own.actuators["loading"])
49
-        #print('loading', dict['level'])
50
     
33
     
51
-main()
34
+#main()

+ 14
- 0
scripts/player.py View File

1
+import bge
2
+import FSM
3
+
4
+
5
+
6
+def update(cont):
7
+	#print('-------------player updating----------------')
8
+	dict = bge.logic.globalDict
9
+	own = cont.owner
10
+
11
+	if 'playerFSM' not in dict:
12
+		dict['playerFSM'] = FSM.PlayerFSM(own)
13
+
14
+	dict['playerFSM'].Execute()

Loading…
Cancel
Save