Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Poetronic

#31
Thank you kanonet for your kind reply, it is really my first game ever.

I will definitely add a feature for blank spaces in the next version (i.e. a minimum length for the player name), thanks for the hint! :good:
#32
Thanks Wampus, highly appreciate your comment! The slowing of gameplay seems to be an issue with all breakout games indeed, I totally agree with you on this part, and now you say it I might in fat try to come up with a solution to this problem. Could be a feature that separates my rather trivial breakout version from other games in that sector.

Have fun playing again later, there is in fact some sort of learning curve involved in playing the game that really makes you score better after a while. Thanks again :)
#33
I added the file as an attachement plus some valid download links. Check out http://www.glbasic.com/forum/index.php?topic=8654.0.

Thanks for the hint, Ian!  :good:
#34
WTF, I will upload a version on my own webspace... Stupid upload service clowns  :(
#35
Hi all,

I am happy to announce that I just uploaded the alpha version of my very first game ever!  :booze:

Here's the link to the thread: http://www.glbasic.com/forum/index.php?topic=8654.0

I hope you don't mind posting this in here!

Have a nice weekend - P.
#36
Hi all,

it's been a while, but there's some good news: I just uploaded the alpha version of my very first game ever! Yes, ever! :booze:

Added skip level feature for faster gameplay + minor bug fixes (31.10.)

  • When only a few blocks are left you can skip the level by moving the paddle below the green arrows and holding the left mouse button for approx. 2 secs. But beware: skipping a level before all blocks are destroyed will significantly decrease your score!
  • Improved hiscore name entry

Fixed some minor bugs (29.10.)

  • Hiscore (local/online)
  • Player name
  • Minor ingame bugs

Download

Features

  • 32 levels (soundtrack changes every 8 levels)
  • 16 item types
  • 3 ball types (normal, sticky, on fire)
  • 99 blocks with different block types (explosive, teleport, multihit, switching etc.)
  • enemies that will fire back at you (starting from level 24)
  • mini endboss
  • score system that includes a timer, how many blocks each ball hits in a row, and how many balls you save through each level
  • online hiscore @ http://tinyurl.com/9p6usvc (currently only one entry, so you go ahead and fill it!)
  • tiny particle system
  • text scroller
  • encrypted game data
  • some really nice music from www.modarchive.org
  • pretty sure I forgot something

Playing Tipps

  • The more blocks your balls hit in a row, the higher the score for each block
  • You can score extra points for each ball in the game when you complete a level
  • Level 1: Try to get a large paddle, then keep all balls in the game = higher score
  • Level 2: Get the 's' item (small paddle) on the right side of the blocks; then get the 'missile' item; try shooting all blocks while the item is active = lots of timer points
  • Level 3: Try to shoot the ball(s) through a hole in the grey blocks so they can hit as many blocks in a row as possible = lots of points
  • Similar strategies apply to all levels!
  • Yes, the game seems pretty tough on first sight, but it is definitely beatable as soon as you get a feel for the behaviour of the balls and the location of the items. Don't give up after just 1-2 tries!
  • There are some hidden extra lives to be found in the higher levels. Sometimes not shooting blocks and not hitting explosive blocks might prove helpful.
  • Come on, guys, you can all do a lot better than level 4! ;)

Please let me know what you think and also feel free to report any bugs/errors and so on that you might experience while playing the game.

Last not least, thank you so much for all the support from this great community! Without the help of the people in here I would never ever have been able to get thisfar! So thank you all very, very much! Also a big thank you to Gernot and all his co-workers for providing a framework that made it possible for me to finally create my first computer game.

:nw:

PS - Some people might not like to hear me using some well known music in this rather unspectacular game. Let's just think of it as a tribute to the composers. I forgot to provide the props and links to the files in the readme.txt but I will add them in the next version. Cheers!
#37
Why not? Should not be a problem since you're already using Javascript... Plus it solves the problem with only a few extra lines of code. The z-Index issue is a well-known and much discussed IE bug btw :-)
#38
Thx Kitty, works perfectly now!  :)

What about the jQuery - did it do the IE7 trick for you?
#39
Hm, the code is pretty simple actually... at the core of it is the following function:

Code (glbasic) Select

key$ = UCASE$(INKEY$())

FOR i = 0 TO len_inputletter%
IF key$ = inputletter$[i]
playername$[position] = key$
INC position, 1
IF position > 9 THEN position = 0
ENDIF
NEXT


The rest deals with the positioning of the cursor and stuff like that. Problem remains: When the Function is called the letters get inserted automatically with the keys pressed in the game loop. Hope that helps?
#40
BTW - If you want the whole table row to activate the hover-effect, use the following code:

Code (glbasic) Select

<script  type='text/javascript'>
$(document).ready(function(){
$(".tableitem").mouseover(function() {
$(".content", this).css("display","block");
$(".content", this).css("z-index","2");
$(".infoframe", this).css("z-index","2");
});
});

$(document).ready(function(){
$(".tableitem").mouseleave(function() {
$(".content", this).css("display","none");
$(".content", this).css("z-index","1");
$(".infoframe", this).css("z-index","1");
});
});
</script>
#41
Uhm, yes - thats exactly how I do it and it works fine :) The problem is not that the input doesn't work! The problem is that the input starts and the letters get filled in automatically with they keys pressed in the game loop.

@MrTAToad: I don't understand what you're driving at...
#42
Ok, when I opened your page on my own webspace with firefox, the behavior of the hover-effect was odd... it vanished after mouseleave and was visible from the beginning. I think I solved the problem using jquery, at least on my IE7 emulation the transparency vanished and it also looks fine in firefox. The idea was to dynamically alter the z-index value not only for the content-element, but also for the surrounding infoframe element with jQuery.

Cf. http://www.katjadeutschmann.de/wissen/html-css/ie7-z-index-bug-bei-absoluten-elementen-innerhalb-von-relativ-positionierten-elementen.html

DHTML:
Code (glbasic) Select

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <!-- IE8 or later - z-index problems with IE6! -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<link href="servicecenter.css" title="fideslic" rel="stylesheet" type="text/css">
<script  type='text/javascript'>
$(document).ready(function(){
$(".infoframe").mouseover(function() {
$(".content", this).css("display","block");
$(".content", this).css("z-index","2");
$(this).css("z-index","2");
});
});

$(document).ready(function(){
$(".infoframe").mouseleave(function() {
$(".content", this).css("display","none");
$(".content", this).css("z-index","1");
$(this).css("z-index","1");
});
});
</script>
<script type="text/javascript">

var gMenuText = Array();
var gMenuId = Array();
var gTotHtml = "";

function clearmenu() {
gTotHtml = "";
gMenuText = [];
gMenuId = [];
}

function addmenu(id, text) {
gMenuText.push(text);
gMenuId.push(id);
}

function popup(id, bshow) {
document.getElementById(id).style.visibility = bshow ? 'visible' : 'hidden';
}


function addprogram(text, prog3) {
var html = "";

html += ('<tr class="tableitem" /* onclick="popup(\'popup'+prog3+'\',1);" */><td>'
+'<div class="infoframe">');

// start popup window
html += ('<div class="content" id="popup'+prog3+'" /* onmouseleave="popup(\'popup'+prog3+'\',0); */">'
+'<h3>'+text+'</h3>');

for (var i = 0; i < gMenuId.length; ++i) {
var tmp = '<button type="submit" name="click" value="' + prog3 + '/' + gMenuId[i] + '">'+gMenuText[i]+'</button><br/>';
html += tmp;
}
html += "</div>"; // popup window content

html += (  '    <div class="arrow">&nbsp;</div>'
+'<div id="name'   +prog3+'">'+text+'</div>'
+'</div></td>' // </div of infoframe>
+'<td><div id="versloc'+prog3+'"></div></td>'
+'<td><div id="versdvd'+prog3+'"></div></td>'
+'<td><div id="versliv'+prog3+'"></div></td>'
+'<td><div id="license'+prog3+'"></div></td>'
+'</tr>');

gTotHtml += html;
}

function writeprograms() {
var html = "";

html += '<table class="maintable"><tr><th>Program</th><th>Local Version</th><th>DVD-Version</th><th>Live-Update</th><th>Lizenz</th></tr><tbody>';
html += gTotHtml;
html += '</tbody></table>';
// setstatus(name3, displayname, '<img src="loading.gif">', '<img src="loading.gif">', '<img src="loading.gif">');
document.getElementById('placeholder').innerHTML = html;
}


function setstatus(name3, namelong, vlocal, vdvd, vlive, license)
{
if (namelong.length > 0)
document.getElementById("name" + name3).innerHTML = namelong;
if (vlocal.length > 0)
document.getElementById("versloc" + name3).innerHTML = vlocal;
if (vdvd.length > 0)
document.getElementById("versdvd" + name3).innerHTML = vdvd;
if (vlive.length > 0)
document.getElementById("versliv" + name3).innerHTML = vlive;
if (license.length > 0)
document.getElementById("license" + name3).innerHTML = license;
}



var g_download_tot_todo = 0;
var g_download_tot_done = 0;
function downloading(delta_todo, delta_done) {
g_download_tot_todo += parseInt(delta_todo);
g_download_tot_done += parseInt(delta_done);
// NEED display
}

</script>


</head>



<body>

<div id="placeholder">&nbsp;</div>

<script type="text/javascript">
clearmenu();
addmenu("update", "Update now");
addmenu("buy", "Kaufen");
addprogram("Programm 1", "PRA");
addprogram("Program 2", "PRB");
writeprograms();


setstatus("PRA", "WALLS-Verbau", "2012.222", "2012.230", "2012.444", '<img src="green.png"> 2013.100 / 08.feb.2012');
</script>

</body>
</html>


CSS:
Code (glbasic) Select

body
{
}

a, a:visited {
color: Blue;
text-decoration: underline;
}

.maintable
{
border-collapse: collapse;
border: 2px solid black;
padding: 4px 4px 4px 4px;
}

.tableitem{ }

tr.tableitem td{
background-image: url('backgnd_line.png');
background-repeat: repeat-x;
background-position: 0px 2px;
border-left: 1px solid #88ccff;
padding: 2px 16px 2px 4px;
}


/* infoframe div - hover it to show popup information */
.infoframe{
position: relative; left: 0px; top: 0px; /* so the menu can be position:absolute - relative to parent */
}

/* content - popup overlay of infoframe */
.infoframe .content{
display: none;
/*visibility: hidden;*/
position:absolute;
left:0px; top: 0px;
border: 2px solid #4488cc;
background: #fff;
}


/* when hovering parent, highlight it */
/* .infoframe:hover
{
background-image: url('backgnd_line_hover.png');
background-repeat: repeat-x;
background-position: 0px 2px;
} */


/* header for popup menu */
.content h3
{
margin-top: 4px;
margin-bottom: 4px;
background: #fff url('backgnd_line_hover.png');
background-repeat: repeat-x;
background-position: 0px 2px;
}
.content button{
width: 15em;
}


.arrow{
width: 18px; height: 20px;
padding: 0 0 0 0; margin: 0 0 0 0; border: none;
background-image: url('arrow.png');

float: left;
}


Hope it helps!  :)

Best,
P.
#43
Hi Ian,

thank you for your reply! I think that the input speed is not the problem. Instead, the problem seems to be that the input somehow remains "locked" in the keybuffer.

For example I use a key release check for the letter "o" in order to see whether or not there is an internet connection available. Then I press "f" for like 2 seconds in order to display the current FPS. The problem is that when the player has to enter a hiscore name at the end of the game, there's already something like "ooofffffff" entered as the player's name which is defined as "PLAYER_ONE" at the beginnning of the game.

The hiscore name consists of a few letters stored in an array by the way; for the input of the letters I use INKEY$().

Any ideas on how to solve this problem? I would also like to use keyboard controls for the gameplay.
#44
Hi all,

I'm having a bit of a hard time with my hiscore function. Everything is working just fine - but one notorious problem is still waiting to be solved. The problem is that as soon as the player is asked to enter his/her name, the letters are "filled" automatically with the keys pressed withing the game loop. I use some functions in the game that need key input (such as checking the online status or showing the FPS), and I can't find a way to clear the keybuffer as soon as the EnterName() function is started. What can I do? Maybe there is a very simple solution I can't see right now...?

Best regards,
P.
#45
Hallo busuzima,

einen einfachen Music-Player zu programmieren ist gar kein Problem mit GLBasic! Schau Dir am besten mal die folgenden Befehle genauer an:

PLAYMUSIC, STOPMUSIC, HUSH, ISMUSICPLAYING(), MUSICVOLUME, PAUSEMUSIC.

Und auch Buttons sind z.B. mit DRAWRECT oder auch DRAWSPRITE sehr schnell programmiert.

P.