|
From: Bruno D. <bd...@us...> - 2009-12-05 19:19:09
|
This is an automated email from the git, the tree hashes are:
via 38fdfb4657fbe77c921c39bea0720bd845a7bb7d (commit)
via 4aacc37b0039fa3cf3564dd2c258c6dbc7ad9eda (commit)
via 642e3dd45de7df9cc70334a6c9e1029f9175af63 (commit)
via 6842702352c5168a945106e45e7723690e98ca21 (commit)
via 09a103c5847575a2ea3adb74e26a7fe49f37223d (commit)
via 04f4f6ad7d315337dcb8961bbf8480773540b5fa (commit)
via 58513ae665ec84c6878a0ac74877284f84d4b05b (commit)
via bf676bf01aede566a0e82666e25e2fe372b802a4 (commit)
via 5964af6b091c299a44bfe1727473e945db216e98 (commit)
from e34e5b37510b74bd665338bc43a14f434ec1ef4d (commit)
- Log -----------------------------------------------------------------
commit 38fdfb4657fbe77c921c39bea0720bd845a7bb7d
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 17:15:38 2009 -0200
Parse user preferences after default preferences
That will avoid missing entries on configuration file
diff --git a/code/preferences.py b/code/preferences.py
index 8527df6..d882daf 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -73,10 +73,11 @@ class Preferences(object):
self.keyboard_up = 273
self.keyboard_down = ...
"""
- for section in self.conf.sections():
- for item, value in self.conf.items(section):
- attr_name = "%s_%s" % (section, item)
- attr_value = self.parse_config_item(value)
- self.__setattr__(attr_name, attr_value)
- print section, item, attr_value
+ for conf in [self.default_conf, self.conf]:
+ for section in conf.sections():
+ for item, value in conf.items(section):
+ attr_name = "%s_%s" % (section, item)
+ attr_value = self.parse_config_item(value)
+ self.__setattr__(attr_name, attr_value)
+ print section, item, attr_value
commit 4aacc37b0039fa3cf3564dd2c258c6dbc7ad9eda
Merge: 642e3dd e34e5b3
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 17:10:52 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
Conflicts:
code/preferences.py
diff --cc code/bullet.py
index 01990a5,de1a054..7091aa5
--- a/code/bullet.py
+++ b/code/bullet.py
@@@ -70,10 -67,9 +70,10 @@@ class GuidedBullet(Bullet)
rotation_speed=rotation_speed, image=image,
list=list, distance=distance)
self.enemy_list = enemy_list
+ self.prev_targets = []
self.target = self.lock_target()
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Set speed before calling Bullet update method.
Speed will be set to keep the bullet following the target.
diff --cc code/game.py
index 9c4af01,dc61056..32dd0db
--- a/code/game.py
+++ b/code/game.py
@@@ -462,10 -464,8 +464,10 @@@ class Game
}
# loads music player
- self.music_player = Music_player(
- self.hud, self.preferences.general_music_volume)
+ self.music_player = Music_player(self.hud,
+ self.preferences.general_music_volume,
- self.preferences.general_default_setlist,
++ self.preferences.general_use_default_setlist,
+ self.preferences.general_music_dir)
# loads next music
self.music_player.load_next()
# Starts playing music
diff --cc code/power_up.py
index fcbb52b,aff7ffc..ec267ee
--- a/code/power_up.py
+++ b/code/power_up.py
@@@ -23,10 -23,10 +23,10 @@@ class PowerUp(GameObject)
"""
GameObject.__init__(self, image, position, 0, speed, 0)
self.type = type
- self.special = special
+ self.pu_attr = pu_attr
self.set_life_time(life_time)
- def update(self, dt, ms):
+ def update(self, dt, ms, *args):
"""
Overrides GameObject update
"""
commit 642e3dd45de7df9cc70334a6c9e1029f9175af63
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 17:05:16 2009 -0200
Add eletrical weapon
diff --git a/code/bullet.py b/code/bullet.py
index a5962b6..01990a5 100644
--- a/code/bullet.py
+++ b/code/bullet.py
@@ -40,6 +40,9 @@ class Bullet(GameObject):
def at_max_distance(self):
self.kill()
+ def do_collision(self):
+ self.kill()
+
class FragmentaryBullet(Bullet):
def __init__(self, position, speed=None, rotation=0, rotation_speed=0,
@@ -67,6 +70,7 @@ class GuidedBullet(Bullet):
rotation_speed=rotation_speed, image=image,
list=list, distance=distance)
self.enemy_list = enemy_list
+ self.prev_targets = []
self.target = self.lock_target()
def update(self, dt, ms):
@@ -101,11 +105,14 @@ class GuidedBullet(Bullet):
target = None
min_distance = sys.maxint
for enemy in self.enemy_list:
+ if enemy in self.prev_targets:
+ continue
distance = self.get_enemy_distance(enemy)
distance = abs(distance[0]) + abs(distance[1])
if distance < min_distance:
min_distance = distance
target = enemy
+ self.prev_targets.append(target)
return target
def get_enemy_distance(self, enemy):
@@ -116,3 +123,20 @@ class GuidedBullet(Bullet):
t_pos = enemy.get_pos()
d = [t_pos[0] - pos[0], t_pos[1] - pos[1]]
return d
+
+class EletricBullet(GuidedBullet):
+ hits = 0
+ max_hits = 2
+# def __init__(self, position, speed=None, rotation=0, rotation_speed=0,
+# image=None, list=None, distance = -1, enemy_list = None):
+#
+# GuidedBullet.__init__(self, position, speed, rotation, rotation_speed,
+# image, list, distance, enemy_list)
+# self.hits = 0
+# self.max_hits = 2
+
+ def do_collision(self):
+ self.hits += 1
+ self.lock_target()
+ if self.hits == self.max_hits:
+ self.kill()
diff --git a/code/game.py b/code/game.py
index 0035e00..9c4af01 100644
--- a/code/game.py
+++ b/code/game.py
@@ -98,10 +98,11 @@ class Game:
self.image_enemy_fire = self.load_image("enemy_fire.png")
self.image_life = self.load_image("life.png")
self.image_powerup = {}
- for image in ["first_aid_kit", "sw_mult", "sw_frag", "sw_guided"]:
+ for image in ["first_aid_kit", "sw_mult", "sw_frag", "sw_guided",
+ "sw_elet"]:
self.image_powerup[image] = self.load_image(image+".png")
self.image_player_fire = {}
- for image in ["fire", "sw_mult", "sw_frag", "sw_guided"]:
+ for image in ["fire", "sw_mult", "sw_frag", "sw_guided", "sw_elet"]:
self.image_player_fire[image] = self.load_image("player_"+image+".png")
def handle_events(self, ms):
@@ -337,10 +338,12 @@ class Game:
"""
# check if the actor is instance of a group of sprites
if isinstance(actor, pygame.sprite.RenderPlain):
- hitted = pygame.sprite.groupcollide(actor, actors_list, 1, 0)
+ hitted = pygame.sprite.groupcollide(actor, actors_list, 0, 0)
for v in hitted.values():
for o in v:
action(o)
+ for o in hitted.keys():
+ o.do_collision()
return hitted
# check if the actor is a sprite
@@ -413,7 +416,7 @@ class Game:
# add sprite to group
self.actors_list["enemies"].add(enemy)
elif element.type in ["first_aid_kit", "sw_mult", "sw_frag",
- "sw_guided"]:
+ "sw_guided", "sw_elet"]:
powerup = PowerUp([0,0], int(element.time),
[int(element.speed_x), int(element.speed_y)],
element.type, element.pu_attr,
diff --git a/code/player.py b/code/player.py
index 8c0c152..1211816 100644
--- a/code/player.py
+++ b/code/player.py
@@ -12,7 +12,7 @@
import math
from actor import Actor
-from bullet import Bullet, FragmentaryBullet, GuidedBullet
+from bullet import Bullet, FragmentaryBullet, GuidedBullet, EletricBullet
from secondary_weapon import SecondaryWeapon, MultipleShotWeapon, \
FragmentaryGrenade
@@ -140,6 +140,12 @@ class Player(Actor):
return
GuidedBullet(pos, [x, y], image = image, list = fire_list,
enemy_list = enemy_list)
+ elif weapon.type == "sw_elet":
+ if not weapon.decrease_ammo(1):
+ self.drop_secondary_weapon(weapon)
+ return
+ EletricBullet(pos, [x, y], image = image, list = fire_list,
+ enemy_list = enemy_list)
def get_powerup(self, type, special):
"""
diff --git a/code/stage.py b/code/stage.py
index 05e493e..a2e32ab 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -109,7 +109,7 @@ class Stage:
item = Mult(node)
elif type == "sw_frag":
item = Frag(node)
- elif type == "sw_guided":
+ elif type in ["sw_guided", "sw_elet"]:
item = Sw(node)
elif type == "first_aid_kit":
item = FirstAidKit(node)
diff --git a/data/graphic/player_sw_elet.png b/data/graphic/player_sw_elet.png
new file mode 100644
index 0000000..87c5b14
Binary files /dev/null and b/data/graphic/player_sw_elet.png differ
diff --git a/data/graphic/sw_elet.png b/data/graphic/sw_elet.png
new file mode 100644
index 0000000..8cf9405
Binary files /dev/null and b/data/graphic/sw_elet.png differ
diff --git a/data/stage1.xml b/data/stage1.xml
index 3a5ad6c..ea0bc78 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -99,6 +99,22 @@
<simultaneous_shoots>10</simultaneous_shoots>
</item>
<item>
+ <type>sw_elet</type>
+ <cc>540</cc>
+ <pos_x>0</pos_x>
+ <pos_y>10</pos_y>
+ <speed_x>-3</speed_x>
+ <speed_y>0</speed_y>
+ <name>Eletrical</name>
+ <ammo>100</ammo>
+ <max_ammo>100</max_ammo>
+ <distance>1000</distance>
+ <cooldown>400</cooldown>
+ <heating>300</heating>
+ <max_charge>300</max_charge>
+ <time>5000</time>
+</item>
+<item>
<type>sw_mult</type>
<cc>580</cc>
<pos_x>0</pos_x>
@@ -232,4 +248,37 @@
<behaviour>normal</behaviour>
<special>0</special>
</item>
+<item>
+ <type>enemy</type>
+ <cc>2010</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>2020</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>1</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
+<item>
+ <type>enemy</type>
+ <cc>2030</cc>
+ <pos_x>0</pos_x>
+ <pos_y>30</pos_y>
+ <speed>0</speed>
+ <life>3</life>
+ <image>none</image>
+ <behaviour>normal</behaviour>
+ <special>0</special>
+</item>
</fase>
commit 6842702352c5168a945106e45e7723690e98ca21
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 05:14:47 2009 -0200
Fixing broken code after stage changes
diff --git a/code/actor.py b/code/actor.py
index 429803d..c9af13b 100644
--- a/code/actor.py
+++ b/code/actor.py
@@ -24,7 +24,7 @@ class Actor(GameObject):
"""
GameObject.__init__(self, image, position, rotation, speed,
rotation_speed)
- self.set_life(life)
+ self.life = life
self.set_accel([3, 3])
def get_life(self):
diff --git a/code/game.py b/code/game.py
index e24ae89..0035e00 100644
--- a/code/game.py
+++ b/code/game.py
@@ -349,7 +349,7 @@ class Game:
collided_list = pygame.sprite.spritecollide(actor, actors_list, 0)
for obj in collided_list:
if isinstance(obj, PowerUp):
- if action(obj.get_type(), obj.get_special()):
+ if action(obj.get_type(), obj.get_pu_attr()):
obj.kill()
else:
action()
@@ -404,7 +404,7 @@ class Game:
for element in L:
if element.type == "enemy":
# FIX: Create enemies and itens similarly (create a generic class)
- enemy = Enemy([0, 0], 0, element.life, element.behaviour,
+ enemy = Enemy([0, 0], 0, int(element.life), element.behaviour,
0, self.image_enemy)
size = enemy.get_size()
y = Random.randint(size[1] / 2, self.screen_size[1] - size[1] / 2)
@@ -412,22 +412,19 @@ class Game:
enemy.set_pos(pos)
# add sprite to group
self.actors_list["enemies"].add(enemy)
- print("enemy")
elif element.type in ["first_aid_kit", "sw_mult", "sw_frag",
"sw_guided"]:
- powerup = PowerUp([0,0], element.life,
- [element.speed_x, element.speed_y],
- element.type, element.special,
+ powerup = PowerUp([0,0], int(element.time),
+ [int(element.speed_x), int(element.speed_y)],
+ element.type, element.pu_attr,
self.image_powerup[element.type])
size = powerup.get_size()
y = Random.randint(size[1] / 2, self.screen_size[1] - size[1] / 2)
pos = [self.screen_size[0] + size[0] / 2, y]
powerup.set_pos(pos)
self.actors_list["powerups"].add(powerup)
- print(element.type)
elif element.type == "background":
self.background.nextTile(element.image)
- print "backgs"
def loop(self):
"""
diff --git a/code/player.py b/code/player.py
index fd2303b..8c0c152 100644
--- a/code/player.py
+++ b/code/player.py
@@ -80,9 +80,12 @@ class Player(Actor):
Set player's life if it's not more than max life or return False.
Overrides Actor's set_life method.
"""
- if life > self.max_life:
- return False
- self.life = life
+ if life >= self.max_life:
+ if self.life == self.max_life:
+ return False
+ self.life = self.max_life
+ else:
+ self.life = life
return True
def fire(self, fire_list, image, primary=True, enemy_list=None, charging=0):
@@ -144,7 +147,7 @@ class Player(Actor):
false if he can't.
"""
if type == "first_aid_kit":
- return self.get_first_aid_kit(int(special[0]))
+ return self.get_first_aid_kit(int(special['life']))
# secondary weapon
elif "sw" in type:
if type == "sw_mult":
diff --git a/code/power_up.py b/code/power_up.py
index 82aaf59..fcbb52b 100644
--- a/code/power_up.py
+++ b/code/power_up.py
@@ -17,13 +17,13 @@ class PowerUp(GameObject):
Base class for all power-ups
"""
def __init__(self, position, life_time=3000, speed=[0,0], type=None,
- special=0, image=None):
+ pu_attr=0, image=None):
"""
Set position, speed, life time and image
"""
GameObject.__init__(self, image, position, 0, speed, 0)
self.type = type
- self.special = special
+ self.pu_attr = pu_attr
self.set_life_time(life_time)
def update(self, dt, ms):
@@ -53,11 +53,11 @@ class PowerUp(GameObject):
"""
return self.type
- def get_special(self):
+ def get_pu_attr(self):
"""
- Returns a list wich content depends on type.
+ Returns a dict of power up attributes wich content depends on type.
For 'first_aid_kit' it will returns a single element, the life bonus.
For secondary weapons this list has a name, ammunition, distance,
and other related to each kind of sw.
"""
- return self.special
+ return self.pu_attr
diff --git a/code/preferences.py b/code/preferences.py
index cbf7fba..f0bd16c 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -209,5 +209,5 @@ class Preferences:
joystick_id = property(get_joystick_id)
general_input = property(get_general_input)
general_music_volume = property(get_general_music_volume)
- general_default_setlist = property(get_default_setlist)
- general_music_dir = property(get_music_dir)
+ general_default_setlist = property(get_general_default_setlist)
+ general_music_dir = property(get_general_music_dir)
diff --git a/code/secondary_weapon.py b/code/secondary_weapon.py
index 0f9399c..13b968b 100644
--- a/code/secondary_weapon.py
+++ b/code/secondary_weapon.py
@@ -14,14 +14,14 @@ class SecondaryWeapon:
def __init__(self, type, attributes):
self.type = type
- self.name = attributes[0]
- self.ammo = int(attributes[1])
- self.max_ammo = int(attributes[2])
- self.distance = int(attributes[3])
- self.max_cooldown = int(attributes[4])
+ self.name = attributes['name']
+ self.ammo = int(attributes['ammo'])
+ self.max_ammo = int(attributes['max_ammo'])
+ self.distance = int(attributes['distance'])
+ self.max_cooldown = int(attributes['cooldown'])
self.cooldown = self.max_cooldown
- self.warm = int(attributes[5])
- self.max_charge = int(attributes[6])
+ self.warm = int(attributes['heating'])
+ self.max_charge = int(attributes['max_charge'])
def get_name(self):
return self.name
@@ -79,8 +79,8 @@ class SecondaryWeapon:
class MultipleShotWeapon(SecondaryWeapon):
def __init__(self, type, attributes):
SecondaryWeapon.__init__(self, type, attributes)
- self.radius = int(attributes[7])
- self.simultaneous_shoots = int(attributes[8])
+ self.radius = int(attributes['radius'])
+ self.simultaneous_shoots = int(attributes['simultaneous_shoots'])
def get_radius(self):
return self.radius
@@ -91,7 +91,7 @@ class MultipleShotWeapon(SecondaryWeapon):
class FragmentaryGrenade(SecondaryWeapon):
def __init__(self, type, attributes):
SecondaryWeapon.__init__(self, type, attributes)
- self.fragments = int(attributes[7])
+ self.fragments = int(attributes['fragments'])
def get_fragments(self):
return self.fragments
diff --git a/code/stage.py b/code/stage.py
index c6f50d3..05e493e 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -39,36 +39,37 @@ class Enemy(Item):
for tag in ['pos_x', 'pos_y', 'behaviour', 'life', 'image', 'speed']:
setattr(self, tag, self.get_element(tag, node))
-class Sw(Item):
+class PU(Item):
def __init__(self, node):
Item.__init__(self, node)
- for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'name', 'ammo',
- 'max_ammo', 'cooldown', 'heating', 'time']:
+ for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'time']:
setattr(self, tag, self.get_element(tag, node))
+ self.pu_attr = {}
+
+class Sw(PU):
+ def __init__(self, node):
+ PU.__init__(self, node)
+ for tag in ['name', 'ammo', 'max_ammo', 'cooldown', 'heating',
+ 'max_charge', 'distance']:
+ self.pu_attr[tag] = self.get_element(tag, node)
class Mult(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- for tag in ['special1', 'special2']:
- setattr(self, tag, self.get_element(tag, node))
+ for tag in ['radius', 'simultaneous_shoots']:
+ self.pu_attr[tag] = self.get_element(tag, node)
class Frag(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- for tag in ['special1', 'max_charge']:
- setattr(self, tag, self.get_element(tag, node))
+ for tag in ['fragments']:
+ self.pu_attr[tag] = self.get_element(tag, node)
-class Guided(Sw):
+class FirstAidKit(PU):
def __init__(self, node):
- Sw.__init__(self, node)
- for tag in ['special1', 'special2']:
- setattr(self, tag, self.get_element(tag, node))
-
-class FirstAidKit(Item):
- def __init__(self, node):
- Item.__init__(self, node)
- for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'life', 'time']:
- setattr(self, tag, self.get_element(tag, node))
+ PU.__init__(self, node)
+ for tag in ['life']:
+ self.pu_attr[tag] = self.get_element(tag, node)
class Stage:
L = list()
@@ -95,10 +96,6 @@ class Stage:
while nextx == position:
subList.append(self.L.pop())
nextx = self.getNextX()
- print(len(subList))
- print(len(self.L))
- print(position)
- print(nextx)
return subList
def buildStage(self):
@@ -113,13 +110,9 @@ class Stage:
elif type == "sw_frag":
item = Frag(node)
elif type == "sw_guided":
- item = Guided(node)
+ item = Sw(node)
elif type == "first_aid_kit":
item = FirstAidKit(node)
- elif type == "sw_mult":
- item = Mult(node)
-
- print(item.cc)
self.include(item)
#below is some black magic I'm not sure how to deal with... but works
#taken from stackoverflow.org
diff --git a/data/stage1.xml b/data/stage1.xml
index 4f3363c..3a5ad6c 100644
--- a/data/stage1.xml
+++ b/data/stage1.xml
@@ -46,10 +46,11 @@
<max_ammo>100</max_ammo>
<cooldown>400</cooldown>
<heating>300</heating>
+ <distance>500</distance>
<max_charge>300</max_charge>
<time>60</time>
- <special1>30</special1>
- <special2>30</special2>
+ <radius>60</radius>
+ <simultaneous_shoots>3</simultaneous_shoots>
<special>Stuck Duck, 20, 100, 400, 300, 300, 0, 60, 3</special>
</item>
<item>
@@ -73,12 +74,11 @@
<ammo>10</ammo>
<max_ammo>10</max_ammo>
<cooldown>450</cooldown>
- <heating>600</heating>
+ <heating>450</heating>
+ <distance>500</distance>
<max_charge>1000</max_charge>
- <time>60</time>
- <special1>1000</special1>
- <special2>40</special2>
- <special>Last Kiss, 10, 10, 450, 600, 600, 1000, 4</special>
+ <time>6000</time>
+ <fragments>4</fragments>
</item>
<item>
<type>sw_mult</type>
@@ -90,12 +90,13 @@
<name>Psycho Killah!</name>
<ammo>100</ammo>
<max_ammo>100</max_ammo>
+ <distance>500</distance>
<cooldown>400</cooldown>
<heating>300</heating>
<max_charge>300</max_charge>
- <time>60</time>
- <special1>360</special1>
- <special2>10</special2>
+ <time>5000</time>
+ <radius>360</radius>
+ <simultaneous_shoots>10</simultaneous_shoots>
</item>
<item>
<type>sw_mult</type>
@@ -108,11 +109,12 @@
<ammo>20</ammo>
<max_ammo>100</max_ammo>
<cooldown>400</cooldown>
+ <distance>500</distance>
<heating>300</heating>
<max_charge>300</max_charge>
- <time>60</time>
- <special1>360</special1>
- <special2>10</special2>
+ <time>4500</time>
+ <radius>360</radius>
+ <simultaneous_shoots>10</simultaneous_shoots>
</item>
<item>
<type>sw_guided</type>
@@ -124,12 +126,11 @@
<name>Seeeeeeek... Seek and Destroy!</name>
<ammo>40</ammo>
<max_ammo>50</max_ammo>
- <cooldown>150</cooldown>
- <heating>900</heating>
+ <distance>500</distance>
+ <cooldown>900</cooldown>
+ <heating>150</heating>
<max_charge>300</max_charge>
- <time>60</time>
- <special1>30</special1>
- <special2>30</special2>
+ <time>7000</time>
</item>
<item>
<type>enemy</type>
commit 09a103c5847575a2ea3adb74e26a7fe49f37223d
Merge: 04f4f6a 5764f65
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 03:49:01 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
Conflicts:
code/game.py
code/preferences.py
diff --cc code/game.py
index 4a32451,7cd52d8..e24ae89
--- a/code/game.py
+++ b/code/game.py
@@@ -462,9 -462,8 +462,10 @@@ class Game
}
# loads music player
- self.music_player = Music_player(
- self.hud, self.preferences.general_music_volume)
+ self.music_player = Music_player(self.hud,
- self.preferences.music_volume, self.preferences.default_setlist,
- self.preferences.music_dir)
++ self.preferences.general_music_volume,
++ self.preferences.general_default_setlist,
++ self.preferences.general_music_dir)
# loads next music
self.music_player.load_next()
# Starts playing music
diff --cc code/preferences.py
index 8467fce,453fac5..cbf7fba
--- a/code/preferences.py
+++ b/code/preferences.py
@@@ -114,100 -114,92 +114,100 @@@ class Preferences
def get_mouse_next_secondary_weapon(self):
return int(self.get('mouse', 'next_secondary_weapon'))
- def get_joy_axis_x(self):
+ def get_joystick_axis_x(self):
return int(self.get('joystick', 'axis_x'))
- def get_joy_axis_y(self):
+ def get_joystick_axis_y(self):
return int(self.get('joystick', 'axis_y'))
- def get_joy_axis_z(self):
+ def get_joystick_axis_z(self):
return int(self.get('joystick', 'axis_z'))
- def get_joy_fire(self):
+ def get_joystick_fire(self):
return int(self.get('joystick', 'fire'))
- def get_joy_secondary_fire(self):
+ def get_joystick_secondary_fire(self):
return int(self.get('joystick', 'secondary_fire'))
- def get_joy_rot_clock(self):
+ def get_joystick_rot_clock(self):
return int(self.get('joystick', 'rot_clock'))
- def get_joy_rot_anti_clock(self):
+ def get_joystick_rot_anti_clock(self):
return int(self.get('joystick', 'rot_anti_clock'))
- def get_joy_player_play(self):
+ def get_joystick_player_play(self):
return int(self.get('joystick', 'player_play'))
- def get_joy_player_stop(self):
+ def get_joystick_player_stop(self):
return int(self.get('joystick', 'player_stop'))
- def get_joy_player_next_track(self):
+ def get_joystick_player_next_track(self):
return int(self.get('joystick', 'player_next_track'))
- def get_joy_prev_secondary_weapon(self):
+ def get_joystick_prev_secondary_weapon(self):
return int(self.get('joystick', 'prev_secondary_weapon'))
- def get_joy_next_secondary_weapon(self):
+ def get_joystick_next_secondary_weapon(self):
return int(self.get('joystick', 'next_secondary_weapon'))
- def get_joy_sensitivity(self):
+ def get_joystick_sensitivity(self):
return float(self.get('joystick', 'sensitivity'))
- def get_joy_deadzone(self):
+ def get_joystick_deadzone(self):
return float(self.get('joystick', 'deadzone'))
- def get_joy_id(self):
+ def get_joystick_id(self):
return int(self.get('joystick', 'id'))
- def get_input(self):
+ def get_general_input(self):
return self.get('general', 'input')
- def get_music_volume(self):
+ def get_general_music_volume(self):
return float(self.get('general', 'music_volume'))
- def get_default_setlist(self):
++ def get_general_default_setlist(self):
+ return self.get('general', 'use_default_setlist')
+
- def get_music_dir(self):
++ def get_general_music_dir(self):
+ return self.get('general', 'music_dir')
+
- fullscreen = property(get_fullscreen)
- resolution = property(get_resolution)
- key_up = property(get_key_up)
- key_down = property(get_key_down)
- key_right = property(get_key_right)
- key_left = property(get_key_left)
- key_fire = property(get_key_fire)
- key_secondary_fire = property(get_key_secondary_fire)
- key_rot_clock = property(get_key_rot_clock)
- key_rot_anti_clock = property(get_key_rot_anti_clock)
- key_player_play = property(get_key_player_play)
- key_player_stop = property(get_key_player_stop)
- key_player_next_track = property(get_key_player_next_track)
- key_prev_secondary_weapon = property(get_key_prev_secondary_weapon)
- key_next_secondary_weapon = property(get_key_next_secondary_weapon)
- key_toogle_fullscreen = property(get_key_toogle_fullscreen)
+ screen_fullscreen = property(get_screen_fullscreen)
+ screen_resolution = property(get_screen_resolution)
+ keyboard_up = property(get_keyboard_up)
+ keyboard_down = property(get_keyboard_down)
+ keyboard_right = property(get_keyboard_right)
+ keyboard_left = property(get_keyboard_left)
+ keyboard_fire = property(get_keyboard_fire)
+ keyboard_secondary_fire = property(get_keyboard_secondary_fire)
+ keyboard_rot_clock = property(get_keyboard_rot_clock)
+ keyboard_rot_anti_clock = property(get_keyboard_rot_anti_clock)
+ keyboard_player_play = property(get_keyboard_player_play)
+ keyboard_player_stop = property(get_keyboard_player_stop)
+ keyboard_player_next_track = property(get_keyboard_player_next_track)
+ keyboard_prev_secondary_weapon = property(get_keyboard_prev_secondary_weapon)
+ keyboard_next_secondary_weapon = property(get_keyboard_next_secondary_weapon)
+ keyboard_toogle_fullscreen = property(get_keyboard_toogle_fullscreen)
mouse_sensitivity = property(get_mouse_sensitivity)
mouse_fire = property(get_mouse_fire)
mouse_secondary_fire = property(get_mouse_secondary_fire)
mouse_prev_secondary_weapon = property(get_mouse_prev_secondary_weapon)
mouse_next_secondary_weapon = property(get_mouse_next_secondary_weapon)
- j_axis_x = property(get_joy_axis_x)
- j_axis_y = property(get_joy_axis_y)
- j_axis_z = property(get_joy_axis_z)
- j_bt_fire = property(get_joy_fire)
- j_bt_secondary_fire = property(get_joy_secondary_fire)
- j_bt_rot_clock = property(get_joy_rot_clock)
- j_bt_rot_anti_clock = property(get_joy_rot_anti_clock)
- j_bt_player_play = property(get_joy_player_play)
- j_bt_player_stop = property(get_joy_player_stop)
- j_bt_player_next_track = property(get_joy_player_next_track)
- j_bt_prev_secondary_weapon = property(get_joy_prev_secondary_weapon)
- j_bt_next_secondary_weapon = property(get_joy_next_secondary_weapon)
- joy_sensitivity = property(get_joy_sensitivity)
- joy_deadzone = property(get_joy_deadzone)
- joy_id = property(get_joy_id)
- input = property(get_input)
- music_volume = property(get_music_volume)
- default_setlist = property(get_default_setlist)
- music_dir = property(get_music_dir)
+ joystick_axis_x = property(get_joystick_axis_x)
+ joystick_axis_y = property(get_joystick_axis_y)
+ joystick_axis_z = property(get_joystick_axis_z)
+ joystick_fire = property(get_joystick_fire)
+ joystick_secondary_fire = property(get_joystick_secondary_fire)
+ joystick_rot_clock = property(get_joystick_rot_clock)
+ joystick_rot_anti_clock = property(get_joystick_rot_anti_clock)
+ joystick_player_play = property(get_joystick_player_play)
+ joystick_player_stop = property(get_joystick_player_stop)
+ joystick_player_next_track = property(get_joystick_player_next_track)
+ joystick_prev_secondary_weapon = property(get_joystick_prev_secondary_weapon)
+ joystick_next_secondary_weapon = property(get_joystick_next_secondary_weapon)
+ joystick_sensitivity = property(get_joystick_sensitivity)
+ joystick_deadzone = property(get_joystick_deadzone)
+ joystick_id = property(get_joystick_id)
+ general_input = property(get_general_input)
+ general_music_volume = property(get_general_music_volume)
++ general_default_setlist = property(get_default_setlist)
++ general_music_dir = property(get_music_dir)
commit 04f4f6ad7d315337dcb8961bbf8480773540b5fa
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 03:39:20 2009 -0200
Xml Parser refactoring
diff --git a/code/stage.py b/code/stage.py
index b21f907..c6f50d3 100644
--- a/code/stage.py
+++ b/code/stage.py
@@ -4,6 +4,7 @@
#----------------------------------------------------------------------
# Author:
# João Corrêa <jo...@li...>
+# Bruno Dilly <bru...@br...>
#
# Copyright (C) 2009 João Corrêa
#
@@ -20,66 +21,54 @@ class Callable:
class Item:
def __init__(self, node):
- self.type = node.getElementsByTagName("type")[0].childNodes[0].nodeValue
- self.cc = int(node.getElementsByTagName("cc")[0].childNodes[0].nodeValue)
+ for tag in ['type', 'cc']:
+ setattr(self, tag, self.get_element(tag, node))
+
+ def get_element(self, tag, node):
+ return node.getElementsByTagName(tag)[0].childNodes[0].nodeValue
class Backg(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.image = node.getElementsByTagName("image")[0].childNodes[0].nodeValue
- self.layer = node.getElementsByTagName("layer")[0].childNodes[0].nodeValue
+ for tag in ['image', 'layer']:
+ setattr(self, tag, self.get_element(tag, node))
class Enemy(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
- self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
- self.behaviour = node.getElementsByTagName("behaviour")[0].childNodes[0].nodeValue
- self.life = node.getElementsByTagName("life")[0].childNodes[0].nodeValue
- self.image = node.getElementsByTagName("image")[0].childNodes[0].nodeValue
- self.speed = node.getElementsByTagName("speed")[0].childNodes[0].nodeValue
+ for tag in ['pos_x', 'pos_y', 'behaviour', 'life', 'image', 'speed']:
+ setattr(self, tag, self.get_element(tag, node))
class Sw(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
- self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
- self.speed_x = node.getElementsByTagName("speed_y")[0].childNodes[0].nodeValue
- self.speed_y = node.getElementsByTagName("speed_x")[0].childNodes[0].nodeValue
- self.name = node.getElementsByTagName("name")[0].childNodes[0].nodeValue
- self.ammo = node.getElementsByTagName("ammo")[0].childNodes[0].nodeValue
- self.max_ammo = node.getElementsByTagName("max_ammo")[0].childNodes[0].nodeValue
- self.cooldown = node.getElementsByTagName("cooldown")[0].childNodes[0].nodeValue
- self.heating = node.getElementsByTagName("heating")[0].childNodes[0].nodeValue
- self.time = node.getElementsByTagName("time")[0].childNodes[0].nodeValue
+ for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'name', 'ammo',
+ 'max_ammo', 'cooldown', 'heating', 'time']:
+ setattr(self, tag, self.get_element(tag, node))
class Mult(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
- self.special2 = node.getElementsByTagName("special2")[0].childNodes[0].nodeValue
+ for tag in ['special1', 'special2']:
+ setattr(self, tag, self.get_element(tag, node))
class Frag(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
- self.max_charge = node.getElementsByTagName("max_charge")[0].childNodes[0].nodeValue
+ for tag in ['special1', 'max_charge']:
+ setattr(self, tag, self.get_element(tag, node))
class Guided(Sw):
def __init__(self, node):
Sw.__init__(self, node)
- self.special1 = node.getElementsByTagName("special1")[0].childNodes[0].nodeValue
- self.special2 = node.getElementsByTagName("special2")[0].childNodes[0].nodeValue
+ for tag in ['special1', 'special2']:
+ setattr(self, tag, self.get_element(tag, node))
class FirstAidKit(Item):
def __init__(self, node):
Item.__init__(self, node)
- self.pos_x = node.getElementsByTagName("pos_x")[0].childNodes[0].nodeValue
- self.pos_y = node.getElementsByTagName("pos_y")[0].childNodes[0].nodeValue
- self.speed_x = node.getElementsByTagName("speed_x")[0].childNodes[0].nodeValue
- self.speed_y = node.getElementsByTagName("speed_y")[0].childNodes[0].nodeValue
- self.life = node.getElementsByTagName("life")[0].childNodes[0].nodeValue
- self.time = node.getElementsByTagName("time")[0].childNodes[0].nodeValue
+ for tag in ['pos_x', 'pos_y', 'speed_x', 'speed_y', 'life', 'time']:
+ setattr(self, tag, self.get_element(tag, node))
class Stage:
L = list()
@@ -134,4 +123,4 @@ class Stage:
self.include(item)
#below is some black magic I'm not sure how to deal with... but works
#taken from stackoverflow.org
- self.L.sort(key=lambda item: item.cc, reverse=True)
+ self.L.sort(key=lambda item: int(item.cc), reverse=True)
commit 58513ae665ec84c6878a0ac74877284f84d4b05b
Merge: bf676bf 71889b9
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 02:59:01 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit bf676bf01aede566a0e82666e25e2fe372b802a4
Merge: 5964af6 6d919fc
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 02:22:05 2009 -0200
Merge branch 'master' of ssh://bdilly@deadchannel.git.sourceforge.net/gitroot/deadchannel/deadchannel
commit 5964af6b091c299a44bfe1727473e945db216e98
Author: Bruno Dilly <bru...@br...>
Date: Sat Dec 5 02:21:57 2009 -0200
Handle music directories
diff --git a/code/game.py b/code/game.py
index 069eb42..05dc522 100644
--- a/code/game.py
+++ b/code/game.py
@@ -458,8 +458,9 @@ class Game:
}
# loads music player
- self.music_player = Music_player(
- self.hud, self.preferences.music_volume)
+ self.music_player = Music_player(self.hud,
+ self.preferences.music_volume, self.preferences.default_setlist,
+ self.preferences.music_dir)
# loads next music
self.music_player.load_next()
# Starts playing music
diff --git a/code/music.py b/code/music.py
index e831b65..59b88ed 100644
--- a/code/music.py
+++ b/code/music.py
@@ -24,12 +24,17 @@ class Music_player:
loaded_index = -1
loaded_track_info = None
- def __init__(self, hud, volume=1.0):
+ def __init__(self, hud, volume=1.0, default_setlist=None, music_dir=None):
"""
Initializes music playback
"""
# Fills the playlist
- self.playlist = glob.glob(os.path.join('music', '*.ogg'))
+ self.playlist = []
+ if default_setlist:
+ self.playlist += glob.glob(os.path.join('music', '*.ogg'))
+ if music_dir:
+ MUSIC_DIR = os.path.abspath(music_dir)
+ self.playlist += glob.glob(os.path.join(MUSIC_DIR, '*.ogg'))
# Shuffles playlist
random.shuffle(self.playlist)
pygame.mixer.music.set_volume(volume)
diff --git a/code/preferences.py b/code/preferences.py
index 33bcdb5..12be476 100644
--- a/code/preferences.py
+++ b/code/preferences.py
@@ -162,6 +162,12 @@ class Preferences:
def get_music_volume(self):
return float(self.get('general', 'music_volume'))
+ def get_default_setlist(self):
+ return self.get('general', 'use_default_setlist')
+
+ def get_music_dir(self):
+ return self.get('general', 'music_dir')
+
fullscreen = property(get_fullscreen)
resolution = property(get_resolution)
key_up = property(get_key_up)
@@ -199,3 +205,5 @@ class Preferences:
joy_id = property(get_joy_id)
input = property(get_input)
music_volume = property(get_music_volume)
+ default_setlist = property(get_default_setlist)
+ music_dir = property(get_music_dir)
diff --git a/data/default_preferences.cfg b/data/default_preferences.cfg
index 6433dce..f233207 100644
--- a/data/default_preferences.cfg
+++ b/data/default_preferences.cfg
@@ -58,4 +58,7 @@ sensitivity = 0.6
# input can be mouse, keyboard, joystick_analogic, joystick_d-pad
input = mouse
music_volume = 0.8
+# it should be left blank if you don't want to play the default setlist
use_default_setlist = True
+# music dir can be provided as a search place for ogg file
+music_dir =
-----------------------------------------------------------------------
Summary of changes:
code/actor.py | 2 +-
code/bullet.py | 24 +++++++++++
code/game.py | 30 +++++++------
code/music.py | 9 +++-
code/player.py | 19 ++++++--
code/power_up.py | 10 ++--
code/preferences.py | 13 +++---
code/secondary_weapon.py | 20 +++++-----
code/stage.py | 80 +++++++++++++++---------------------
data/default_preferences.cfg | 3 +
data/graphic/player_sw_elet.png | Bin 0 -> 582 bytes
data/graphic/sw_elet.png | Bin 0 -> 1244 bytes
data/stage1.xml | 86 ++++++++++++++++++++++++++++++--------
13 files changed, 188 insertions(+), 108 deletions(-)
create mode 100644 data/graphic/player_sw_elet.png
create mode 100644 data/graphic/sw_elet.png
--
Dead Channel is a sci-fi shoot 'em up game developed using pygame.
|